Skip to content

Instantly share code, notes, and snippets.

@zerosignalproductions
Last active December 26, 2015 19:09
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 zerosignalproductions/7199265 to your computer and use it in GitHub Desktop.
Save zerosignalproductions/7199265 to your computer and use it in GitHub Desktop.
DoubleClick / SiteCatalyst Tracking
/**
* Adds DoubleClick or SiteCatalyst to any element using supplied
* selectors. If no selectors are given, function defaults to
* data-dctracking and data-tracking.
*
* @param {string or array} selectors elements to set tracking
*/
function setupTracking(selectors) {
//Can pass in selectors as string or array
if(typeof selectors === 'string') {
selectors = !selectors.match(/,/g) ? $.makeArray(selectors) : selectors.split(',');
} else if(selectors === undefined) {
selectors = ['[data-dctracking]', '[data-tracking]'];
}
//Loop through selectors and set up tracking
$.each(selectors, function(index, selector) {
$(selector + ':not([data-tracking-registered])').on('click', function(e) {
var $self = $(this);
if(typeof $self.data('dctracking') !== 'undefined') {
try {
DcOnClickTracking($self.data('dctype') || waDcType, $self.data('dctracking') || waDcCat);
} catch (error) {
console.log( 'Tracking Error:', error.message );
}
}
if (typeof $self.data('tracking') !== 'undefined') {
var trackingId = $self.data('tracking'),
trackingType = $self.data('type') || 'o',
share = $self.data('share') || false;
try {
share ? scatShareLinkTrack(trackingType, trackingId) : scatCustomLinkTrack(trackingType, trackingId);
} catch (error) {
console.log( 'Tracking Error:', error.message );
}
}
});
//Attribute to show that this element has already been registered for tracking
$(selector).attr('data-tracking-registered', '');
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment