Categories
Web analytics

CustomTask GTM GA debugging

Simo Ahava has a customtask generator, a  great thing, it combines his becoming an article about customtask in Google tag manager into one user-friendly generator.
I added a few improvements…

Remove the .forEach function

In what?

Remove PII from Hits   , it is a function in CustomTask, which if it encounters that in the URL or GA parameters there is an email, or other personal data defined via a regular expression, it will replace them with a placeholder. This change will not violate Google Analytics, to which personal information may not be sent.

What would I change?

.ForEach function

piiRegex.forEach(function(pii) {
  _pr_val = _pr_val.replace(pii.regex, '[REDACTED ' + pii.name + ']');
});

I would replace it with the classic ” for ” function .

for (var i = 0, len = piiRegex.length; i < len; i++) {
	_pr_val = _pr_val.replace(piiRegex[i].regex, '[REDACTED ' + piiRegex[i].name + ']');
}

Why?

EI 11 does not support the .forEach function . Classic for is even faster 😉,

Catching errors in CustomTask

Mistakes make me wonder what’s going on, what’s wrong.
Each time you use try {…} catch (err) {…} it has a chance to know the error message. So why not do it?
In the last lines, customTask is a clue if something happens.

} catch(err) {
 originalSendHitTask(originalSendHitTaskModel);
 }

And just expand it by sending more information via the standard dataLayer.push event to Google analytics.

} catch(err) {
  originalSendHitTask(originalSendHitTaskModel);
    window.dataLayer.push({
     'event': 'error.ga.customtask.catch',
     'eventCategory': 'error',
     'eventAction': 'error.gtm.ga.customtask.catch',
     'eventLabel': err.message,
     'eventValue': 0,
     'eventNonInteraction': true});
    };

One of the bugs you will discover is the previous one, with Internet Explorer 11.

.