Optimizely: Sync, Async or Sync?

Silver Contributor
Silver Contributor


Yes, the title of the post is correct ;-) 

If I get that right, there are 3 ways to deploy Optimizely in TiQ:

1) Async tag from Marketplace (as described here: Optimizely Asynchronous Tag: Basic Configuration

2) Via utag.sync profile template (as described here: Optimizely: Synchronous Implementation

3) Sync tag from Marketplace (no description on community)


We are looking at synchronous methods only since Async makes no sense for A/B testing as this often implies content replacement. Leaves options 2 and 3.


Also, we would like to map event name, event value and transaction ID for conversion events.


Option 2:

  • How can the mentioned Data sources be mapped?

Option 3:

  • In which case would this option be applied?
  • Why are there less mappings available than for the Async tag (event_name and event_label only)?


Many thanks for your thoughts.


Optimizely: Sync, Async or Sync?

Tealium Employee
Hi jmbolfing,
Thanks for writing in. Agree that the Tealium/Optimizely tag implementation is far from perfect, I will rework with our engineers on polishing the setup and documentation later on. As a heavy Optimizely user, I shall recommend to go for this approach:

> Installing Optimizely (Placing the Library)
Method 2) is most recommended to deliver the best A/B testing experience with least flickering. Some of our customers may prefer 1) because they would like to have less "block calls" or sync. loading javascript as least as possible.

> Custom Event & Revenue Tracking
For goal tracking, you may use the async. tag and comment out the this line in the tag template. Click "Save Profile" after the commenting.
This tag should cover the custom even as well as E-Commerce extension support, which also fire revenue tracking also when order_id is presence.

Optimizely: Sync, Async or Sync?

Silver Contributor
Silver Contributor
Excellent! Thanks very much for sharing your experience. Most appreciated.

Optimizely: Sync, Async or Sync?

Silver Contributor
Silver Contributor

One more question on the topic though. I have got the Custom Events to work now, but what about Custom Dimensions?


Optimizely offers the option to submit custom dimensions. Similar to Custom Events, they are to be submitted with an optimizely.push call like this:


optimizely.push(['setDimensionValue', 'dimensionId/Name', 'value']) 


My question is: Is this supported with the Mapping toolbox and if yes, how? My attempts so far yielded no results unfortunately.


Thanks for your input.

Optimizely: Sync, Async or Sync?

Employee Emeritus

Maybe @marchi-lau can assist you with an answer? :-)

Remember to give me a kudo if you like my post! Accepting my post as a solution is even better! Also remember that search is your friend.

Optimizely: Sync, Async or Sync?

Tealium Employee

Sorry that the Custom Dimenion is not available within the mapping box, but this doesn't stop you from pass dimenion info the Optimizely.


[Step-1] Please create a new Javascript Extension option 


[Step-2] Paste the code in the extension

optimizely.push(['setDimensionvalue', 'country', b.country])

// whereas b.country is the datalayer value, it could be b.datalayer_item_name


[Step-3] Scope this Extension to be run along with the "Optimizely" tag.


I'm going to raise the request to our internal team for allowing the custom dimension mapping there.

Thank you for your patience and making our products better.

Optimizely: Sync, Async or Sync?

Silver Contributor
Silver Contributor



In regards to the Custom events mapping with the Async tag:


I have configured my test site exactly as described with the call of Optimizely JS in utag.sync and mapping of Custom events in Async tag (commenting out line 57 in the template).


However, custom events are not firing in that case. If only the Async tag is used (with original code), events are firing fine.


Would you have a hint what is wrong?


Many thanks...Jean-Marc


Optimizely: Sync, Async or Sync?

Rookie Contributor
I think you have to specify in Optimizely to retrieve the events you push with the above code. Read more about it here: https://help.optimizely.com/Build_Campaigns_and_Experiments/Custom_events_in_Optimizely_X