Skal du optimere dit site og vækste din forreting er der guld at hente i din Google Analytics. Men at få data ud, så du kan bruge maskinlæring og kunstig intelligens – ML og AI – på dem, er langtfra trivielt. Omvendt er det bestemt heller ikke umuligt. Det kræver bare lidt tricks. Dem kan du læse om her i denne første blogpost om Google Analytics, ML og AI.

Her før jul kom en af vores kunder til os med en udfordring: han driver et stort dansk portal-site og ville høre, om vi med ML og AI kunne hjælpe ham med at identificere, hvad der kendetegner de ”gode” kunderejser på sitet – dvs. hvordan en bruger bevæger sig fra forsiden til han forlader det igen, hvad han laver af søgninger, hvad han klikker på undervejs osv.

Sådan får du flere til at klikke væk

Med en sådan viden ville vores kunde kunne tilrette og optimere sitet, så brugerne i endnu højere grad gjorde det, han helst ville have dem til – nemlig at klikke på exit-links og gå videre til partner websites. Hver gang en bruger blev sendt fra vores kunde til et partner-site, betaler partnerne nemlig et beløb. En aktivitet, der den dag i dag er vores kundes primære indtægtskilde.

AI og ML-analyser af dine Google Analytics-data kan hjælpe dig med at forudse, hvordan du kan fremme den brugeradfærd, der bedst understøtter dine forretningsmål.

Hvis det kunne lykkes at bruge ML og AI på den rigtige måde, ville det give prædiktive insights, så vores kunde kunne forudse, hvad han skulle gøre, for at få flere af de gode exit-clicks. Det ville der potentielt være rigtigt mange penge at tjene på.

BrugerID’et mangler i Google Analytics

Problemet vi løste, 1: Før vi kunne få de prædiktive analyser op at flyve, var der er et seriøst problem, vi måtte løse. Problemet var, at data i Google Analytics slet ikke var fintkornede nok til ML/AI-formålet. For ML/AI metodikken bygger på, at en række algoritmer skal kunne gennemtrawle store og detaljerede datamængder, og finde de skjulte mønstre i dem. Men den slags øvelser er Google Analytics ikke bygget til.

For Google Analytics giver kun adgang til at trække aggregerede tal ud, som ikke gør det muligt at analysere på enkeltbrugerniveau. Selvom systemet tracker alt hvad alle brugere gør, kan du kun trække ud, hvor mange der ialt har klikket på x, y eller z. At få brugerne, og de aktiviteter og kliks de har lavet undervejs i deres rejse gennem sitet ud, kan ikke lade sig gøre. Der mangler simpelthen noget så simpelt som et brugerID du kan sortere på.

Custom dimensions implementeret i Google Tag Manager

Måden vi løste det på, 2: Selvom Google ikke selv sætter bruger ID eller noget der ligner på data i udtrækket, betyder det dog ikke, at du ikke kan få et sådan masseret ind. Du skal bare selv gøre det. Og midlet til dette hedder ”custom dimensions”.

Custom dimensions er et begreb for ting, du selv kan sætte Google op til at måle – i tillæg til de dimensions, Google er født med – såsom enhedskategori, sidenavn og trafikkilde, som er dem du kan se, når du browser rundt i standardversionen af Analytics-interfacet.

Normalt bruges Custom Dimension til på denne måde at opsamle og analysere data som Analytics ikke tracker automatisk. Men Custom Dimensions kan også bruges mere grundlæggende. Og det var det, vi gjorde: vi opsatte ClientID som custom dimension. Og voila, alle kald blev nu stemplet med et unikt bruger ID, der gør det muligt at se, hvem der har klikket på hvad.

Men ClientID’et er ikke helt nok. Google Analytics mangler nemlig også en anden væsentlig oplysning: nemlig et timestamp, der gør det muligt at se hvornår de enkelte kald er blevet sendt afsted. Derfor implementerede vi et Hit Timestamp som vores custom dimension nummer to.

Sådan ser første del af Custom Dimension-koden ud i Google Tag Manager. Koden bliver gennemgået i et senere blogindlæg.

Vi implementerede de to custom dimensions som tags gennem Google Tag Manager. Tagget ”stempler” hver bruger og hver handling han foretager med vores to nye custom dimensions, så vi kan følge brugerens færd igennem sitet. Strengt taget kunne vi have gjort det uden Tag manageren også – men Tag Manageren gør det meget mere enkelt og ligetil.

Stikprøvedata-dur ikke

Problemet, vi løste, 2: Før vi kunne gå videre, var der endnu en snubletråd i Google Analytics, som vi skulle over. Hvis der er meget trafik i den periode du vil have data for – dvs. data, der baserer sig på over 500.000 sessioner – bruger Google Analytics nemlig såkaldt “samplede” tal (I storebroderen til den gratis Google Analytics, Google 360, er det anderledes – men også væsentligt dyrere). Og det er et problem.

Samplede tal betyder nemlig, at istedet for at give dig al data, tager Google Analytics stikprøver og ganger op. Det måske går OK, hvis vi bare vil vide, f.eks. hvor mange brugere der har set hvilken side på sitet. Men det dur jo ikke, når vores formål netop er at lave data på enkeltbruger-niveau.

Hent og analyser unsampled data i R og Python

Måden vi løste det på, 2:Problemet kunne selvfølgelig undgås ved at vælge at udtrække data for en tidsperiode, der er kort nok til, at den ikke indeholder mere end 500.000 sessioner. Og så, når det er gjort, udtrække data for den næste korte periode, og så fremdeles, indtil du har hevet nok data ud til at fodre dine ML og AI-algoritmer tilstrækkeligt. Men skal du gøre det i hånden, er det stort manuelt arbejde, og meget ufleksibelt.

Derfor valgte vi at gå helt uden om Googles standardudtræk og i stedet kode  vores eget udtræk, med alle de data vi havde brug for, for hver enkelt bruger. Unsamplet og komplet med Client ID og Timestamp.

Med Python kan du udtrække usamplede data fra Google Analytics. Her et skærmbilllede fra projektoprettelsen i PyCharm, der bliver gennemgået i et senere blogindlæg

Du kan kode sådan et udtræk i forskellige kodesprog. F.eks. R. Vi brugte Python – særligt fordi det med Python er muligt at trække en hel dags data med den ønskede struktur ud ad gangen. Det kan for større websites betyder langt over 1.000.000 rækker data fordelt på op til 9 dimensioner. Og så er Python væsentligt hurtigere end R. I Python tager det kun fem til ti minutter. I R en halv time.

Med udtrækket i hånden kunne vi gå videre med selve analysen. Altså med at bruge ML og AI til at finde mønstre i den nu pænt formaterede data. Og her brugte vi R.

Hands-on kode gennemgang på vej

Hvordan vi mere præcist bar os ad med at hente data ud med Python, hvordan vi anvendte R til at analysere data og hvordan vi fik data klargjort med Custom Dimensions og Google Tag manager kommer jeg tilbage til i en række andre blogposter over den næste måneds tid. Så følg med her på bloggen. Du kan også signe op til at modtage vores whitepaper om Google Analytics, ML og AI. Det vil indeholde alle blogposterne i en pænt samlet mini-ebog. Du signer op til whitepaper’et ved at klikke på den grønne knap her på siden.