← Alle resources Tutorial

Content groups in GA4 instellen met Google Tag Manager

Een contentgroep is een bak met pagina's die bij elkaar horen: alle productpagina's van één categorie, elke blogpost over één thema, de supportsectie, de checkout. GA4 rapporteert standaard op losse pagina's, prima voor een site met twintig pagina's en nutteloos voor een site met tweeduizend. Met contentgroepen zie je hoe een hele sectie presteert en vergelijk je secties met elkaar: krijgt de herencollectie meer betrokken bezoeken dan de damescollectie, komen lezers van de kennisbank terug, welk deel van de blog levert leads op?

GA4 heeft hier een eigen plek voor: de content_group parameter. Stuur die mee met je paginaweergaven en events, dan vult GA4 zijn eigen Content group dimensie. Deze gids zet het in vier stappen op met Google Tag Manager. Onderdeel van de GA4-handleiding.

Stap 0: bepaal eerst je groepen

Elke site is anders, dus de groepen komen uit je eigen structuur, niet uit een sjabloon. Een paar patronen die werken:

Twee regels houden de data bruikbaar. Houd het bij minder dan zo'n tien groepen, zodat een rapport leesbaar blijft. En zorg dat je URL's de groep ook echt verraden: de opzet hieronder leest het paginapad, dus /men/shirts/... is makkelijk te groeperen en /p/18342 niet. Zit er geen structuur in je URL's, gebruik dan een datalayer-waarde uit je CMS (zie de veelgestelde vragen).

Stap 1: een RegEx Table-variabele in Tag Manager

Ga in Tag Manager naar Variables › User-Defined Variables › New, kies RegEx Table (onder Utilities) en noem hem RegEx Table · Content group.

  1. Input variable: {{Page Path}}. Het pad is het deel van de URL na het domein, dus dezelfde tabel werkt op elk domein en in elke omgeving.
  2. Voeg per groep een rij toe. Het patroon is een reguliere expressie, de output is de groepsnaam. Bijvoorbeeld patroon ^/men/ met output Men, en ^/blog/|^/news/ met output Blog. De verticale streep (pipe) betekent "of".
  3. Zet Default Value op Other, zodat pagina's die op geen enkele rij matchen toch een groep krijgen in plaats van een lege waarde.
  4. Onder Advanced Settings vink je Full Matches Only uit (een patroon hoeft alleen ergens in het pad voor te komen, niet het hele pad te matchen) en laat Enable Capture Groups and Replace Functionality uit staan.

De tabel wordt van boven naar beneden gelezen en stopt bij de eerste match, dus specifieke rijen horen boven algemene: de tabel moet eerst kijken naar ^/blog/ga4/ voordat ^/blog/ aan de beurt is. Houd patronen simpel en test ze op regex101.com voordat je ze plakt; een typfout in een reguliere expressie faalt zonder melding en zet alles in Other.

Stap 2: stuur content_group mee met elk event

De netste manier om een parameter aan alles te hangen wat GA4 ontvangt, is een gedeelde instellingenvariabele: je definieert hem één keer in plaats van in elke tag.

  1. Maak een variabele van het type Google Tag: Event Settings, noem hem GA4 · Event settings, en voeg een rij toe: parameter content_group, waarde {{RegEx Table · Content group}}.
  2. Open je Google Analytics-tag, die met je G- measurement ID (of de Google tag in een container die nog niet is omgezet naar Destination-tags). Ga naar Shared event settings, selecteer daar {{GA4 · Event settings}}. Paginaweergaven krijgen de groep nu mee.
  3. Open elke Google Analytics: GA4 Event tag en selecteer dezelfde variabele onder Event Settings Variable. Klikken, formulierinzendingen en aankopen krijgen de groep nu ook mee, zodat je ziet in welke sectie een conversie plaatsvond.

In een oudere container zie je misschien nog een "GA4 Configuration"-tag met een Fields to Set tabel. Dat werkt op dezelfde manier: voeg content_group daar toe, en ook als eventparameter op elke eventtag.

Stap 3: test voordat je publiceert

Open Preview in Tag Manager, klik door pagina's uit verschillende groepen en controleer op elke pagina de waarde van de variabele in het tabblad Variables. Open daarna DebugView in GA4 (Admin › Data display › DebugView), klik op een page_view event en zoek naar content_group tussen de parameters. Controleer ook een pagina die in Other hoort te vallen: belandt die in een echte groep, dan is een patroon te ruim.

Publiceer pas als elke groep binnenkomt zoals bedoeld. Contentgroepen worden niet toegepast op data die al verzameld is, dus een fout die een maand doorloopt, blijft in die maand staan.

Stap 4: waar de data verschijnt

content_group is een parameter die GA4 herkent, dus je hoeft niets te registreren. Hij vult de ingebouwde Content group dimensie, die je terugvindt in:

Omdat de groep ook met events meereist, vertelt een filter als "key events waar Content group Blog is" je hoeveel van je conversievolume in je content begint, niet alleen hoeveel mensen die lezen.

Meer dan één manier van groeperen

GA4 heeft één ingebouwde contentgroep, Universal Analytics had er vijf. Wil je een tweede indeling (bijvoorbeeld "paginatype": product, categorie, artikel, landingspagina naast je categoriegroepen), bouw dan een tweede RegEx Table en stuur die als eigen parameter, zoals page_type in dezelfde Event Settings-variabele mee. Registreer hem daarna als aangepaste dimensie met eventbereik onder Admin › Data display › Custom definitions. Aangepaste dimensies vullen pas vanaf het moment dat je ze registreert, dus eerst registreren, dan publiceren.

Een indeling op taal is een speciaal geval met een eigen artikel: de beste GA4-inrichting voor meertalige websites.

Als je GA4 via een servercontainer laat lopen

Aan de opzet verandert niets. content_group wordt in de browser gezet en reist bij elke hit mee naar je servercontainer, dus het komt ongewijzigd bij GA4 aan. Het is ook beschikbaar voor elke andere tag in de servercontainer: je kunt dezelfde groep als custom parameter naar Meta of Google Ads sturen, of hem gebruiken in een server-side trigger, zonder hem twee keer te bouwen. En omdat hits naar je eigen domein gaan, worden ook bezoekers met een adblocker gegroepeerd, wat de vergelijking tussen secties completer maakt.

Veelgestelde vragen

Heb ik een aangepaste dimensie nodig voor content_group?

Nee. GA4 herkent content_group en vult zelf de ingebouwde Content group-dimensie. Een aangepaste dimensie heb je alleen nodig voor extra indelingen met je eigen parameternamen.

Gelden contentgroepen ook voor mijn historische data?

Nee. Een groep wordt aan events gekoppeld op het moment dat ze verzameld worden. Pagina's die bezocht zijn voordat je de opzet publiceerde, hebben geen contentgroep, en een patroon later aanpassen deelt oudere data niet opnieuw in.

Mijn URL's laten de categorie niet zien. Wat nu?

Lees de groep uit de pagina in plaats van uit de URL. De meeste CMS'en en shopplatforms kunnen de categorie of templatenaam in de datalayer zetten; een Data Layer Variable vervangt dan {{Page Path}} als input, of levert direct de waarde voor content_group aan.

Waarom komt alles in Other terecht?

Meestal door een patroon dat nooit matcht: een ontbrekende slash, een escape-teken dat er niet hoort, of Full Matches Only dat nog aangevinkt staat. Test de patronen op regex101 tegen echte paden uit je Pages-rapport en controleer de variabele in Tag Manager Preview.

Kan ik contentgroepen in GA4 instellen zonder Tag Manager?

Ja. Met gtag.js geef je content_group mee in de config-aanroep of bij elk event. GA4 zelf heeft geen interface om groepen op URL te definiëren; de waarde moet altijd met het event meekomen.

Verder lezen

Klaar om je tracking-setup te verbeteren?

Gratis starten, geen creditcard nodig. Binnen een kwartier live.

Gratis starten