I have seen a lot of different people do the same thing: track some sort of a version of their tracking setup. It makes sense, because it allows you to track down bad choices in your tracking.
Questions like “so when did we lose the site section eVar?” or “Do you remember when we started tracking social clicks?” can be answered if you somehow track your changes.
In the olden days[tm], this meant coming up with some version number yourself, then maintaining it, usually inside the s_code.js
file.
Now we have tag management, and that makes things easier. It also makes things more varied. Allow me to demonstrate, using DTM.
Versions – Core
What version, asketh thee, shall I track? What version?
The core Analytics code comes with a version, e.g. “H.27.4” or “JS-1.7.0”, which you can find on the tracking call URL, or on the console like so: s.version
. (Or, if you’re using DTM, something like s_c_il[0].version
)
DTM Javascript code has a version, e.g. “6I2”, again visible on the tracking call URL (with a prepended “D”, “D6I2”), or on the console like so: _satellite.appVersion
![[Screenshot]](https://webanalyticsfordevelopers.files.wordpress.com/2016/10/161018-tracking-call-with-versions.png?w=300&h=82)
Versions – DTM
It’s fairly difficult to apply the concept of versions to the code you manage in DTM, but what DTM does for you, is show a history of the changes you published!
_satellite.publishDate
. On top of that, you can get _satellite.buildDate
, which is the date at which DTM finished building the library after you published it.
These two dates are directly linked to your activity in DTM.
Versions – Others
Some people use versioning for their requirements. I have seen Solution Design Reference documents or Tech Specs with a version number. That is obviously a pretty good idea.
And if you want to go full nerd, you can apply versioning to the tracking of versions that you use.
What?
Well, for a specific company in Switzerland, I started tracking publishDate + buildDate. Later, we consolidated Analytics Report Suites, so we needed to add the name of the DTM Web Property to the version in order to tell which DTM property was sending the specific data we were looking at.
Then, I added the requirements version, and at that point, I realised that I should probably track the version of the Data Element that gave me the version string, so I knew which ones were up to date.
Do you do something similar? How?
We do something very similar, but it depends on the project.
Mostly I try to track:
* DTM Version – we recently experienced a bug in DTM itself and needed to monitor if the newer version will solve the issue
* AppMeasurement.js Version (similarly to what you mentioned here) – to see when particular features (i.e. the new Activity Map Plugin) became available
* Some alternative to our own versioning (property-ID + build version) – we maintain parts of the custom code in GIT and there we do a pretty standard version tags generated to the code by build scripts
* Build/Publish date I only use in Properties served from the Cloud
LikeLike
I’ve done it a few times with some customers. However, I must say that I have not always seen a benefit in doing it.
LikeLike
😉
“I have not always seen a benefit” is nice.
LikeLike
Great article!
Another versioning option that we use in app tracking is to write the (integer) build-number of the app into a numeric event with every hit. This enables us building a segment checking “greater than version XY”. It’s very useful, e.g. if a feature was poorly implemented and tracking only has valid values from a specific version on. Dates would not help here, as people still might use older versions of the app and with checking for a specific version, we would need to change the segment every time a new version appears.
LikeLike
Very good point, Sebastian!
For app tracking, tracking the version is even more important, given that you cannot be sure everyone updates.
LikeLike