Verze 2.0 mého článku o „Eliminace (not set) v Google analytics enhanced ecommerce impressions listu a dalších reportech“
Co získáte?
Proměnnou co říká, přes jaký prvek se uživatel dostal na danou stránku, včetně reloadů a rediretů externí zdrojů a další navigace.
Tuto hodnotu si pak můžete poslat jako custom dimenze nebo content groupingu, případně ji používat v Google analytics enhanced ecommerce detailu.
Příklad:
Uživatel se proklikne přes menu, v následující stránce bude tato informace. „header-menu“
Uživatel přijde z externí zdroje… „trafic-external“
Uživatel příjde z kampaně „trafic-campaign“
Uživatel si znova načte stránku „navigation-reload“
Oproti předchozí verzi funguje i když vytvoříte nové okno, takže se stále zachová cesta stránky.
Co budete potřebovat?
Xpath co jsem vytvořil v tomto článku
Track Browsing Behavior In Google Analytics – od Jethro Nederhof na Simové blogu, co vychází z mého trackování tabu.
Jak to funguje?
Když kliknete vytvoří se v localstorage proměnná co obsahuje cíl kliknutí, aktuální hodnotu URL a pojmenování kliknutí.
Když se načte okno, hledá tuto kombinaci v localstorage, pokud najde vyjme z dat tuto hodnotu a zapíše ji do lokální javascript proměnné.
Pak je tu interpretace další stavů vzniku okna a to je vzato z behaior trackingu.
Kliknutí v localstorage expirtují po 72 hodinách.
Implementace:
Odeslání dat do localstorage
Implementace pro linkclick.
Pravidla: cílová URL obsahuje http a obsahuje doménu daného webu.
<script>
(function() {
try{
if (window.Storage) { // if localstorage
if (localStorage.prev_page_click_ls) var prev_page_click_ls = JSON.parse(localStorage.prev_page_click_ls);
else var prev_page_click_ls = [];
ItemToPush={
location: window.location.href,
name: {{RegEx.FullQuerySelector.toContentType xpath}},
target: {{Click URL}},
created: new Date().getTime()
}
if (JSON.stringify(prev_page_click_ls).indexOf(JSON.stringify(ItemToPush))==-1 )
{
prev_page_click_ls.splice(1, prev_page_click_ls.length - 19); //max limit of array
prev_page_click_ls.push(ItemToPush);
window.localStorage.setItem("prev_page_click_ls", JSON.stringify(prev_page_click_ls));
}
}}catch (err) {
window.dataLayer.push({
'event': "error.html.linkclick.navigationtype2", //mark
'eventCategory': 'error',
'eventAction': 'error.html.linkclick.navigationtype2',
'eventLabel': err.message,
'eventValue': 0,
'eventNonInteraction': true
});}
})();
</script>
Vytáhnutí dat z localstorage
Je potřeba rozšířit kód od Jethroa, kousek od konce vložit kód.
payload = {
tabCount: tabCount,
redirectCount: redirectCount,
navigationType: navigationType,
newTab: newTab === true ? 'New' : 'Existing',
tabId: tabId.replace(/_.+/, '')
};
//<----- ZDE TO VLOŽIT
// Set the data model keys directly so they can be used in the Page View tag
window.google_tag_manager[{{Container ID}}].dataLayer.set('browsingBehavior', payload);
// Also push to dataLayer
window.dataLayer.push({
event: 'custom.navigation',
browsingBehavior: payload
});
}
})();
</script>Vložit tento kód:
// Behavior Click Tracking
// by Marek Lecian v1.2
//
var HOSTNAME="mareklecian.cz";
try {
if (window.Storage) {
if (localStorage.prev_page_click_ls) {
prev_page_click_ls = JSON.parse(localStorage.prev_page_click_ls)
// remove expired clicks
for (var i = prev_page_click_ls.length; i--;) {
if (prev_page_click_ls[i].created +expireTabs <= new Date().getTime())
{prev_page_click_ls.splice(i, 1)}}
//find click name
for (var i = prev_page_click_ls.length; i--;) {
if ((prev_page_click_ls[i].target === window.location.href) && (prev_page_click_ls[i].location.split("#")[0] === document.referrer))
{var prev_page_click = prev_page_click_ls.splice(i, 1)[0].name;}
}
window.localStorage.setItem("prev_page_click_ls", JSON.stringify(prev_page_click_ls))
}
}
var BehaviorClickTracking;
if ((window.location.href.indexOf("gclid")!=-1)||(window.location.href.indexOf("utm_medium")!=-1)){BehaviorClickTracking= "trafic-campaign";}
else if (navigationType!=="NAVIGATE") {BehaviorClickTracking="navigation-"+navigationType.toLowerCase();}
else if(document.referrer == "") {BehaviorClickTracking= "trafic-direct";}
else if(document.referrer.indexOf(HOSTNAME) == -1) {BehaviorClickTracking = "trafic-external";}
else if(typeof prev_page_click !== 'undefined') {BehaviorClickTracking =prev_page_click;}
else if(!window.Storage){BehaviorClickTracking = "no-localStorage"; }
else if(document.referrer.indexOf(HOSTNAME+"/wp-admin") != -1){BehaviorClickTracking = "trafic-internal-admin"; } //wp admin
else if((redirectCount>=1)){BehaviorClickTracking = "navigation-redirect"; }
else if(document.referrer.indexOf(HOSTNAME) != -1){BehaviorClickTracking = "trafic-internal"; }
else{BehaviorClickTracking = "better-list-fail"}
payload.navigationType2=BehaviorClickTracking; // Add data to dataLayer push payload
}catch (err) {
window.dataLayer.push({
'event': "error.ga.eelist",
'eventCategory': 'error',
'eventAction': 'error.ga.behavior.tracking.html',
'eventLabel': err.message,
'eventValue': 0,
'eventNonInteraction': true
});
}
///- Start behavioral click tracking
Zde pozor na nastavení domácí domény… „mareklecian.cz“ tu si změňte podle sebe.
Výsledky:
Za mě velmi dobré. Data jsem trochu zcenzuroval, tjs prázdné řádky.
Buy-to-detail Rate je dočtenost.
Unikátní nákupy jsou počet přečtení článků.
Kvantita je celkový počet přečtených slov.
Avg. QTY je průměrná délka článku v počtu slov.

Postřehy:
Z dat co je zajímavé … řádek 3, „související obsah“ používají uživatelé a docela hodně. 7,15%
(Not set) > 3,4% jsem nezměřil vůbec a vypadá to trochu na divné návštěvníky co neměli local storage, ale mohlo se jednat i o anonymní uživatele, protože tam někdy je localstorage bloknutá.
Navigation-back/forward – Což mě docela zaujalo… je že uživatelé používají navigační tlačítka, dopředu a zpět.
Navigation redirect > Odhalil jsem tak několik zbytečných přesměrování.
Trafic-internal > Zjistil, že máme pár starých landing pages o kterých nikdo nevěděl, ale chodí tam lidi 😀 .
Omezení:
Neumí to trackovát přes různé domény, protože se local storage nepřenáší.
V referralu není #, takže je ho potřeba odřezávat > přepsat si to SPA.
Lidi v anonymním režimu mohou mít bloknutou localstorage.
