Simo Ahava má generátor customtasku, super věc, kombinuje jeho stávájí článku o customtask v Google tag manageru do jednoho uživatelsky příjmeného generátoru.
Trochu jsem přidal pár vylepšení …
Odebrání funkce .forEach
V čem?
Remove PII from Hits , je to funkce v CustomTask, která pokud narazí že v URl nebo parametrech GA je email, případně další osobní údaj definovaný přes regulární výraz, tak je nahradí za placeholder. Díky této změně neporušíte podmínky Google analytics do kterých se nesmějí posílat osobní údaje.
Co bych změnil?
Funkci .forEach
piiRegex.forEach(function(pii) { _pr_val = _pr_val.replace(pii.regex, '[REDACTED ' + pii.name + ']'); });
Bych nahradil za klasickou funkci “for“.
for (var i = 0, len = piiRegex.length; i < len; i++) { _pr_val = _pr_val.replace(piiRegex[i].regex, '[REDACTED ' + piiRegex[i].name + ']'); }
Proč?
EI 11 nepodporuje funkci .forEach . Klasický for je i rychlejší 😉 ,
Chytání chyb v CustomTasku
Chyby mě zajímají, co se děje, co je špatně.
Pokaždé když použijete try {… } catch(err) { …} má šanci se dozvědět chybovou zprávu. Takže proč to nedělat?
V posledních řádcích customTask je záchytný bod, kdyby se něco stalo.
} catch(err) { originalSendHitTask(originalSendHitTaskModel); }
A ten stačí rozšířit o poslání více informací přes standardní dataLayer.push event do 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}); };
Jedna z chyb, co tak odhalíte je třeba ta předchozí, s Internet explorerem 11.