Někdy v Google tag manageru potřebujete se podívat do historie co se už stalo a podle toho udělat různé podmínky a pro jsem napsal několik proměnných.
GTM proměnné jsou tipu „Custom JavaScript“.
gtm.event.list.join
function(){ return window.dataLayer.map(function(prod) { return prod.event; }).join(" ")}
verze bez funkce map
function(){ result=""; for (var i = 0, len = window.dataLayer.length; i < len; i++) {if(window.dataLayer[i].event) result=result+' '+window.dataLayer[i].event;} return result.trim()}
Co to je?
List všech eventů co se stal no se stal na dané stránce.
gtm.event.list.join unique
function(){return window.dataLayer.map(function(prod){ return prod.event; }).filter(function(elem, index, self){return index == self.indexOf(elem);}).join(" ").trim();}
Co to je?
List všech eventů co se stal no se stal na dané stránce odfiltrovaný jen na unikátní události.
Příklad použití:
Chci odpálit na značku a chci aby to bylo po načtením DOM (gtm.dom) a zároveň po načtení detail produktu (událost ee.detail) a zároveň byl odpálen timer20sec.
Stačí pak značku dát odpálit 1x za stránku,
Event .* zatrhnete povolit reguláry.
A pak už jen říci: „gtm.event.list.join unique“ obsahuje gtm.dom, obsahuje timer20sec, obsahuje ee.detail.
gtm.elementVisibility.list.elementid
function(){ return window['dataLayer'].filter(function( obj ) {return obj['event'] == "gtm.elementVisibility"}).map(function(prod) { return prod['gtm.elementId']; }).join(" ");}
Co to je?
Seznam element ID prvků na kterých byli spuštěný události viditelnost prvku (gtm.elementVisibility).
Příklad použití:
Chci spustit event, pokud uživatel viděl XYZ.