Google Analytics: GA4 en BigQuery

01 december 2021
Samenvatting in 30 seconden
  • Het gebruik van Big Data algoritmes komt bij veel bedrijven niet van de grond. Dit doordat organisaties hier vaak niet de tijd en het geld voor hebben.
  • Met behulp van BigQuery en machine learning algoritmes kunnen bedrijven snel en goedkoop Big Data analyseren.
  • Een concreet voorbeeld van een algoritme dat beschikbaar is binnen BigQuery is ARIMA time series forecasting.
  • Het ARIMA-algoritme kan pas worden toegepast wanneer de GA4 data die geïmporteerd wordt eerst naar het juiste format wordt omgezet.
  • Als de GA4 data is omgezet, kan het algoritme erop los worden gelaten. Er onstaat een forecast die geanalyseerd kan worden.

Time Series Analyse met GA4 / BigQuery

In een vorig artikel hebben we geconstateerd dat implementatie van Google Analytics 4 zinvol kan zijn voor bedrijven die al wat verder zijn op de schaal van ‘data maturity’. Met name de automatische data export naar BigQuery biedt wat dat betreft een groot voordeel. Naast snelle laadtijden en ongesamplede data heb je ook beschikking tot niet geaggregeerde data: alle afzonderlijke hits komen in BigQuery terecht. Deze niet geaggregeerde data bieden veel meer kansen tot vergevorderde data-analyses. Hieronder een voorbeeld welke rol de combinatie GA4 / BigQuery verder kan spelen bij je eerste stappen in de wereld van Big Data.

GA4 met BigQuery: de gewenste data infrastructuur

Het wijdverspreide gebruik van Big Data dat een aantal jaren geleden nog voorspeld werd lijkt voor de meerderheid van bedrijven nooit echt waarheid te zijn geworden. Bij navraag onder klanten blijkt gebruik van Big Data algoritmes zelden van de grond te zijn gekomen. Vaak niet door een gebrek aan data, maar eerder door ontbrekende expertise binnen de organisatie. Van oudsher is voor machine learning vaak externe expertise en een uitgebreide data infrastructuur nodig. Niet elke organisatie heeft daar tijd en geld voor. De komst van GA4 en de integratie met BigQuery kunnen hier verandering in brengen.

BigQuery en Machine learning algoritmes

BigQuery biedt naast standaard SQL-query mogelijkheden ook geautomatiseerde machine learning algoritmes. Veel van de belangrijkste ML algoritmes kunnen met een paar regels code worden uitgevoerd. Doordat alles zich afspeelt binnen de BigQuery omgeving hoeft dit niet te resulteren in een grotere data infrastructuur: de GA4 data wordt automatisch geïmporteerd in BigQuery. Vervolgens kun je BigQuery (eventueel op basis van een tijdschema) ML algoritmes laten toepassen op die data. Uiteindelijk komt de data met behulp van de verschillende exportmogelijkheden die BigQuery biedt op de uiteindelijke plaats van bestemming.

Denk aan GDPR

Los van het praktische gemak dat zo’n alles-in-1 oplossing biedt, is een bijkomend voordeel dat je slechts voor die ene omgeving je GDPR op orde hoeft te hebben.

Dit maakt snelle tests / implementatie van ML algoritmes plotseling binnen handbereik zonder de hoge kosten en tijdsinvestering die anders nodig waren geweest.

Eerste terabyte van de maand gratis

BigQuery rekent kosten per gebruikte opslagruimte en voor de data die doorlopen is bij de query’s. Daarnaast heb je afzonderlijk kosten voor het uitvoeren van ML algoritmes. Meer informatie over de kosten vind je hier. (link naar: https://cloud.google.com/bigquery/pricing )

BigQuery maakt gebruik van een zogenaamde “free tier”. Op dit moment betekent dit dat de eerste terabyte aan gebruikte data van de maand gratis is. In de meeste gevallen is dat voldoende voor een gemiddelde test.

Target forecasting met ARIMA

Een concreet voorbeeld van een algoritme dat beschikbaar is binnen BigQuery is ARIMA time series forecasting. Een voorbeeld: veel bedrijven maken gebruik van targets. Ze stellen bijvoorbeeld een doel voor de maandelijkse omzet of winst. Vaak is de hoogte

van de target enigszins uit de lucht gegrepen. Er is geen rekening gehouden met de invloed van factoren als bijvoorbeeld seizoen en andere historische data op de hoogte van de target. ARIMA time series forecasting gebruikt historische data om voorspellingen te doen over de toekomst. Je kunt dit algoritme gebruiken om reëlere targets te stellen. Ook kun je het algoritme gebruiken om waarschuwingen af te geven als zich afwijkingen voordoen in de huidige data die een mogelijke breuk kunnen betekenen met de huidige verwachtingen, zogenaamde “anomaly detection”.

Voor de Newbees: de basis implementatie GA4 & BigQuery

Vanzelfsprekend is een eerste voorwaarde om GA4 te implementeren. Als Universal Analytics al op je website geïmplementeerd was, dan is implementatie van GA4 betrekkelijk eenvoudig. Google biedt een uitleg welke stappen je moet volgen. (https://support.google.com/analytics/answer/9744165?hl=nl)

Vervolgens activeer je de link met BigQuery. Ook hier biedt Google een duidelijke beschrijving van. (https://support.google.com/analytics/answer/9358801?hl=nl ) Daarna kun je inloggen via Google Cloud Console om de BigQuery omgeving te bezoeken. Je kunt alle benodigde query’s uitvoeren via de beschikbare IDE in Google Cloud Console. (https://console.cloud.google.com/bigquery )

Omzetten data format

Voordat het ARIMA-algoritme kan worden toegepast moet de uit GA4 geïmporteerde data eerst omgezet worden naar het juiste format. De te genereren tabel hoeft slechts 2 kolommen te bevatten: een kolom met datum en één die de betreffende target bevat. Doordat de GA4 data in BigQuery geneste data bevat (vergelijkbaar met JSON) kan het even wat moeite kosten de data om te zetten. Todd Kerpelman geeft in een artikel een duidelijke uitleg van de opbouw van deze data. (lhttps://medium.com/firebase-developers/using-the-unnest-function-in-bigquery-to-analyze-event-parameters-in-analytics-fb828f890b42 ).

Benodigde SQL Query’s

Hieronder volgen verschillende SQL-query’s die als voorbeeld dienen hoe een eenvoudige opzet eruit zou zien. Ben je geen SQL-whizzkid? Dat geeft niets. Je kunt de code gewoon overslaan. Onderstaande voorbeeld geeft dan in ieder geval een voorbeeld van de stappen die nodig zijn.

Een query om een tabel te genereren met conversies (gebaseerd op bereiken van een bepaalde webpagina) zou er ongeveer als volgt uit kunnen zien:


CREATE OR REPLACE TABLE `project.aggregates.conversions` AS

SELECT COUNT(DISTINCT user_pseudo_id) AS conversions, PARSE_DATE('%Y%m%d', event_date) AS conv_date

FROM `project.analytics_250567900.events_*`

WHERE event_name = "page_view" AND _TABLE_SUFFIX BETWEEN '20210618' AND '20210622' AND

(SELECT value.string_value FROM UNNEST(event_params)

WHERE key = "page_location") LIKE '%conversiepaginanaam.htm%'

GROUP BY conv_date

Vervolgens kun je op basis van deze tabel het ARIMA-model genereren. De query zou er dan zo uit kunnen zien:

CREATE OR REPLACE MODEL

`project.models.tseries` OPTIONS( MODEL_TYPE = 'ARIMA_PLUS',

TIME_SERIES_TIMESTAMP_COL = 'conv_date',

TIME_SERIES_DATA_COL = 'conversions',

HOLIDAY_REGION = 'NL' ) AS

SELECT

conv_date,

conversions

FROM

`project.aggregates.conversions`

WHERE

conv_date BETWEEN DATE('2019-01-01')

AND DATE('2021-04-01')

ORDER BY

conv_date ASC

Zo eenvoudig is de basis opzet voor het genereren van het model. Minder dan 30 regels code. Als het model gegenereerd is, kun je de forecast genereren. In onderstaande geval betreft dit een forecast van 30 dagen. Het model produceert ook een onderste en bovenste confidence level. Een confidence level van 0,9 voorspelt de onder- en bovenwaarden waarvan 90% zeker is dat de werkelijke waarde daarbinnen zal vallen.

SELECT

*

FROM

ML.FORECAST( MODEL `project.models.tseries`,

STRUCT(7 AS horizon,

0.90 AS confidence_level) )

Zo’n forecast kan er dan als volgt uitzien.

ARIMA forecast

Toelichting Forecast grafiek

De gele en grijze lijn zijn respectievelijk de onderste en bovenste confidence level. De rode lijn is de forecast. De blauwe lijn is het reële aantal conversies. We hebben een forecast gedaan over een periode in het verleden zodat we konden controleren hoe goed de voorspelling was. In dit geval blijft het daadwerkelijke aantal conversies in alle gevallen binnen de onderste en bovenste confidence level lijnen.

Anomaly detection

Je zou zo’n forecast regelmatig updaten om zo’n accuraat mogelijke voorspelling te hebben. Vervolgens zou je hetzelfde model kunnen gebruiken voor een “anomaly detection”. Hierbij doet het model een voorspelling of de daadwerkelijk behaalde waardes dusdanig afwijken van de voorspelling dat “er iets aan de hand is”.

SELECT * FROM

ML.DETECT_ANOMALIES(

MODEL `project.models.timeserie`,

STRUCT(0.9 AS anomaly_prob_threshold),

TABLE `project.aggregates.conversions`

)

De tabel die terugkomt bevat een kolom “is_anomaly”. Regels die de waarde “true” bevatten wijken dusdanig af dat ze aandacht behoeven.

Veel meer Machine Learning Algoritmes

Bovenstaande stappen geven een beeld wat nodig is om je eerste stappen te zetten met gebruik van ML algoritmes in combinatie met je GA4 data. Er zijn veel meer algoritmes beschikbaar in BigQuery die we niet hebben behandeld. (link: https://cloud.google.com/bigquery-ml/docs/introduction ) In een volgende artikelen zullen we voorbeelden van de andere algoritmes behandelen.

Upgraden naar Google Analytics 4? De voor- en nadelen

Een half jaar nadat de nieuwe versie van Google Analytics uit bèta is, valt het op dat nog betrekkelijk weinig bedrijven verder zijn dan...

Lees hier verder