Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Omniture events is not firing/sending data via DTM when using s.tl tracking methods

I am using Adobe Dynamic Tag Manager (DTM). I have a Direct Call Rule. I have

  • set evars and props using the GUI
  • I am using "custom page code" option to send events to AA using javascript. The javascript has some case statements and uses a data elements.

When I use s.t method e.g. track a pageview - yes. I can see my events firing also evars and props are being sent - as per omniture digital pulse debugger.

When I use s.tl method e.g don't track pageview - yes. I don't see my events firing but evars and props are being sent as per regular tracking.

Is this a known bug? Note all good with javascript, events get set and fire correctly so no issue with JS. Help please.

like image 755
Zed Dawg Avatar asked Feb 11 '23 16:02

Zed Dawg


1 Answers

For s.tl calls, AA requires that most events and variables be "registered" to one or both of these two variables: linkTrackVars and linkTrackEvents.

DTM automatically does this if you are assigning values in one of the built-in fields, but if you are popping events and variables within the custom code section, you will need to also populate linkTrackVars and linkTrackEvents.

linkTrackVars : All props, eVars and most other named variables must be specified here. One exception is pageName, but it doesn't hurt to include it (AA automatically includes it, to track what page the s.tl call happened on). You should not include the object prefix, so for example you should use "prop1" not "s.prop1". If you have more than one variable, you should delimit with a comma, no spaces, i.e. "prop1,eVar1". If you have events you want to track, "events" should be included in the list (but not the actual event, just the variable name, i.e. "prop1,events")

linkTrackEvents : In addition to putting your events in s.events, you must also put them in this variable. Usually you can just dupe it s.linkTrackEvents=s.events; and call it a day.

Example:

s.prop1='foobar';
s.events='event1';
s.linkTrackVars='prop1,events';
s.linkTrackEvents='event1';

For more details, here is the online documentation for AA link tracking:

http://microsite.omniture.com/t2/help/en_US/sc/implement/link_variables.html

NOTE:

A while back, there was in fact a bug with DTM vs. setting variables in the custom code section for s.tl calls within a rule. Basically, DTM was overwriting linkTrackVars and linkTrackEvents even if you don't pop anything in the built-in fields, so there was no way to override or append to them. In short, it was impossible to set variables in the custom code section for s.tl calls. Adobe has since acknowledged and fixed this bug.

However, there is still a bug with DTM properly setting events and variables you set within custom code sections of your main tool config vs. rules. For reasons unclear to me, DTM creates a separate AA object when a rule is triggered. It grabs whatever variables you set within built-in fields in the main tool config, but it does not account for anything you set within custom code boxes in the main config area. Adobe needs to fix this by referencing the existing AA object instead of creating a new instance of the object.

In the meantime, if this is your situation, then the only workaround is to disable AA for your rule, and instead create a new script in the Javascript / Third Party Tags section of the rule. Within the script, set all the AA variables you wish to track, including linkTrackVars and linkTrackEvents, and then invoke s.t() or s.tl() according to the AA documentation. In other words, you have to sidestep DTM's built-in AA stuff and just set and trigger AA manually.

If you are relying on Data Elements to pop variables in the built-in fields (e.g. %foobar%) then you can instead use _satellite.getVar('foobar') within the custom code to reference the Data Element.

like image 190
Crayon Violent Avatar answered Feb 14 '23 05:02

Crayon Violent