With DTM you don’t need Plugins! – Part 2

Let’s continue on the journey and replace one more plugins with DTM goodness.

I even get to introduce an almost hidden feature!


I was slightly disappointed last time because I couldn’t find an easy way of replacing getVisitNum. This plugin keeps track of how often someone comes to the site. Very useful for segmentation purposes.

The plugin really does two things: maintain the number of visits in a cookie (which means increasing the number at the start of a visit), and providing the current number so we can track it into a “variable” of our choice.

I knew that reading the visit number from a cookie was easy: just make a Data Element based on the cookie.

But would I have to add some custom logic to manage the visit number? Where exactly?

Turns out the answer is no! I don’t have to! DTM provides everything I need, although it is hidden away a little bit.

When you make a rule, you can add a condition based on the number of visits. Oh. So DTM actually does keep track of visits for me? Cool!

Can I read that value somewhere? I couldn’t find it.

Then my colleague Anna pointed me the right way: the visit number is only handled by DTM if I actually have a rule with a condition based on “Sessions” (aka Visits) in my setup. Otherwise it doesn’t care.

But if I do have a rule with such a condition, it will write a cookie (“_sdsat_session_count”)! Heureka!

So, let’s set up a rule with a condition, like so:

DTM Rule with Session-baed Condition
Now if we push that live or use the “DTM Switch plugin” to check the staging version, we should see a new cookie on our site.

DTM Session Count Cookie

All we need now is a Data Element that reads that cookie:

Data Element for Visit Number
Use that Data Element with the Analytics variable that you currently use with the getVisitNum plugin:

Assigning Data Element to prop33
And Bob’s your uncle!


For added bliss, you could add custom Javascript that reads the existing cookie and bootstraps the new one, so the visit number wouldn’t start at 1 for everyone.

In my s_code.js file, I was assigning the prop like so:

Original Call to getVisitNum in s_code.js
No parameter on the getVisitNum plugin means that the plugin will store the visit number in a cookie called “s_vnum”.

So all we need to do is read that value from the “s_vnum” cookie and write it into the “_sdsat_session_count” cookie before DTM uses that cookie for the first time to populate our variable.

My guess would be that placing such code into a sequential Javascript block at page top should work.

Don’t forget to delete the “s_vnum” cookie! You want to transfer the visit number once only.

11 thoughts on “With DTM you don’t need Plugins! – Part 2

  1. How about setting the page load rule as a top of the page rule? Since DTM does not guarantee order of execution, if you want to use the value at the bottom of the page, you need to make sure the “_sdsat_session_count” is already set.


  2. One other comment. DTM sets the visit cookie to expire at the end of the session, where getVisitNum expires this cookie after 30 minutes of the last page viewed. This will add some discrepancy between the two codes.


    1. It doesn’t seem like that is the case anymore. The “_sdsat_session_count” isn’t expiring for another 20 years it says on my machine.


  3. Thanks for that getVisitNum workaround – for some reason every time I tried to add that plugin, it literally broke everything.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.