Ons geliefde Google Analytics zoals we deze kennen verdwijnt per 1 juli 2023. De huidige versie — officieel Universal Analytics genoemd — zal worden vervangen door de nieuwe versie: Google Analytics 4 of GA4.

De vorige versie is verouderd en maakt gebruik van Cookies en dat kan natuurlijk niet meer in deze tijd, waar Privacy — zelfs bij Google, al zij het onder dwang — hoog in het vaandel staat. De nieuwe versie leunt niet alleen op Cookies om metingen te doen, maar voegt er Blended Data aan toe. Op die manier kan GA4 jouw bezoekers betrouwbaar volgen met alleen een first party cookie of door AI ingevulde data, helemaal volgens regels van de AVG/GDPR.

In de kern om GA4 met de volgende verbeteringen:

  1. Verbeterde privacy
    Concreet wordt alleen genoemd dat er geen IP-adressen meer bewaard worden, verder is het onbekend hoe Google de privacy heeft verbeterd.
  2. Event Based Measurement
    Voor elke interactie wordt er een event gemeten (bijvoorbeeld:page_view,session_start,scroll,click), uiteraard kun je ook zelf events maken.
  3. Cross-Platform
    Doordat er een nieuw property type is toegevoegd die onderscheid maakt tussen App en Web, kan je data uit je Applicatie en Website laten binnenkomen op één account.

Je oude Universal Analytics omzetten naar Google Analytics 4

Google heeft uiteraard een uitstekende instructie gemaakt hoe je een nieuw GA4 property voor een Website of APP kunt instellen. Heel concreet is het proces onderverdeeld in drie belangrijke stappen:

  1. Er moet een nieuwe property gemaakt worden, dit nummer is (meestal) uniek per website, hier zullen de metingen aan gekoppeld worden;
  2. Aan de property moet een Gegevensstroom instellen worden, in dit geval een webstream, die de gegevens van jouw website zal meten middels de unieke Metings-ID;
  3. Middels de Instelassistent kan jouw oude Universal Analytics property gekoppeld worden aan de nieuwe GA4-property, zodat gegevens van de oude property worden doorgestuurd naar de nieuwe.

1. Een nieuwe Google Analytics 4 property maken

  1. In de linkerbalk in Analytics klik je onderaan op Beheer;
  2. Kies in de eerste kolom het Account waar jouw website bij hoort.
    In mijn geval heb ik een Account per opdrachtgever, maar je kunt ook een Account per website aanhouden;
  3. Klik in de tweede kolom op de "+ Property maken" knop;
  4. Kies een Naam voor deze property (bijvoorbeeld de naam van jouw website), een tijdzone (bijvoorbeeld Nederland) en een valuta (bijvoorbeeld Euro) en klik op Volgende;
    Vul eventueel de sectie "Over uw bedrijf" in, deze informatie is niet verplicht en klik op "Maken".
  5. De nieuwe property is nu gemaakt en klaar voor gebruik.

2. Gegevensstroom (Webstream) instellen

  1. Kies in de nieuw gemaakte property de optie "Gegevensstreams", als deze niet automatisch wordt geselecteerd en kies vervolgens het platform "Web";
  2. In het nieuwe scherm vul je het volledige domein van jouw website in, controleer of jouw website met of zonder www. voorzetsel werkt;
  3. Je kunt overige gegevens ongeroerd laten en op "Stream maken" klikken om alles op te slaan;
  4. Er zal zich een nieuw scherm openen waarin de Metings-ID wordt getoond, kopieer deze en/of sla deze op voor later gebruik.

3. Universal Analytics koppelen aan GA4-property

Deze stap is optioneel, maar zorgt dat gegevens die nu nog binnenkomen op de oude Universal Analytics alvast worden doorgestuurd naar de nieuwe GA4-property.

  1. Navigeer naar de oude Universal Analytics property van jouw website en kies "Installatieassistent voor GA4";
  2. Rechts onder "Ik wil een koppeling maken […]" kies je in de dropdown de GA4-property die je hebt aangemaakt;
  3. Klik op "Property's koppelen" om de koppeling compleet te maken.

Google Analytics 4 property installeren op jouw website (JavaScript)

De nieuwe GA4-property gebruikt net zoals de vorige Universal Analytics een Trackingcode op jouw site om de statistieken te verzamelen. Dit is een stukje JavaScript waarin aan Google Analytics wordt doorgegeven onder welke property of Metings-ID de statistieken opgeslagen moeten worden.

Zie onderstaand de oude Universal Analytics versus de nieuwe GA4 Tracking code. Zoals je ziet hoeft de pageview gebeurtenis niet meer handmatig aangeroepen te worden, dit gebeurt automatisch.

«script»
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-XXXXXXX-X', 'auto');
ga('send', 'pageview');
«/script»
«script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"»
«script»
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }

gtag('js', new Date());
gtag('config', 'G-XXXXXXXXXX');
«/script»

Wat als mijn websitesysteem (CMS) werkt niet met Google Analytics 4?

Zoals met elke technologie, moeten website systemen of CMS systemen bijgewerkt worden om de nieuwe property te ondersteunen. Als jouw website systeem deze ondersteuning nog niet heeft, geef jouw web-bouwer dan een schop onder z'n hol en zorg dat het wordt geregeld. Vergeet daarbij niet dat je t/m 1 juli 2023 hebt om de migratie te maken, dus wees niet te streng.

Het is wel goed om bovenstaande instructie te volgen, met name stap 3 waarin de huidige Universal Analytics property wordt gekoppeld aan de nieuwe GA4-property. Op die manier worden de gegevens 1 op 1 overgenomen en verlies je minder data als je de daadwerkelijke overstap later alsnog maakt.

Waar vind ik de Tracking code (Algemene Sitetag) en Metings-ID?

  1. In de linkerbalk in Analytics klik je onderaan op "Beheer";
  2. Kies in de tweede kolom de nieuwe GA4-property en kies daaronder voor "Gegevensstreams";
  3. Daar vind je de "Webstream" terug die je eerder hebt ingesteld, klik daar op het betreffende item in de tabel;
  4. De "Streamdetails" weergave opent zich, hier kun je zowel de "Metings-ID" als de "Algemene sitetag (gtag.js)" vinden, welke je 1 op 1 kunt kopiëren en plakken.

Wordpress geknutsel…

Als je van de plugins bent, dan wordt vaak de Insert Headers and Footers plugin gebruikt om de Tracking code te plaatsen. Als alternatief — hier ben ik persoonlijk meer voorstander van — kun je in de functions.php van jouw child-theme de wp_head -hook gebruiken.

Privacy met Google Analytics 4

IP anonimiseren niet meer nodig, dit gebeurt vanzelf

Waar met de oude Universal Analytics handmatig het anonimiseren van IP-adressen ingeschakeld moet worden middels de anonymize_ip configuratie, is anonimiseren met GA4 niet meer nodig. Wel adviseer ik — om de privacy van je bezoekers te bewaken — de allow_google_signals optie uit te schakelen:

gtag('config', 'G-FJDF5ERDJG', {
'anonymize_ip': true,
'allow_google_signals': false
});

AVG/GDPR en Cookie Melding

Zoals eerder gezegd maakt GA4 slechts gebruik van een first-party cookie, welke uitsluitend gebruikt wordt voor het meten van bezoekersstatistieken. Hierdoor lijkt het alsof deze cookies vallen onder de Analytische cookies, zoals de uitsluiting van de ACM omschrijft. Kortom, je hebt alsnog een goede Cookie Melding nodig als je Analytics gebruikt.

Google Analytics 4 Events

Zoals eerder benoemd is GA4 volledig event based, anders gezegd alle metingen worden bewaard als gebeurtenissen of events. Daarbij wordt er gebruik gemaakt van verschillende soorten events:

  1. Automatisch verzemelde gebeurtenissen of Automatically collected events
    Denk hierbij aan standaard gebeurtenissen als click en first_visit , gewone gebruikers activiteit op een website.
  2. Gebeurtenissen voor verbeterde meting of Enhanced measurement events
    Voor deze gebeurtenissen dien je bij jouw Gegevensstream de optie "Verbeterde meting" in te schakelen. Er worden dan extra gebeurtenissen bewaard, bijvoorbeeld page_view en scroll . Bij sommige gebeurtenissen worden extra gegevens bewaard (bijvoorbeeld uitgaande klikken bij click ),
  3. Aanbevolen gebeurtenissen of Recommended events
    Deze gebeurtenissen worden niet automatisch gemeten en dien je zelf te implementeren (of misschien doet jouw website systeem dit al voor je).
    Denk hierbij aan add_to_cart als iemand iets in zijn winkelwagentje plaatste, purchase als iemand een aankoop doet of generate_lead als iemand een opt-in formulier invult.
  4. Aangepaste gebeurtenissen of Custom events
    Betreft gebeurtenissen waarvan je zelf de naam en parameters bedenkt. Zo kun je bijvoorbeeld meten welke opties er op een formulier worden ingevuld, of wanneer iemand op een bepaalde knop klikt. Zo kun je extreem nauwkeurig statistieken verzamelen.

Aanbevolen gebeurtenissen programmeren

De methode om handmatig een gebeurtenis aan te roepen via JavaScript is relatief gemakkelijk, makkelijker nog dan vroeger. Het laatste argument waarin je de parameters opgeeft moet aan de definities van de API voldoen. Zie onder een oud voorbeeld via Universal Analytics, gevolgd door de nieuwe variant via GA4. Zoals je ziet kun je nu zelf de parameters bepalen, waar je voorheen meer vast zat aan de vaste eventCategory , eventAction , eventLabel , eventValue en fieldObject volgorde.

if ('ga' in window) {
var tracker = ga.getAll()[0];
tracker.send("event", "login", "usernamepassword");
}
gtag("event", "login", {
  method: "usernamepassword"
});

Aangepaste gebeurtenissen maken, bewerken

In GA4 kun je op twee manieren aangepaste gebeurtenissen — gebeurtenissen waarvan je de naam zelf verzint ­ — maken:

  1. Via de interface, hier kun je zonder tussenkomst van een ontwikkelaar speciale gebeurtenissen instellen:
    1. Gebeurtenissen maken: waarbij je op basis van een aantal voorwaarden een nieuwe gebeurtenis meet.
      Stel, je wil meten hoe vaak jouw verkooppagina wordt bekeken, dan kun je een filter instellen op het event page_view waarbij de page_location de URL van jouw sales pagina heeft. De gebeurtenis visit_sales_page sla je op en wordt vervolgens netjes in de dashboards getoond.
    2. Gebeurtenissen bewerken: waarbij je een gebeurtenis die aan een aantal voorwaarden voldoet converteert of omzet naar een andere gebeurtenis.
      Als bijvoorbeeld iemand de betaalpagina van jouw website bezoekt, kun je de gebeurtenis page_view waarbij de page_location de URL van jouw checkout pagina heeft, omzetten naar page_view_checkout en dit meten als conversie.
  2. In code oftewel via de JavaScript API, hiervoor zul je waarschijnlijk een ontwikkelaar nodig hebben.
    Je kunt de naam en de parameters van de gebeurtenis zelf bedenken, zie onderstaand voorbeeld:
jQuery("#submit").on("click", function (e) {
  gtag("event", "submit_form", {
    "form": "Contact form"
  });
});

Debugging Google Analytics 4: DebugView

Wanneer je een plugin als Google Analytics Debugger voor Firefox of voor Chrome gebruikt, dan kun je in de Console in Developer Tools (F12) van jouw browser precies zien welke informatie er aan GA4 wordt verstuurd.

Over de DebugView mogelijkheid ben ik als ontwikkelaar best te spreken. De  De gebeurtenissen die je via bovengenoemde plugins hebt verzonden worden op een nette, leesbare manier gepresenteerd zodat je precies kunt zien of GA4 de gegevens juist interpreteert.

Debuggen zonder Google of Firefox plugin

Klein zijspoor: bovengenoemde plugins geven aan de Trackingcode door dat de debugmodus actief is. De broncode (openen als zip, zie background.js ) verraad dat dit gebeurt middels de dbg parameter een gtm_debug cookie. Je kunt dit lokaal naspelen en zo zonder tussenkomt van plugins de logging in de console en DebugView gebruiken, bijvoorbeeld:

$url = 'https://www.googletagmanager.com/gtag/js?' . http_build_query([
   'id' => "G-XXXXXXXXXX",
  'dbg' => random_int(1000, 9999)
]);
$handle = curl_init();
curl_setopt_array($handle, [
  CURLOPT_URL => $url,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_COOKIE => 'gtm_debug=LOG=x'
]);
$js = curl_exec($handle);
curl_close($handle);
header('Content-Type: text/javascript');
echo $js;
exit;

Conclusie

Voor ontwikkelaars is Googla Analytics4 een welkome verbetering. Qua privacy heb ik mijn twijfels, simpelweg omdat nagenoeg dezelfde informatie wordt gemeten, ook al is dit op een andere manier. Het voelt een beetje alsof een ontwikkeling die reeds al in de maak was, ook maar even als AVG/GDPR compliant is gepresenteerd.

Hier moet wel eerlijk aan toegevoegd worden dat GA4 aan de regel van de wet voldoet, gezien er geen third party cookies meer worden geplaatst, mijn bezwaar doelt meer op de geest van de wet.