Reguliere expressies in Google Analytics
Reguliere expressies in Google Analytics. Ken je van die online bronnen die je jarenlang gebruikt hebt en dan ineens niet meer kan vinden? Dat was mijn ervaring bij de superhandige Regular Expressions for Google Analytics zoals in het verleden uitgelegd door Robbin Steif van LunaMetrics in een PDF bestand. Een tutorial van de reguliere expressies die ieder van de Regexp tekens behandeld die je in Google Analytics kan gebruiken.
Helaas is Lunametrics inmiddels samengegaan met Bounteous en was er blijkbaar geen ruimte meer voor de PDF op de servers. Maar volgens het copyright in de PDF (Creative Commons Attribution-Non commercial-Share Alike 3.0 license) is het ok om het bestand en de inhoud zelf te delen.
Om te zorgen dat deze fantastische uitleg van reguliere expressies niet verloren gaat, heb ik hem dan ook hier voor je beschikbaar gemaakt:
Lees je liever online, dan vind je hieronder een bondige samenvatting.
Wat zijn reguliere expressies?
Laten we bij het begin beginnen. Wat zijn reguliere expressies? Reguliere expressies (ook wel RegExp of RegEx) zijn een reeks symbolen en tekens die een patroon of tekenreeks beschrijven waar naar gezocht kan worden. In dit geval in de Google Analytics UI door bij Geavanceerd zoeken te kiezen voor Overeenkomsten met RegExp. Reguliere expressies in Google Analytics zijn niet hoofdlettergevoelig.
Reguliere expressies draaien om veelomvattendheid. Als je bijvoorbeeld wilt filteren voor meerdere Bedankt pagina’s tegelijk, dat is veelomvattendheid. Als je een filter moet maken voor meerdere pagina’s, maar je weet enkel hoe een deel van iedere URL er uit ziet, dat is veelomvattendheid.
Reguliere expressies zijn van nature veelomvattend: als je het een reguliere expressie niet verbiedt, komt deze overeen met wat je opgeeft, plus eventuele naastliggende tekens.
Veelomvattende reguliere expressies
Reguliere expressies die ik gebruiken als ik wil filteren op mijn naam of deze juist uit wil uitsluiten:
Thijs
Noort
- Waarom zouden deze overeenkomen? Geen van die bevat de volledige naam.
- Hoe kunnen dit reguliere expressies zijn? Er staan geen Regex tekens in!
- Ze komen overeen omdat reguliere expressies in GA net zo lang overeen blijven komen totdat ze niet meer mogen. Dat is waarom Thijs overeenkomt met de tekenreeks Thijs van Noort . Als de expressie met een deel van de string overeenkomt, komt het met de hele string overeen.
- Maar zit het met de Regex tekens? Je hebt die tekens niet nodig om een reguliere expressie te schrijven, noch maakt het iets een reguliere expressie wanneer je ze gebruikt. Het enige wat je hoef te doen is de expressie te plaatsen in een veld dat Regex leest.
Vaak heb je maar weinig Regex tekens nodig. Zo kan je in een veld reguliere expressie schrijven zoals www.google.(com|nl|be|fr|de|it|es|co.(au|uk|il)) om te filteren voor zoveel mogelijk landen waarin Google te vinden is. Of je schrijft gewoon: google
Waarom reguliere expressies gebruiken?
Nu zijn er al vele manieren om data in Google Analytics te filteren, dus waarom zou je reguliere expressies gebruiken? Om te beginnen omdat in bijvoorbeeld segmenten alle data wordt gefilterd op sessie of op gebruikersniveau.
Terwijl je voor bijvoorbeeld SEO regelmatig op pagina niveau wilt achterhalen of je resultaten zijn verbeterd. Dit is al helemaal het geval wanneer de Search Console data wilt filteren. Search Console gegevens zijn namelijk niet compatibel met Google Analytics segmenten.
Reguliere expressie teken #1 Schuine streep naar links (backslash)
Het beste reguliere expressie teken om mee te binnen is de schuine streep naar links (backslash). De backslash is anders dan alle andere tekens, zoals je zult zien. Het verschaft een brug tussen Reguliere expressies en normale tekst.
Een backslash maakt namelijk van een Reguliere expressie normale tekst. Je gebruikt deze, bijvoorbeeld, wanneer je wilt filteren op een URL die een parameter bevat zoals voorbeeld.nl/?id=123 .
Zonder aanpassingen, zou het vraagteken namelijk gelezen worden als een reguliere expressie. Maar je wil dat het gelezen wordt als onderdeel van de tekenreeks. Om dit te bereiken zet je er een backslash voor, zoals in dit voorbeeld:
example.com/\?id=123 .
Reguliere expressie teken #2 Verticale lijn (pipe)
De verticale lijn (pipe) is de makkelijkste van de Reguliere expressies en is degene die alle mensen moeten kennen. Deze betekent: of
Hier is een voorbeeld: laten we zeggen dat je twee bevestigingspagina’s heb en je wil ze samenvoegen in één Google Analytics doel. De eerste heet bedankt en de tweede bevestiging. Je kan je doel dan als volgt instellen: bedankt|bevestiging
Reguliere expressie teken #3 Vraagteken
Een vraagteken betekent, het laatste teken is optioneel.
Laten we zeggen dat ik alle gebruikers wil vinden die naar Thijs hebben gezocht. Dit wordt ook vaak zonder een h geschreven. In dat geval geeft de RegEx Th?ijs me zowel Thijs als Tijs (de h is optioneel door het vraagteken).
Reguliere expressie teken #4 Haakjes
Haakjes werken in reguliere expressies hetzelfde als in wiskunde. Zoals wanneer je beide URLs terug zou willen vinden in je doelen:
/foldereen/bedankt
/foldertwee/bedankt
Een goede manier om dit te schrijven in RegEx, zou zijn: /folder(een|twee)/bedankt
Reguliere expressie teken #5 Vierkante haakjes en liggende streepjes
Met vierkante haakjes kan je een simpele lijst maken, zoals deze: [aoi] . Waarbij d[aoi]k overeenkomt met dak, dok en dik.
Je kan ook een streepje toevoegen om een lijst van letters en cijfers te maken. Hier zijn enkele reguliere expressie voorbeelden om het op te helderen:
- [a-z] – alle letters in het Nederlandse alfabet klein geschreven
- [A-Z] – alle letters in het Nederlandse alfabet in hoofdletters
- [a-zA-Z0-9] – alle letters klein geschreven en in hoofdletters en cijfers
Reguliere expressie teken #6 Punt
Een punt komt overeen met ieder individueel letterteken.
Het reguliere expressie voorbeeld .ank komt dus overeen met bank, dank, rank, tank
Reguliere expressie teken #7 Het plusteken
Een plusteken komt overeen met één of meer van de voorgaande tekens.
De reguliere expressie aa+rgh komt dus overeen met aargh, aaargh, aaaaaaaaargh en ga zo maar door.
Reguliere expressie teken #8 Sterretje (asterisk)
Een sterretje en een plusteken lijken aardig op elkaar wat betreft hun functie. Met één groot verschil: in tegenstelling tot het plusteken, komt het sterretje overeen met 0 of meer van de voorgaande items. Wanneer je dus dezelfde reeks gebruikt en het plusteken vervangt met een sterretje, komt deze overeen met iets anders.
De reguliere expressie aa*rgh komt overeen met aargh, aaargh, aaaaaaaaargh, net zoals het plusteken. Maar het komt ook overeen met argh . Dus zonder een herhaling van het voorgaande letterteken.
#6 (de punt) en #8 (het sterretje) gecombineerd
Deze twee reguliere expressies, wanneer je ze in combinatie gebruikt, betekenen -komt overeen met alles-. Laten we zeggen dat ik alle artikelen in mijn analytics mappen wil vinden (in zowel /analytics/ en /en/web-analytics/) met Google in de titel. En dus in de URL. Wat de twee mappen met elkaar gemeen hebben is dat de mapnaam eindigt met analytics/ .
Vervolgens heb ik dus een manier nodig om te zoeken naar het woord google in de hier op volgende tekenreeks. Ongeacht of er voor of na het woord google nog tekens staan.
Een voorbeeld van de reguliere expressie die je hiervoor gebruik kan gebruiken: analytics/.google.
Regular expression character #9 Dakje (inlasteken)
Wanneer je een dakje in een reguliere expressie gebruikt, zoek je enkel naar een overeenkomende tekenreeks die met exact de tekens in je reguliere expressie begint.
Dus stel dat ik in de volgende URL structuur https://www.thijsvannoort.nl/en/web-analytics/ op zoek ben naar sessies met als bestemmingspagina één van de pagina’s in mijn /web-analytics map. Dit zou ik kunnen proberen met bijvoorbeeld de RegEx: ^/web-analytics/.*
Dit zou echter geen resultaten opleveren omdat in Google Analytics de URLs direct na het hoofddomein beginnen. Kortom na https://www.thijsvannoort.nl . Dus om alle sessies te vinden die in de web-analytics map beginnen, moet ik het /en/ ook in de expressie opnemen: ^/en/web-analytics/.*
Regular expression character #10 Dollarteken
Een dollarteken betekent dat het enkel met een tekenreeks overeenkomt die op het punt eindigt waar het dollarteken geplaatst is. Uitgaande van hetzelfde voorbeeld als hierboven (/en/web-analytics): laten we zeggen dat ik wil weten hoe vaak die specifieke map (zonder de onderliggende pagina’s) de bestemmingspagina van een sessie is geweest. Om hierop te filteren, gebruik ik de reguliere expressie: ^/en/web-analytics/$
Dat waren de losse reguliere expressies. Nu is het uiteraard de kunst om ze te combineren om zo je data zo nauw of breed te filteren als dat je nodig hebt.
Heb je zelf nog handige RegEx voorbeelden om te delen? Laat het weten in de reacties!