Rubriky
Blog o webové analytice

Vylepšené měření pohybu uživatele na webu GTM GA

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.

.