Methods s.t() and s.tl()
Adobe Analytics Beacon

Methods s.t() and s.tl()

Was thinking about the topic to write for a week and then some personal commitments, spurring to a two-week break. Since I promised myself to write the first 100 posts for intermediates, I didn’t want to go too simple or too complicated. Before the topic was being prepared, I had the feeling that I well know this subject and it is too basic, but it was a little shaky for my confidence, so this post.

There are two types of Server Calls in Adobe Analytics, Page View Call and Non-Page View Call (Link Call). Non-Page View Call was further broken down to Exit Link Call, Download Link Call and Custom Link Call. People used to label the Page View Call as s.t() and Non-Page View Call as s.tl(), but I still refused to label them in the way. There are many reasons for me to refuse, but I agree that labeling them as said before is not a flaw but a user opinion. However, I will deny my acceptance after my recent research and validations on s.t() and s.tl() methods. Therefore, if anyone labels Page View Call as s.t() and Non-Page View Call as s.tl(), from the day, I would not accept nor encourage them to use. Few experts might even have the knowledge of it already, might be a bug, but below are my findings as on post date (Till AppMeasurement Version 2.22.0) and we hope Adobe to fix them at the earliest if it is a bug.

Before seeing the findings, here are my justifications for not labeling Page View Call as s.t() and Non-Page View Call as s.tl().

  • Methods of t() or tl() are two of the multiple Server Call initiation methods, and not just two.
  • In Mobile Application, we use the method trackState for a Page View Call and trackAction or trackActionFromBackground for a Non-Page View Call.
  • We do have other ways to initialize Server Call to Adobe, including TrackTimedAction, TrackLifetimeValue, TrackLocation etc.
  • Other data collection methods such as API and Data Source can also segregate the data on the basis of Page View or Non-Page View (Link) tracking.

Thus, ignoring the initialization methods, below is how Adobe Analytics Server Calls are categorized.

Adobe Analytics : Server Call Categorization

Enough for the wait and let’s jump to the testing results. Note that we will be seeing Server Call method, sample code and the resultant Server Call made for every testing unit below. When I say Link arguments, it refers to Link object, Link type and Link name either as function arguments or configuration variables.

Without overrides

1 – s.t() & s.tl() without link arguments

1 : Sample Code & Result

Without link arguments, both s.t() and s.tl() methods are identical i.e Initializes Page View Call.

2 – s.t() & s.tl() with link arguments set as configuration variables

2 – Sample Code & Result

With link arguments set as configuration variables, s.t() initializes Non-Page View Call while s.tl() initializes a Page View Call. Referring to the documentation from Adobe I personally think it is a bug especially related to s.tl() method. Note that Link object is non-mandatory when adding link arguments as configuration variables.

3 – s.t() & s.tl() with link arguments

3 – Sample Code & Result

We cannot use arguments in t() method and are therefore not applicable (However, did out of curiosity, the result was no different from a standard Page View Call). With link arguments, s.tl() method initializes Non-Page View Call. So, for s.tl() method to initialize a Non-Page View Call we must add all the link arguments (Link object, Link Type and Link name) by mandate. Ignoring any of the link arguments is also resulting in a Page View Call with or without the analytics variables set (Here, eVar 27 and event 27).

With overrides

4 – s.t() & s.tl() without link arguments

4 : Sample Code & Results

With overrides, the variables (eVar 27 and event 27) are captured as expected in s.t() method initializing a Page View Call. On the other hand, the overrides didn’t work for s.tl() method initializing a Page View Call without the variables set (eVar 27 and event 27).

5 – s.t() & s.tl() with link arguments set as configuration variables

5 : Sample Code & Results

No wonder, works in a same way as #2 (Non-Page View Call) but here the link arguments are set as configuration variables and other variables (eVar 27 and event 27) are set as overrides. Once again, overrides on s.tl() didn’t work as expected initializing the Page View Call without the variables set (eVar 27 and event 27).

6 – s.t() & s.tl() with link arguments

6 : Sample Code & Results

Both s.t() and s.tl() methods are identical here initializing a Non-Page View call with the variables set.

Conclusion

I personally not even sure that the results above are expected or a bug. If it was expected, Adobe should revisit the documentation to make things clearer and if it is a bug, Adobe should fix it as early as possible. I would also recommend users to try multiple combinations of link arguments with or without overrides on both t() & tl() methods to browse for the outcomes and enhance their interpretation instead of adhering to my views & test results. Happy researching!

Special mention and reference to Alban Gerome‘s CXL Blog on Adobe Analytics Implementation: Hacks You Don’t Know About.

Written by
Pratheep Arun Raj
Join the discussion