Connecting to your Websites Datalayer

Last updated
Was this helpful?
Was this helpful?
function(initState){
//define events to listen to as single String values in array
//keep empty to listen to all events
var RELEVANT_EVENTS = ["gtm.init"];
var IGNORE_CASE = true;
var DATALAYER_NAME = "dataLayer";
var dl = window[DATALAYER_NAME] || [];
if(Array.isArray(dl) && dl.length && dl.length > 0) {
dl.forEach(arrayItem => {
initiateRelevantStates(arrayItem.event, arrayItem);
})
}
var originalPush = dl.push;
dl.push = function(args){
originalPush.call(window[DATALAYER_NAME], args);
initiateRelevantStates(args.event, args);
}
window[DATALAYER_NAME] = dl;
function initiateRelevantStates(event_name, event_object){
if(Array.isArray(RELEVANT_EVENTS) &&
RELEVANT_EVENTS.length > 0 &&
typeof event_name != "undefined"){
if(IGNORE_CASE){
event_name = event_name.toLowerCase();
for(i = 0; i < RELEVANT_EVENTS.length; i++)
RELEVANT_EVENTS[i] = RELEVANT_EVENTS[i].toLowerCase();
}
if(RELEVANT_EVENTS.includes(event_name)){
initState(event_object);
}
} else if(typeof event_name != "undefined")
initState(event_object);
}
}