Co jsem vymysl z GA+GTM za dnešek … oprava (not set) v GA EE impressions listu v reportech.
Už mě nebavilo se na to dívat. Dost trafiku mi jde přímo na jednotlivé produkty, takže to chtělo vyladit 🙂 .
Samozřejmě to jde udělat ještě lépe a to že na každé místo webu, kde dám produkt vložím impressions list a ten budou předávat programátoři do detailu etc. a i tak by to nevyřešilo v vše a proto jsem si naprogramoval následující.
Jak to funguje?
Uložíme si jméno impressions listu
Tak jsem vymyslel to že při gtm.linkclick si to uložím do sessionstorage (tedy pro daný tab) kombinaci:
– URL
– target URL
– pojmenování kliku (budoucí list name) to buď podle xpath, když chybí převedené na pěkný tvar jako je logo etc. nebo použiji hodnotu z impressions listu. Viz starší článek o xpath proměnné v GTM.
Vložíme uložené jméno listu do detailu produktu:
Když souhlasí referrer s uloženou url minulé stránky
a uložený target je aktuální URL,
tak to doplním do detailu (ecommerce.detail.actionField.list).
Rozšíření o chybějící jméno listu pro vstupní detailu produktu
Pak jsem přidal, pokud stránka nemá referer dám tam jméno list direct trafik, pokud je referrer externí, dám external trafik.
Tímto způsobem eliminuji všechny hodnoty (not set), teď uvidím i odkud jsou kliky mimo impressions listy již nastavené.
Kdy se to hodí použít?
- Odkazy z blogu
- Odkazy v menu
- Odkazy v bočním sloupci
- Odkazy neoznačené odkazy v bannerech.
- Odkazy v patičce etc.
Návod bez kroku za krokem 🙂 :
Dneska to nebude tak moc návodné, hodně záleží na implementaci a proto to dám bodově a zbytek nechám na vás.
GTM HTML tag Uložení do session storage dat o místě kliknutí
<script> if (window.Storage) { // když funguje session storage try { window.sessionStorage.setItem("gaeelist", JSON.stringify({ name: {{table.RegEx.FullQuerySelector.toContentType}}, // víz článek o xpath proměnné. target: {{Click URL}} })); } catch (err) { window.dataLayer.push({ 'event': "error.ga.eelist", 'eventCategory': 'error', 'eventAction': 'error.ga.eelist', 'eventLabel': err.message, 'eventValue': 0, 'eventNonInteraction': true }); } } </script>
Uložení do session storage u impressions listu
Aneb když to váš vývojář nezvládne propsat do GA produkt detailu.
if (window.Storage) { // když funguje session storage try { window.sessionStorage.setItem("gaeelist", JSON.stringify({ referrer: window.location.href, name: ecommerce.click.actionField.list // zde si dáte svoje data target: {{Click URL}} })); } catch (err) { window.dataLayer.push({ 'event': "error.ga.eelist", 'eventCategory': 'error', 'eventAction': 'error.ga.eelist.ecommerce.click.actionField.list', 'eventLabel': err.message, 'eventValue': 0, 'eventNonInteraction': true }); } }
Rozšíření GA detailu o informace o impressions listu.
A pak data o listu přidáte do stránky s detailem, pokud není ecommerce.detail.actionField.list už přidaný.
try { if (document.referrer == "") { ecommerce.detail.actionField.list = "trafic direct"; // prázdný referral } else if (document.referrer.indexOf("mareklecian.cz") == -1) { ecommerce.detail.actionField.list = "trafic external"; // externí trafik má uplně jiný konverzní poměr } else if (window.Storage) { if (window.sessionStorage.gaeelist) { var gaeelist = JSON.parse(window.sessionStorage.gaeelist) if (gaeelist.referrer) { if (gaeelist.referrer == document.referrer && gaeelist.target == window.location.href) { ecommerce.detail.actionField.list = gaeelist.name; } } } else if (document.referrer.indexOf("mareklecian.cz") != -1) { ecommerce.detail.actionField.list = "trafic internal other"; // neoznačený interní trafik } else { ecommerce.detail.actionField.list = "trafic unknown"; // pojistka } } else { ecommerce.detail.actionField.list = "trafic no sessionStorage"; // interní trafik uživatelé bez local storage } } catch (err) { window.dataLayer.push({ 'event': "error.ga.eelist", 'eventCategory': 'error', 'eventAction': 'error.ga.eelist.ecommerce.detail.actionField.list', 'eventLabel': err.message, 'eventValue': 0, 'eventNonInteraction': true }); }
Trocha zdrojů:
- GTM Enhanced ecommerce
- Pokrytí sessionStorage u uživatelů 97.5% a i tak to není blokátor ale rozšíření dat.
- Trochu počtení o localstorage
Ukázka výsledku:
Ještě sbírám data z toho blogu, čekám na více dat. Prozatím.
Vlastnosti
Naschvál je to udělané přes sessionStorage aby se to vztahovalo jen dané záložce prohlížeče, šlo by to udělat přes pole v localstorage, ale to by přineslo dost komplikací a nepřeností.
Prosřední tlačítko jsem vyřešil jako interní trafik, pokud není hodnota v sessionstorage a ta funguje.
Nebude to z většiny fungovat v Safari private modu, protože ten blokuje localstorage.
Pro inspiraci ještě přikládám tabulku pro převod xpath na pěkné názvy, záleží na pořadí.
Berte to jako inspiraci.
Update: Rozdělení externího trafiku na normální a kampaň.