UPDATE 4 June 2020: Instead of copying the Custom HTML code from the article, please load it from the GitHub Gist instead. Four years ago, I wrote an article on how to persist GTM's dataLayer from page to page. Unfortunately, the solution was a bit clumsy, requiring you to give specific commands for the interactions, which made it really unwieldy in the long run. Google Tag Manager still doesn't offer us a native way to persist the dataLayer array or its internal data model from one page to the other, so I thought it was about time I revisit this idea.
One of the more difficult concepts in Google Tag Manager is the data model. In essence, the data model is what Google Tag Manager uses to populate the Data Layer variable. You might be tempted to think that it's the same thing as the dataLayer array, but it's not. The data model is a representation of the keys and values you push into dataLayer. Whenever you push any key into dataLayer, GTM grabs this key and updates the corresponding key in its data model with the new value, or in the case of objects and arrays merges the old and the new value together.
Google Tag Manager‘s Data Layer is something I've touched upon in pretty much all of my articles. It's such an integral part of what makes a tag management solution great and applicable to a host of business scenarios. I've also talked at length about the internal data model of Google Tag Manager, and this #GTMTips post is very much related to this rather murky concept. In this post, we'll go over the Data Layer Variable Version selection, and I'll try to explain just what this selector does.
It's time for MeasureCamp again! As before, I want to write an accompanying post for my session, since there's always so much more to say than the time slot allows for. So, the topic of this article is the data model used by Google Tag Manager to process digital data in your data layer. This post also picks up where I left in my previous foray into the data layer. However, where the first article aimed to be generic (since the data layer should be generic), this post will look at how GTM uses the information in the generic data layer, and how it processes this information to work with the proprietary features of the tool.