Wicket URLĂ©r er litt vanskelige Ă„ fjerne fordi sideversjoner har formen ?1, ?2, ?3 osv. Vi kan ikke bruke den innebygde parameter-fjerningen i Google Analytics fordi den forutsetter parametere i formen nĂžkkel=verdi.
Vi kan heller konfigurere et filter med regulÊre uttrykk, fordi vi mÄ ivareta andre parametere og sprÄket/syntaksen er ikke regulÊr.
En oversikt over prosessen for Ă„ implementere filtreringen i Tag Manager er som fĂžlger.
Utvilking og test:
- Opprett en Custom JavaScript-variabel i GTM for filtrering.
- Lag en ny trigger for sidene som trenger denne filtreringen.
- Lag en ny GA tag som inkluderer triggeren
- legg til triggeren pÄ den originale slik at det ikke blir dobbelt med GA-tags. Triggingen mÄ vÊre MECE.
Preprod
- Verifisere at lĂžsningen fungerer.
- Dokumentasjon
Produksjon:
- Publiser ny versjon (Trykk publish)
Samme teknikken brukes pÄ events:
- Lag en click trigger
- Opprett Universal Analytics event tag
Resultatet som Ăžnskes er at fĂžlgende URLĂ©r:
https://tovare.com/tovare/gtm/pageversion.html?1
https://tovare.com/tovare/gtm/pageversion.html
https://tovare.com/tovare/gtm/pageversion.html?1&k=v
https://tovare.com/tovare/gtm/pageversion.html?2=&k=v
https://tovare.com/tovare/gtm/pageversion.html?3=&k=v&k=v2
Blir endret til:
https://tovare.com/tovare/gtm/pageversion.html
https://tovare.com/tovare/gtm/pageversion.html
https://tovare.com/tovare/gtm/pageversion.html?k=v
https://tovare.com/tovare/gtm/pageversion.html?k=v
https://tovare.com/tovare/gtm/pageversion.html?k=v&k=v2
#1. Utvikling og test
Opprett en Custom JavaScript-variabel i GTM for filtrering.
For testing fra kommandolinjen med nodejs:
/* wicketFilter.js */
var url = "https://tovare.com/tovare/gtm/pageversion.html?1"
exports.wicketFilter = function(url){
var expr = /\?[0-9]+\=?/,
hasPageVersion = url.match(expr);
var expr2 = /\?[0-9]+\=?\&/,
hasPageVersion2 = url.match(expr2);
if(hasPageVersion2) {
url = url.replace(hasPageVersion2[0],'?');
}else if(hasPageVersion) {
url = url.replace(hasPageVersion[0],'');
}
return url;
}
Jeg bruker Tape for test-drevet utvikling fordi internettene sa det var awesome.
Testscript for Tape:
/*
* babel-node testWicketFilter.js
*/
import test from 'tape';
var st = require('./wicketFilter.js');
// For each unit test you write,
// answer these questions:
test('Test filter', assert => {
const input = [
"https://tovare.com/tovare/gtm/pageversion.html?1",
"https://tovare.com/tovare/gtm/pageversion.html",
"https://tovare.com/tovare/gtm/pageversion.html?1&k=v",
"https://tovare.com/tovare/gtm/pageversion.html?2=&k=v",
"https://tovare.com/tovare/gtm/pageversion.html?3=&k=v&k=v2" ];
const expected = [
"https://tovare.com/tovare/gtm/pageversion.html",
"https://tovare.com/tovare/gtm/pageversion.html",
"https://tovare.com/tovare/gtm/pageversion.html?k=v",
"https://tovare.com/tovare/gtm/pageversion.html?k=v",
"https://tovare.com/tovare/gtm/pageversion.html?k=v&k=v2"
];
input.forEach(function (value, i) {
assert.equal(st.wicketFilter(value),expected[i],"Rewrite ")
});
assert.end();
});
Resultat av testing:
tovare@tovare:~/tovare/gtm$ babel-node testWicketFilter.js
TAP version 13
# Test filter
ok 1 Rewrite
ok 2 Rewrite
ok 3 Rewrite
ok 4 Rewrite
ok 5 Rewrite
1..5
# tests 5
# pass 5
# ok
Endring av det ferdig testede scriptet til GTM. Den stÞrste endringen er at {{Page Path}}-variabelen brukes. Denne variabelen er forhÄndsdefinert som standard i GTM.
Den definerte variabelen kan ogsÄ brukes for events.
Lag en ny trigger for sidene som trenger denne filtreringen
Lag en ny GA tag som inkluderer triggeren
Lag en ny tag ved Ă„ kopiere den eksisterende, deretter konfigurer med trigger og sett “page” med variabel.
Konfigurer gammelt tag til Ă„ ekskludere triggeren.
Du vil enkelt se i oversikten at det ikke er overlapp, ved at unntakene i hovedtaggen matches
#2. Preprod
Verifisere at lĂžsningen fungerer.
Velg preview i GTM, gĂ„ til en passende URL og velg “pageview” og variables for Ă„ sjekke hva som har blitt satt:
Dette kan ogsÄ verifiseres med GA Debug for Chrome i javascript console:
Til slutt kan den ogsÄ verifiseres i realtime-display i GA og i rapporter.
Dokumentasjon
Fordi containeren er dokumentasjonen og endringsloggen gir endringene som er gjort, er det nyttig Ă„ skrive i notatfeltet til containeren i “twitter”-stil hva som er nytt pĂ„ et veldig overordnet nivĂ„.
#3. Produksjon
Trykk publish
Filtrering av URL i Analytics Events
Det er like gunstig Ä lage rene URLer i events fordi man gjerne er interessert i Ä fokusere pÄ events produsert pÄ en gitt side.
Lag en click trigger
Opprett Universal Analytics event tag
Legg merke til at page-feltet settes til JavaScript variablen som vi lagde tidligere.
Kilder til inspirasjon og fakta:
Luna Metrics - Strip Query parameters Google Analytics En fin gjennomgang av forskjellige teknikker.
JavaScript Scene - Why I use Tape instead of Mocha so should you Artikkel som forklarer hvorfor Tape er sÄ fortreffelig til testing i JavaScript.
Developer Google - Pages Foretrukket metode Ă„ fjerne personopplysninger, rett fra kilden.
Google Tag Manager - Built-in variables Dokumenterer de innebyggede variablene.
Chrome store - Google Analytics Debugger
Test side tovare/gtm/pageversion.html Skru pÄ javscript console og GA debugger i Chrome, refresh og trykk i vei.