Skip to content

Instantly share code, notes, and snippets.

@chaffeqa
Created April 7, 2018 16:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chaffeqa/f8da3be746e9fd3b327ba3166832419f to your computer and use it in GitHub Desktop.
Save chaffeqa/f8da3be746e9fd3b327ba3166832419f to your computer and use it in GitHub Desktop.
Example usage of custom DTM setup
window._satellite.pageBottom();
var dataLayer = {};
window._satellite.setVar('dataLayer', window.dataLayer);
// apply defaults that persist throughout session:
Object.assign(dataLayer, {
eVar1: '...',
channel: '...',
heir: '...',
});
// sample function for interactions:
function trackInteraction(linkName, extraVarsOrEvents) {
addExtraVarsOrEvents(extraVarsOrEvents)
dataLayer.linkName = linkName;
window._satellite.track('interaction');
removeExtraVarsOrEvents(extraVarsOrEvents)
}
// sample function for pageViews:
function trackInteraction(pageName, extraVarsOrEvents) {
addExtraVarsOrEvents(extraVarsOrEvents)
dataLayer.pageName = pageName;
window._satellite.track('pageview');
removeExtraVarsOrEvents(extraVarsOrEvents)
}
// shared helpers
function addExtraVarsOrEvents(extraVarsOrEvents) {
for (var key in extraVarsOrEvents) {
// s.eVar3 = 'viaFacebook'
// s.event1 = 'login'
dataLayer[key] = extraVarsOrEvents[key];
}
}
function removeExtraVarsOrEvents(extraVarsOrEvents) {
for (var key in extraVarsOrEvents) {
// blank string is "null value" (not added to next call)
dataLayer[key] = '';
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment