Ne vždy jsou na webu pěkné klasické odkazy a někdy je neuzná GTM a pak nefunguje ani gtm.linkclick.
A proto je někdy potřeba berlička.
Tento skript prochází prvky kliknuté elementů směrem k body v HTML a hledá odkaz.
První skript hledá URL adresu, tu odesílám jako eventLabel.
Druhý skript dělá to samé, jen si z této URL adresy vezme hostname, který většinou odesíláma v eventAction do Google analytics.
Kód pro získání URL nadřazeného prvku.
// Google tag manager JS variable script. // Why? // gtm.click does not return the URL because the element is nested and does not work for it gtm.linkClick // Solution: // Find the closest link using javascript in DOM.. // Marek Lecian - Creative Commons Attribution-ShareAlike 4.0 International - 24.9.2018 // Name: js.gtm.click.closes.link.href // Closest URL for GTM.click function () { var elementt = {{Click Element}}; while (!elementt.href && !elementt.matches('body')) { elementt = elementt.parentElement; } return elementt.href; }
Kód pro získání URL hostname nadřazeného prvku.
// Name : js.gtm.click.closes.link.hostname // Closest URL hostname for GTM.click function () { var elementt = {{Click Element}}; while (!elementt.href && !elementt.matches('body')) { elementt = elementt.parentElement; }; if (elementt.href) { var parser = document.createElement('a'); parser.href = elementt.href; return (parser.host); } return; }
Měření pak probíhá přes GTM trigger gtm.click (měření všech kliknutí) a ne přes měření odkazů. Je pak potřeba vhodně upravit i podmínky, aby se vám neměřil normální odkazy vícekrát, tjs jedenkrát jako gtm.linkclick a jedenkrát jako gtm.click.