Regular expressions i Google Analytics

// Programmering for digitale markedsførere

Det finnes mange muligheter til å benytte seg av regex i Google Analytics (GA). Så hva er regex og hvorfor bør du bruke det? For å unngå en lang teoretisk fremstilling, som det forøvrig finnes nok av, nøyer vi oss foreløpig med at det handler om mønstergjenkjennelse. Det kommer veldig godt til nytte i sammenhenger der du vil gruppere data, og opplever at du ikke får til det du gjerne ønsker. Regex er særlig aktuelt i filtreringer (bla i views), mål og i målgruppedefinisjoner.

Så hva vil det si å gjenkjenne et mønster i denne sammenhengen? Det handler om å få flere muligheter til å kontrollere hva som skal inkluderes eller ekskluderes i et utvalg, og at utvalget blir mer nøyaktig. Dette er langt fra definisjonen på hva regex er, men jeg tror det er en mer hensiktsmessig fremstilling, og at det kan være litt lettere å forstå enn den tradisjonelle, programmatiske definisjonen. For regex er et nokså komplisert fagfelt som benyttes i mye større grad i programmering, enn i markedsføring. Men, du trenger ikke kunne programmere, for å benytte deg av regex.

For å unngå å gjøre det unødvendig komplisert, dropper vi det meste av teorien, og heller tar en titt på et konkret praktisk eksempel. Dette er hentet fra noe jeg selv bruker, dog noe utvidet, for å belyse en del forskjellige poenger. For å få mest mulig ut av dette foreslår jeg at du åpner RegEx Pal (https://www.regexpal.com/) og gjør det sammen med meg. Det er mye lettere å forstå hvordan det fungerer, hvis du ser prosessen trinnvis.

Målgruppedefinisjon (Inkluder alle som har sett på ett case)

Her skal vi lage en ny målgruppe av brukere som har lest ett eller flere kunde-caser på nettsidene våre. I en ideell verden hadde det kanskje vært nok med å sette definisjonen til /case, men i realiteten er det sjeldent ting er så godt organisert. Istedenfor å restrukturere nettsiden og sette opp metervis med redirections, kan vi heller definere målgruppen ved hjelp av regex. På den måten kan vi få til det vi ønsker, uten å gjøre noen endringer utenfor GA.

Da er det bare å sette i gang. Ta frem RegEx Pal og lim inn følgende i «Test String» feltet:

https://www.make.as/case
https://www.make.as/studie/
https://www.make.as/case-studie
https://www.make.as/casestudie
https://www.make.as/case-studie-firmanavn
https://www.make.as/case-studie4-Firmanavn
https://www.make.as/case5-firmanavn
https://www.make.as/blogg/case5-firmanavn
https://www.make.as/en-annen-url

Dette er en liste med url’er (sider) som vi ønsker at målgruppen skal bygges på. Vi ser fort at «/case» ikke vil omfatte alle disse url’ene og at vi dermed ikke får med alle brukerne vi ønsker i utvalget. Det er her regex kommer inn og gir en hjelpende hånd.

Det første du må tenke på er hva som er felles for alle url’ene, du må lete etter et mønster. Bruk litt tid og tenk over dette.

Felles for alle url’ene er at de inneholder enten /case eller /studie. Vi kan ta med domenenavnet, men vi ønsker å skrive så kort som mulig, så vi trenger ikke å starte matchingen før vi absolutt må.

I regex så definerer du hva du ser etter, tegn for tegn. Ofte vil grupper av karakterer defineres som mulige treff, og man vil dermed treffe tegn for tegn, inntil man støter på et tegn som ikke er del av den definerte gruppen.

Vi starter i RegEx Pal med å legge inn \/ i Regular Expression feltet. Grunnen til at vi skriver \ foran (leses escape) er for å fortelle at en skråstrek betyr skråstrek i denne sammenhengen, og ingenting annet. Regex inneholder tegn som kan bety flere ting, i ulik kontekst, og \ benyttes derfor for å understreke at det er en opprinnelige betydningen vi er ute etter.

\/

Ok. Videre vet vi at url’en fortsetter videre med enten case eller studie. | (pipe), er symbolet for «enten», og gir oss anledning til å matche det ene eller andre. Det er også lettere å lese hvis vi setter uttrykket inne i en parentes.

(case|studie)

Da er vi i gang. Hva nå? Jo, det ser ut til at noen av url’ene inneholder en bindestrek, men ikke alle. Hvis vi vil matche noe som forekommer eller ikke forekommer, kan dette gjøres ved å sette et spørsmålstegn bak det som skal matches. Man gjør uttrykket lazy, i motsetning til greedy regex bruker som standard. Dermed kan du legge til \-?, som betyr at det kan komme en bindestrek eller ikke, etter case eller studie, og at bindestreken symboliserer en faktisk bindestrek.

No alt text provided for this image

Etter bindestreken så ser vi at det er mange varianter, både bokstaver og tall. I regex kan det skrives slik [A-Za-z0-9]*. Hvorfor A-Za-z? Jo, det er for å ta høyde for både store og små bokstaver. [0-9] representerer alle tall.

No alt text provided for this image

Stjernen (*) betyr at det kan være ingen eller flere bokstaver og ingen eller flere tall, men ikke noe annet. Dvs at matchingen opphører når det inntreffer en karakter som ikke er del av det karaktersettet du har definert, som for eksempel en bindestrek.

Da ser vi igjen at det kan komme en bindestrek, men ikke alltid. Denne regelen har vi definert over så vi kan bare legge til den samme igjen.

No alt text provided for this image

Da nærmer vi oss slutten. Noen av url’ene inkluderer et firmanavn som egentlig kan være hva som helst, men vanligvis bokstaver og kanskje ett eller flere tall. Da kan vi igjen benytte samme regel som tidligere [A-Za-z0-9]*. Vi legger den til for å inkludere firmanavnet.

No alt text provided for this image

Da er det bare en av url’ene igjen av de vi ønsker å inkludere. Vet du hvordan du skal få det til? Husk at vi ønsker at en skråstrek skal bety en faktisk skråstrek, og at den ikke nødvendigvis alltid finnes. Da legger vi den inn slik:

No alt text provided for this image

Uten et spørsmålstegn (?) bak vil vi mistet alle tidligere matcher. Husk at url’ene kan inneholde en skråstrek på slutten, men ikke må inneholde det.

Da har vi ved hjelp av regex (og en linje «kode») definert en målgruppe basert på mange ulike url’er, uten å gjøre noen endringer på nettsidene, og involvere en eneste programmerer. Det er ikke dårlig det 🙂

About the author

Related Posts