Na mijn laatste GA beginners post, vroeg WendyW naar het regex gedeelte van de GAIQ studiegids. Dit zette me ertoe aan terug te gaan en er nog eens naar te kijken, alleen om te ontdekken dat Google’s presentatie zeker wat verfraaiing kan gebruiken.
Voor degenen die niet bekend zijn met Regex, het is een systeem voor het matchen van reeksen van tekst, getallen, symbolen, enz. Opdrachten worden geschreven in de taal van Regex, dan gematcht door een regex processor die tekst identificeert die overeenkomt met uw specificatie.
Regex is ongelooflijk handig bij het werken met, nou ja, bijna alles. Google staat (zeer) beperkte Regex toe in search, meer robuuste regex in analytics, veel notepad applicaties hebben ingebouwde regex processors voor hun find/replace systemen, en htaccess maakt er veel gebruik van.
Vandaag ga ik jullie allemaal meenemen door de basis van Regex en laten zien hoe je het kunt gebruiken met Google Analytics om je rapporten, filters, en meer te verbeteren.
Inhoud
- De taal van Regex
- Wat u kunt doen met Regex en Google Analytics
- Tools voor het testen van uw Regex
Deel 1: De taal van Regex
Regex-commando’s kunnen variëren van eenvoudig tot ongelooflijk volwaardig, afhankelijk van hoeveel “taal” u met hen gebruikt. Het volgende is een flinke (maar niet volledige) selectie van regex termen:
. De punt is een joker. Het kan elk willekeurig teken weergeven.
+ : herhaalt het vorige teken 1 of meer keren.
* : herhaalt het vorige teken 0 of meer keren.
() : Haakjes vertegenwoordigen een set van “tokens” of regel elementen. Bijvoorbeeld, (.+) zou overeenkomen met een willekeurige reeks tekens. Hiermee kun je een operator op een hele groep toepassen. Dus als je bijvoorbeeld het woord “wat” wilt gebruiken, dan typ je “wat”, maar als je ook “wat-wat” wilt gebruiken, dan gebruik je “(wat)+”.
Parentheses creëren ook een “back reference”, die kan worden opgeroepen met een “quot; in veel regex engines.
: Vierkante haakjes vertegenwoordigen een bereik. Bijvoorbeeld, dit komt overeen met elke kleine letter tussen a en t. Je kunt ook meerdere items binnen een haakje hebben, bijvoorbeeld, dit komt overeen met elke letter, nummer, spatie, koppelteken, nummer teken, aanhalingsteken, of gelijk-teken. (Ja, dit zou beter geschreven zijn, maar ik maakte een punt over bereiken)
{} : Krullende haakjes zijn vreemd. Ze definiëren herhaling. Dus (wat){2} zou alleen overeenkomen met twee herhalingen van wat (wat-wat). Als alternatief (wat){2,7} zou tellen tussen twee en zeven herhalingen van wat (inclusief 3 herhalingen, 4 herhalingen, 5,6)
:Vertegenwoordigt elk cijfer
{} : Vertegenwoordigt een willekeurig witruimte-element (spatie, markering, enz.)
w : Vertegenwoordigt elk alfanumeriek teken of onderstrepingsteken
$ : Dollarteken geeft het einde van een string aan. In htaccess kan het ook worden gebruikt om reeksen op te roepen die eerder zijn gedefinieerd door haakjes.
^ : Het wortelteken heeft twee doelen. Het kan overeenkomen met het begin van een string, maar ook kan het karakters negeren in karaktersets. Dus ^$ zal alleen overeenkomen met een tekenreeks die begint en eindigt met een enkele kleine letter alfa, (^) zal overeenkomen met elke tekenreeks die geen andere tekens dan een kleine letter bevat. Dus aaa komt niet overeen, aAa komt overeen, en AAA komt overeen.
– : een koppelteken creëert een bereik. Bijvoorbeeld, a-z komt overeen met elk teken van a tot z (maar niet met hoofdletters)
| : Het streepje staat voor “of”. Dus a|b komt overeen met a of b.
: Schuine streep betekent “letterlijk”. Dus terwijl “.” overeenkomt met elk teken, komt “schuine streep” alleen overeen met punten. En terwijl “?” zou overeenkomen met het einde van een zin, zou “\?” overeenkomen met een vraagteken. In bepaalde implementaties van regex (b.v. Notepad ++) kunnen schuine strepen ook gebruikt worden met getallen om gebieden te herhalen die eerder gedefinieerd zijn door haakjes (hetzelfde als $1, $2, enz. in htaccess).
?: Matcht een string die dit wel of niet bevat. Dus bijvoorbeeld “? Howe st” zou overeenkomen met “1080 Howe st.” of “Howe st.” maar niet met “64 Howe st.” terwijl “64?” zou overeenkomen met “6” of “64”. Het vraagteken heeft ook het dubbele doel om een expressie “lui” te maken (normaal gesproken is regex hebberig). Hebzucht en luiheid doen me hoofdpijn (zowel in het echte leven als in regex) dus laat ik deze maar over aan LunaMetrics (goede hebzucht en slechte hebzucht)
Heb je dat allemaal onthouden? Nee? Maak je geen zorgen.
Deel 2: Wat je kunt doen met Regex en Google Analytics
Dus nu ken je de syntaxis, wat kun je ermee doen?
Image Search
Ani Lopez, op zijn blog, heeft een geweldig voorbeeld van hoe je regex kunt gebruiken om een filter/aangepast segment te maken dat het zoeken naar afbeeldingen bijhoudt. Om dit te testen open GA, open verkeersbronnen, ga dan naar het bron tabblad en selecteer verwijzingspad (in plaats van bron).
Onderaan dit rapport open je filters en voer de volgende string in:
Herinner je je regex taal, wat betekent de bovenstaande string? ^ = regel begint met; | = of; () = een set; dus (Vetgedrukte woorden die overeenkomen met symbolen):
regel begint met ‘/imgres’ of ‘/images/view’ of ‘/images/search’.
Keywords
Dankzij een post van Darcy, krijgen we veel mensen op zoek naar hoe te weten te komen wie er naar hun Facebook foto’s/profiel kijkt. Misschien wil ik ze eruit filteren, of nog beter ik wil weten of ze converteren (of dat het gewoon afvalverkeer is), zodat ik ze kan sorteren met het volgende trefwoordfilter:
Hoe kunnen we dit lezen?
Match elke regel die ‘bekeken’ of ‘kijken’ of ‘keek’ of ‘kijkt’ of ‘gekopieerd’ of ‘bekijken’ bevat, dan alfanumerieke tekens, spaties of koppeltekens heeft die een willekeurig aantal keren worden herhaald, gevolgd door ‘gezicht’, een optionele spatie, dan ‘boek’.
IP Filters
Zeg dat uw netwerk een IP bereik heeft van 123.456.789.1 tot 123.456.789.999, en u wilt niet dat GA het bezoeken en interacties aan uw site telt van binnen uw kantoor. U zou een filter kunnen schrijven dat
blokkeert, of als u preciezer wilt zijn&hellip
In het eerste geval zegt u dat elk IP bereik van 123.456.789. tot 123.456.789..
Maar laten we het interessanter maken. Laten we zeggen dat u het ip-bereik 64.281.31.1 tot 64.281.31.999 hebt. Hoe zou je daar een regel voor schrijven?
Als je naar mijn voorbeeld hierboven kijkt en schrijft
of
, dan heb je het mis.
Waarom?
Omdat dat ook overeenkomt met 164.281.31.. Ja, getallen voor je string tellen mee! Dus je moet het schrijven als:
Deel 3: Hulpmiddelen om je Regex te testen
Regex kan complex zijn, en voordat je het gaat toepassen wil je het testen. Er zijn twee eenvoudige oplossingen.
- De eerste is RegexPal, waarmee je tekst kunt invoeren en daarop regex regels kunt testen.
- De tweede is RegExr die een complexere interface biedt dan Regexpal, maar je ook een referentie geeft en de optie om regex commando’s op te slaan. Het heeft ook een Adobe AIR downloadbare versie die hier te vinden is.
Ik weet zeker dat jullie allemaal vindingrijk gebruik kunnen maken van Regex in GA, en ik hoop dat jullie je eigen interessante regex expressies zullen posten.