Ask the Expert: Live QA with the Solutions Architect team

Ask the Expert: Live QA with the Solutions Architect team

The live portion of Ask the Expert is now closed. Please submit your question on the apporpriate discussion forum so our other community members can help you out.

Live Q&A on "Pushing the Boundaries of Optimizely" with the Optimizely Solutions Architect team.

Respond to this post with questions and take your tests to the next level.

Who are the Solutions Architects?

They are Optimizely technical experts focused on enabling organizations to maximize their optimization efforts. They have trained and supported hundreds of optimization teams and are here to help you push the boundaries of the Optimizely platform and develop creative optimization solutions.

Who are our Experts?

Junan Pang: Junan heads up the Solutions Architect team at Optimizely and focuses mainly in the eCommerce vertical. As a former technology consultant, Junan enjoys finding creative ways to use Optimizely but is even more passionate about helping Optimizely’s great customers grow their testing programs. Junan hails from the great state of Ohio but now enjoys being in the bright California sun.

Cyrus Dorosti: Cyrus started at Optimizely back in November of 2012 as the first Technical Support Representative and was instrumental in building out the large team that it is today. He has since joined the Solutions Architect team (ironically he has 2 degrees in Architecture) and helps customers in the Media vertical implement varied and complex tests/integrations. Outside of work, Cyrus loves to play sports and was Co-Captain of the 2006 Cal Rugby National Championship team.

You can ask questions until EOD August 22nd, at which point this session will be closed.

--

If you are interested in being featured as an Expert for a specific topic, please email optiverse@optimizely.com

Also, if you have any ideas for future Ask the Expert Themes, please post them in the Community Ideas board here.

Re: Ask the Expert: Live Q&A with the Solutions Architect team

I work for an advertising agency and have lots of questions that I haven't found to be addressed anywhere in the Optiverse. Many of the things that I would like to do involve changing the landing page based on a user seeing a banner ad that I have served. I serve banner ads mostly using the DoubleClick ad server. All of my banner ads are run on websites that I have no control over, for example Expedia.

The problem I am having is that I don't know how to change the website based on someone seeing my banner advertising. I know that if they click on the ad I can use UTM parameters within the URL to change it. So my question to you is, how would I go about changing the website based on a user seeing my banner ads? Is this a possiblity?

Re: Ask the Expert: Live Q&A with the Solutions Architect team

Thanks for reaching out! You mentioned that "all of my banner ads are run on websites that I have no control over", but to make changes to one of these pages we will need to have the Optimizely snippet installed on the page.

Assuming, that the Optimizely snippet is installed on the page you want to make changes to, then the key to your experiment will be your audience targeting. Somehow, we need to tell Optimizely 'who' to run the test for. Are you trying to change the page that the ad is on? Or the page that the ad takes you to? If it is the latter, this will be pretty simple since we can simply run our test for those query parameters that you mentioned.

If it is the former, is there any way of knowing what ad will show up on the page? Is this information accessbile client side in the browser? If so, we can use that information to determine if the test should run or not. If not, is there anyway we can send some information along with the ad for Optimizely to look for?

I hope that makes sense. Let me know if you have any questions. If you can provide some more information on some of the questions I mentioned above, I would be happy to dig into this deeper with you.

Re: Ask the Expert: Live Q&A with the Solutions Architect team

What are the best practices for sites that have a lot of Ajax? I don't have the ability to add the manual activation code directly to my site in most instances, so I'm looking for potential workarounds.

Re: Ask the Expert: Live QA with the Solutions Architect team

Great question. A great workaround is to leverage the ajaxSuccess or ajaxComplete event handlers. This is jQuery that you can add to your variation code that will run code in the event that an Ajax call is made. For example, on eCommerce category pages, additional products are often loaded in via Ajax so you can use ajaxSuccess to identify when additional products are loaded in and then run the code again. If you have multiple Ajax calls on the page, I'd recommend parsing through the response to pull out something unique about the change coming in to ensure you're only running the change for the appropriate Ajax call.

Here's an example (checking for the value of "productImg" in the response) :

There may also be scenarios where you want to activate experiments based on certain conditions happening on the page but can't add manual activation to the page. The other option is to use another Optimizely experiment to make the manual activation call. Here's a link to an article that explains how to do something like this: https://help.optimizely.com/hc/en-us/articles/200040225#bootstrap

Re: Ask the Expert: Live QA with the Solutions Architect team

What is the best method to preserve the visitor session accross platforms?

By that I mean, what exactly do we need to preserve from the visitor's session, that we can then use to track conversions (custom events) when the visitor gets to the conversion endpoint? Of course, It is also important to us to preserve the visitor session.

We already have an internal mechanism to support it, we only nee dto know what to pass down the funnel.

Note that iframe can't do the trick for us since the user is likely to begin on his PC but eventually might convert on his smartphone.

Re: Ask the Expert: Live QA with the Solutions Architect team

To expand further on what I asked before, I couldn't figure out how to reply directly to the comment, the banner ads are run on a website that is not controlled by me, however when the user is ready to convert they will very likely and hopefully come on to my site in order to convert.

I have the Optimizely snippet installed on the page that the user will hopefully convert on and would like to change that page, not the other website where the ad was seen. There is no problem in changing the page when they click through on the ad the problem is when the user view throughs to the website. We get a lot of view-through conversions on the website, meaning that the user had seen our ad at some point and then converted. I know that the HTML within the ads can be edited, but I am not very adept at coding to know exactly what would need to be added to the ad or even if it would work if something were added.

I appreciate you looking into this and think it's a great idea to have this kind of Q&A.

Re: Ask the Expert: Live QA with the Solutions Architect team

Thanks for clarifying. So if I am understanding the question correctly, you want to modify the page you do have control over based on what ad the visitor has seen (but not necessarily clicked on since you already know how to do that based on the query parameters).

To do this, we would just need to find a way to identify what ad the visitor has seen. If this is information stored client side (in the browser), we should be able to find a way to tap into it and use that information to determine if a visitor should see our test. If this information is not available, then there is no way for us to know what ad they saw.

It may be worth reaching out to your support team at DoubleClick to see if there is anyway we can either add some information client side for us to use or if there is already something there that is determining the ad being serverd.

Re: Ask the Expert: Live QA with the Solutions Architect team

Good question and that's a good use case. Unfortunately, as you've noticed, right now there's no direct link to the Export CSV feature on the Results Page. Right now, you'll need to either scrape the page or export the CSV and load it into your dashboard manually.

With that said, our engineering team understands that getting Results information into internal dashboards and other systems outside of Optimizely is important to customers so we're working on a way to provide this information using our API. Stay tuned!

Re: Ask the Expert: Live QA with the Solutions Architect team

That is an interesting use case and will involve a bit of development work. To maintain consitency, you'll want to make sure the user is included in the same variation for the experiment in addition to sending the corresponding conversion event. Here's how I would approach this...

1) Assuming that you have a way of identifying that a user is the same across platforms (i.e. Username), you'll want to map your username to the optimizelyEndUserID that Optimizely provides to the visitor. You'll also want to capture the Experiment ID and Variation ID that the visitor saw the first time around. You can pull this information from Optimizely's cookies (https://help.optimizely.com/hc/en-us/articles/200040335#first_party) and will want to store this server-side.

For example, the mapping would look something like this:

Your internal username

optimizelyEndUserID

Experiment ID / Variation ID combination seen (could be multiple records as visitors can be included in many experiments at a time)

2) Now that you've got this data about the visitor, the next time they come back to your site, either through a desktop browser or through a mobile browser (need to be logged in to your site so you can identify them based on their username), you'll detect that you've seen them before (server-side) and see that they were previously included in an experiment (and what variation they saw).

3) From there, you should make this data available client side so that you can force bucket the visitor (skipping Targeting and Traffic Allocation) into a specific experiment and variation using our JavaScript API (http://developers.optimizely.com/javascript/#bucket-visitor-9). At a minimum, you should include the visitor's optimizelyEndUserID, Experiment ID and Variation ID. Please note that the "bucketVisitor" API call must be called prior to the Optimizely snippet so the information on the page needs to be displayed in this order:

Username to Optimizely data mapping (made available as a JS object on the page)

Optimizely bucketVisitor API call

Optimizely snippet

4) Now that you've taken care of getting the visitor into the right experiment and variation, now you can think about sending a corresponding conversion event for that visitor. The way to force a conversion for a specific optimizelyEndUserID, experiment and variation is to construct the conversion event yourself and send it to Optimizely using the offline conversion approach (https://help.optimizely.com/hc/en-us/articles/200040195). Basically, you can take the information that you made available in step 2 to construct the conversion event GET request and send it to Optimizely whenever a conversion should be registered.

*Note that if you're not running an experiment across different platforms but just interested in tracking conversions that happen across platforms, you can just skip #3 and just provide the information in step #2 so that you can create the GET request.

Hope that helps provide some direction for what you're looking to accomplish. Its a very interesting use case!

Re: Ask the Expert: Live QA with the Solutions Architect team

I have a landing page that I want to personalize based on the viewer’s location. For example, the new header would say “California residents save $XX on insurance” where California is dynamic for each state. Given the number of different states, it wouldn’t be feasible to create a different experiment for each. What’s the best way to do this with an Optimizely experiment? Can we use the API somehow?

Re: Ask the Expert: Live QA with the Solutions Architect team

With the Platinum plan, you'll have access to Geotargeting and along with that, you'll be able to access the visitor's data attributes using the JavaScript API (http://developers.optimizely.com/javascript/#visitor-28). You can then write your variation code to present something different based on the value returned by the JavaScript API.

Re: Ask the Expert: Live QA with the Solutions Architect team

I have a landing page that I am trying to personalize for different mobile devices that a user may be coming from. Primarily IOS and Android. Should I set up different experiments, each targeting a specifc browser/device? What would be the best way to go about setting up such an experiment?

Re: Ask the Expert: Live QA with the Solutions Architect team

Using Optimizely's JavaScript API (http://developers.optimizely.com/javascript/), you are able to integrate Optimizely with nearly any analytics platform. The basic concept is to grab the active experiment and variation information (name or ID) and then pass it to the analytics platform through a custom variable (could be called a dimension, attribute, property, etc.).

Re: Ask the Expert: Live QA with the Solutions Architect team

Thanks for your question. The easiest way to do this would be to create a separate experiment for each Audience (one for iOS and one for Android). This will allow you to either run at 100% (personalized experience) or test with an Original (confirm whether a personalized experience by platform increases conversion).

However, if you don't care whether the conversion is happening on iOS or Android but still want to make a different change based on the platform, you could combine the changes together and use a simple "if-else" statement to check the userAgent (navigator.userAgent) to see if the visitor is using an iOS or Android platform. Based on the condition, then you can run different variation code to make changes specific to each. Your Audience should allow both iOS and Android devices in.

Re: Ask the Expert: Live QA with the Solutions Architect team

Hey @analarue , the second feature described by Junan is avaialble for all plans. He is suggesting that you add the code with the userAgent conditions directly into your variation code. To access the variation code, you can simply click the "Edit Code" button within the eidtor and write the desired code manually.