← Alle resources Gids

De beste GA4-inrichting voor meertalige websites

Een website in drie talen roept steeds dezelfde vraag op: één GA4-property per taal, of één voor allemaal? Het antwoord is bijna altijd één property, met de taal als extra dimensie. Aparte properties verdrievoudigen de inrichting en het onderhoud (elk key event, elke doelgroep, elke koppeling met Google Ads en elke aangepaste dimensie drie keer) en maken de meest gestelde vraag, "hoe doet de hele site het?", onbeantwoordbaar zonder rapporten met de hand op te tellen.

Deze gids behandelt de drie manieren waarop meertalige sites gebouwd worden, de GA4-inrichting voor elk ervan, en hoe je een dimensie page_language toevoegt in Google Tag Manager, zodat je nog steeds per taal kunt filteren en vergelijken.

Drie manieren om een meertalige site te bouwen

Alle drie komen op hetzelfde uit: één GA4-property, één webdatastream, één Google-tag en een taaldimensie. Het verschil zit in hoe de identiteit van de bezoeker een overstap naar een andere taal overleeft.

Submappen en subdomeinen: één property, verder niets

Met submappen draait alles op één domein, dus één Tag Manager-container die één Google-tag laadt is de hele inrichting. Subdomeinen zijn net zo eenvoudig: GA4 zet zijn cookie op het hoofddomein, dus een bezoeker die van nl.example.com op fr.example.com gaat, houdt hetzelfde client-ID zonder enige configuratie. (Universal Analytics had hiervoor cross-domain-instellingen nodig; GA4 niet.)

Je kunt één container voor alle subdomeinen gebruiken of één per subdomein, zolang elke container hetzelfde Measurement ID laadt. Met één container houd je alles makkelijker consistent. Bij Measurebase dekt één domein elk subdomein, met één snippet en één tagginghost: één domein, veel subdomeinen.

Aparte domeinen: één property plus cross-domain tracking

Cookies zijn aan een domein gebonden, dus een bezoeker die van example.nl op example.fr gaat, zou een nieuwe sessie starten als nieuwe gebruiker, met het eerste domein als referrer. Hetzelfde Measurement ID op beide domeinen is nodig, maar niet genoeg. Voeg beide domeinen toe aan de datastream:

  1. Ga in GA4 naar Admin › Data collection and modification › Data streams en open je webstream.
  2. Klik op Configure tag settings, daarna Configure your domains.
  3. Voeg voor elk domein een voorwaarde toe, matchtype Contains: example.nl, example.fr, enzovoort. Sla op.

De Google-tag voegt nu een parameter _gl toe aan links tussen die domeinen, die het client-ID meeneemt, en GA4 ziet ze niet langer als verwijzingen naar elkaar. De volledige achtergrond, inclusief redirects en formulieren die de parameter kwijtraken, lees je in cross-domain tracking tussen twee verschillende hoofddomeinen.

Waarom de eigen Language-dimensie van GA4 niet genoeg is

GA4 heeft al een dimensie met de naam Language, en het is verleidelijk om die te gebruiken. Die bevat de taal van de browser van de bezoeker, niet de taal van de pagina die hij leest. Een Nederlandstalige met een Engelse browser die je Nederlandse pagina's leest, telt als Engels, en een expat die je Franse site op een Duitse laptop bekijkt, telt als Duits. Voor "hoe presteren mijn taalversies" heb je de taal van de pagina nodig, en die voeg je zelf toe als page_language.

page_language bouwen in Tag Manager

Kies de meest betrouwbare bron op je site:

Gebruik taalcodes (nl, fr, en) in plaats van namen. Ze zijn korter, worden nooit per ongeluk vertaald en komen overeen met wat de meeste CMS'en, feeds en advertentieplatforms gebruiken.

Meesturen met elk event en registreren

  1. Voeg een rij toe aan je Google Tag: Event Settings variabele: parameter page_language, waarde {{Page language}}. Werk je met content groups, dan is dit dezelfde variabele.
  2. Zorg dat die variabele geselecteerd is onder Shared event settings in de Google-tag en onder Event Settings Variable in elke GA4-eventtag.
  3. Ga in GA4 naar Admin › Data display › Custom definitions › Create custom dimension: naam Page language, scope Event, eventparameter page_language. Schrijf hem precies zoals in Tag Manager.

Registreer de dimensie voordat je de container publiceert: aangepaste dimensies vullen zich pas vanaf het moment dat ze bestaan. Test daarna in Tag Manager Preview en GA4 DebugView op een pagina in elke taal.

Content groups die over talen heen werken

Nu de taal een eigen dimensie heeft, moeten je content groups hem weglaten. Groepeer /nl/blog/, /fr/blog/ en /blog/ allemaal als Blog (een patroon zoals /blog/ zonder anker matcht alle drie), en je kunt de blog over talen heen vergelijken, of elke sectie binnen één taal, met twee dimensies in plaats van een lange lijst gecombineerde groepen. Vertaalde slugs hebben één rij per taal nodig: /blog/|/blogue/.

E-commerce, valuta en Google Ads

Als je GA4 via een servercontainer laat lopen

De inrichting hierboven blijft gelijk: page_language en content_group worden in de browser gezet en komen ongewijzigd via de servercontainer bij GA4 aan. Twee dingen om op elkaar af te stemmen. Met aparte domeinen heeft elk domein een eigen first-party tagging-host nodig, en de cross-domain-instellingen hierboven gelden nog steeds in de datastream. En met één servercontainer achter alle talen kun je page_language gebruiken in server-side triggers, bijvoorbeeld om Nederlandse en Franse aankopen naar verschillende Meta-pixels te sturen. In Measurebase dekt één domein ook zijn subdomeinen; aparte landendomeinen zijn aparte domeinen op hetzelfde account, zie meerdere domeinen beheren op één account.

Veelgestelde vragen

Moet ik ooit een aparte GA4-property per taal gebruiken?

Alleen als de taalversies echt aparte bedrijven zijn: andere eigenaren, teams die elkaars data niet mogen zien, of juridische redenen. Voor één bedrijf met één site in meerdere talen is één property makkelijker te beheren en krijg je totalen zonder extra werk.

Heb ik een aparte datastream per taal nodig?

Nee. Eén webdatastream verwerkt elk domein, elk subdomein en elke submap. Meerdere webstreams in één property versnipperen je configuratie (Enhanced measurement, domeinen, intern verkeer) zonder iets toe te voegen wat je niet al uit page_language haalt.

En een site waar de standaardtaal geen prefix heeft?

Dan moet de standaardwaarde van de RegEx Table die taal zijn, omdat die pagina's op geen enkel patroon matchen. Het lang-attribuut voorkomt dit helemaal, nog een reden om daarvoor te kiezen.

Kan ik zien naar welke taal een bezoeker overschakelde?

Ja. Meet klikken op je taalkiezer als event (bijvoorbeeld language_switch met from en to als parameters), of vergelijk in een exploration de page_language van de landingspagina met die van latere pagina's.

Maakt hreflang uit voor GA4?

Nee. hreflang vertelt zoekmachines welke pagina welke taal bedient; GA4 negeert het. Het is wel een goed teken dat je lang-attributen ook goed staan, en daar leunt de aanbevolen variabele op.

Verder lezen

Klaar om je tracking-setup te verbeteren?

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

Gratis starten