Google Meridian — Een krachtige toevoeging aan je attributie en budget optimalisatie strategie

Arjen Hettinga— 
Turntwo

Ruim een week geleden voegde Google met Meridian een nieuw model toe aan de collectie van open-source Media Mix Modellen waar ook Facebook’s Robyn, PyMC-Marketing en LightweightMMM (de voorganger van Meridian) toe behoren. We hebben Meridian nu een goede week kunnen testen. Hierbij onze eerste bevindingen.

Optimale media inzet en budget optimalisatie met Bayesiaanse statistiek 

Meridian maakt gebruikt van Bayesiaanse statistiek. Dit wordt veel gebruikt in de wetenschap, marketing en kunstmatige intelligentie. Het helpt om betere voorspellingen te doen door steeds nieuwe informatie mee te nemen en bestaande aannames te verbeteren. In het geval van van Meridian om optimale media inzet te bepalen, budgetten te optimaliseren en maximale incrementele omzet/marge te genereren.

Hoe werkt dat in het kort?

Stel je voor, je hebt een grote pot met knikkers, maar je weet niet precies hoeveel rode en blauwe knikkers er in de pot zitten. Je wilt een slimme manier bedenken om daarachter te komen zonder alle knikkers te tellen. Wat doe je dan?

Stap 1: Gebruik je eerdere kennis als startpunt

Je zou natuurlijk kunnen gokken en op basis van een snelle blik op de pot kunnen inschatten dat er 50 rode en 50 blauwe knikkers in de pot zitten. 

Maar het is nog beter om te beginnen met een aanname: 

"De meeste potten die ik eerder heb bekeken hadden 70 rode en 30 blauwe knikkers. Dus waarschijnlijk zit het hier ook ongeveer zo." - Dit is je "a-priori" kennis—oftewel je eerste inschatting gebaseerd op eerdere data.

Meridian leent zich hiervoor door het gebruik van historische data vanuit marketing kanalen:

"Uit eerdere analyses weten we dat Google Ads advertenties gemiddeld 40% van de omzet verklaren en Email marketing 30%.". - Deze a-priori kennis neem je mee als input voor het model.

Een andere a-priori is bijvoorbeeld de Hill-functie, waarbij je jouw (eerdere) kennis over de verzadiging van advertentiecampagnes meeneemt in je model. Bij het opstarten van een nieuw model gebruikt Meridian deze historische patronen als een startpunt. Dus ook als je nog weinig eigen data hebt, begint Meridian al met een redelijke schatting van hoe snel jouw advertentiebudget voor de specifieke kanalen verzadigd raakt.

Stap 2: Voeg historische experimenten toe

Als het om de beeldspraak van de knikkers gaat, pak je een handje knikkers uit de nieuwe pot en ziet dat 7 van de 10 rood zijn. Dit is nieuwe informatie die je helpt om je schatting aan te passen. Herhaal je dit een aantal keer krijg je een steeds beter beeld.

Veel bedrijven doen experimenten, zoals Geo Lift-tests of Conversion Lift-studies. Dit betekent dat ze tijdelijk meer, minder of geen geld uitgeven aan een bepaalde mediainzet voor een bepaalde geo/regio of doelgroep en kijken hoeveel extra of minder omzet/marge dat oplevert.

Als bijvoorbeeld uit deze eerdere experimenten is gebleken dat Meta Ads bij dit bedrijf snel verzadigt, kan Meridian dit meenemen in de eerste schatting. Dit voorkomt dat het model onrealistische effecten toekent aan extra budget.

Stap 3: Voeg context toe

Door je te verdiepen in de knikkerpotten-markt kom je erachter dat de grondstoffen voor rode knikkers schaarser zijn dan voor blauwe knikkers en dat fabrikanten proberen het gebruik van rode knikkers te minimaliseren (belangrijke informatie!)

Met Meridian kun je ook context vanuit de markt toevoegen. Je kunt bijvoorbeeld (indien beschikbaar) de omzet van jouw totale markt of jouw belangrijkste concurrenten toevoegen. Ook kun je als indicator bijvoorbeeld zoekvolume trends (als marktvraag indicator) toevoegen aan je model. Voor deze inputs maakt het niet uit of je de trend invoert of de daadwerkelijke cijfers.

Ook kun je je zoekvolume op je eigen merknaam mee modelleren. Als Meridian ziet dat zoekvolume al stijgt zonder extra advertenties, kan het model inschatten dat het kanaal mogelijk sneller verzadigd raakt en vice versa.

Ook kun je Meridian voeden met promotie en campagne informatie. Stelde je een kortingscode beschikbaar, was er uitverkoop? Dit heeft direct invloed op de conversie. Door deze informatie aan Meridian te voeden kan het meegenomen worden in het model.

Stap 4: Herhaal en blijf leren

Draai het model, bekijk de uitkomsten van het model en vergelijk dit met de inhoud van historische knikkerpotten waar je informatie over hebt. Komt dit niet overeen, tweak het model en draai het steeds opnieuw totdat er een optimale fit is.

Dit is precies wat Meridian doet, terwijl het model runt test het model of de voorspelde overeenkomst overeenkomen met de gehele input vanuit mediakanalen en omzet, totdat er een optimale fit is. Je hebt dan een betrouwbaar basismodel waarmee je de inzet van jouw media opnieuw kunt tweaken. 

De uitkomsten daarvan kun je gebruiken in media inzet en budget beslissingen, nieuwe tests bedenken en uitvoeren en die vervolgens weer meenemen in het model. Zo wordt het model steeds slimmer en wordt het budget steeds effectiever ingezet.

Geo Modellering

Een van de belangrijkste nieuwe features van Meridian is het modelleren aan de hand van geo/regionale data. Door data uit verschillende regio’s te benutten heeft het model veel meer mogelijkheden om de inschattingen tijdens het modelleren te valideren en te verbeteren. 

Ook kunnen eerder genoemde Geo Lift-tests op deze manier in detail meegenomen worden in het model. Door per geo (bijvoorbeeld provincie) de impressies/kosten per campagne en de totale omzet te modelleren ziet het model in detail wat de verschillen zijn van de regio’s waarin en wanneer het kanaal aan of uit stond. 

Meridian in de praktijk

1. Opzetten van de infrastructuur

Wij hebben Meridian nu een week in gebruik. Meridian draait op Python en kan draaien in iedere infrastructuur die Python ondersteunt zoals een Google Colab Enterprise notebook in Google Cloud. 

Net als bij veel Machine Learning modellen is ook Meridian vrij zwaar. Om het modelleren niet te tijdsintensief te maken is het goed om een machine te runnen die snel genoeg is en een goede GPU aan boord heeft. Wij konden de modellen voor klanten met een brede media inzet en veel historie goed draaien op een machine met een Nvidia Tesla T4 GPU aan boord. Allebei de modellen deden er iets meer dan tien minuten per model over.

2. Verzamelen en prepareren van de data

Betrouwbare data is essentieel om waardevolle output uit de modellen te halen, het model is zo goed als de data waarmee je het voedt.

Om tot een goede input te komen combineer je verschillende data zoals bijvoorbeeld:

  • Sales, omzet en margedata uit de backend

  • Impressies, kosten en kliks uit online kanalen. We adviseren om de belangrijkste campagneinsteken (bv. Awareness, Prospecting en Sales bij een kanaal als Facebook Ads) op te splitsen en zo apart te modelleren.

  • Bereik en frequentie offline kanalen

  • Data over promoties zoals kortingscodes en uitverkoop.

  • Markt/concurrentie omzet data. Dit kan ook zoekvolume op de belangrijkste zoekwoorden zijn als indicatie voor marktvraag.

Belangrijk is dat de data per geo wordt ingedeeld en uniform wordt gemaakt. Denk hierbij ook aan het gladstrijken van geo definities van verschillende bronnen, maar ook het uitsluiten van bijvoorbeeld vakantieregio's of samenvoegen van kleinere regio’s. 

Het is natuurlijk mogelijk om voor iedere analyse de data opnieuw te verzamelen en voor te bereiden. Dit kost echter veel tijd en verhoogt de kans op fouten. Een efficiëntere oplossing is om in je Marketing Data Hub of Data Warehouse – waar deze data al beschikbaar is – een geautomatiseerde datatransformatie te bouwen die Meridian structureel voedt. Dit bespaart tijd en minimaliseert fouten. Meer hierover lees je in ons eerdere artikel: Hoe bouw je een Marketing Data Hub – De Modern Data Stack voor Marketing.

3. Verzamelen uitkomsten Geo Lift-tests of Conversion Lift-studies

Meridian geeft je de mogelijkheid om per kanaal een eigen ROI "apriori" aan het model mee te geven. De best mogelijke input zijn Geo Lift-tests of Conversion Lift-studies waarmee de ROI op basis van incrementele omzet (of marge) eerder is aangetoond.

Bij de opdrachtgevers waarvoor wij Meridian getest hebben, hebben we deze tests bij de online kanalen wel uitgevoerd, maar hadden we deze data niet bij alle offline kanalen beschikbaar. Dit betekent dat de output voor die kanalen minder betrouwbaar is en daarmee de analyse van de totale mix. Dit creëert bewustwording dat dit soorts tests bij een volgende campagne wel moeten worden ingebouwd.

Belangrijk is dat je de ROI voor kanalen die op basis van Reach & Frequency werken, apart inschat en anders invoert dan advertenties met een meer direct response karakter. Een TV-reclame werkt bijvoorbeeld niet zoals een Google Ads advertentie, omdat TV-reclames meerdere keren worden uitgezonden. Je moet de advertentie een paar keer zien voordat je een ijsje koopt, Meridian heeft daar aparte ‘roi_rf’ en ‘beta_rf’ parameters voor.

4. Het toevoegen van alle andere priors

Zoals gezegd kun je het model voeden met nog een aantal andere a-prioris (priors genoemd). Indien je die niet instelt probeert Meridian ze zo goed als mogelijk zelf te berekenen. Enkele voorbeelden zijn: 

  • hill_before_adstock: kijken we eerst naar Hill (verzadiging) en daarna pas naar Adstock (doorwerkend effect advertenties) of andersom?

  • unique_sigma_for_each_geo: mogen regio’s worden samengevoegd?

  • baseline_geo: is er een regio welke als baseline (stabiele basis) meegenomen moet worden?

  • max_lag: hoeveel tijdseenheden kan een advertentie nog effect hebben? Dit is afhankelijk van het type campagne, wil je iets verkopen, een merk bouwen of iets daartussenin? Tijdseenheden zijn afhankelijk of je het model voedt met data per week of per dag. Let hier dus op!

Wanneer je een model traint, wil je niet dat het te goed leert op de bestaande data, want dan kan het slechter presteren op nieuwe data. Dit wordt ‘overfitting’ genoemd. Een mooie feature is dat het eenvoudig is om training data (waarop het model getraind wordt) en testdata (waarop het model getoetst wordt door de parameters ‘holdout_id’ en ‘test_pct’ in te stellen.

5: Het runnen van de analyse

Nadat je de data hebt verzameld, hebt geprepareerd en alle priors hebt ingesteld is het moment gekomen om het model te runnen. Het eerste model wat je runt is de zogeheten analyser

Nadat je deze hebt gerund krijg je een rapport te zien (zie onderstaand een selectie uit dit rapport) met een aantal inzichten. Indien je het model goed hebt geconfigureerd zou je hierdoor niet verrast moeten worden en krijg je een goede representatie van de input waarmee je het model hebt gevoed. Een van de keyfeatures is dat de incrementele marge, revenue of conversies (afhankelijk van je input) worden berekend.

Afbeelding: De optimizer geeft een goede indicatie van incrementele revenue en roi per kanaal

6: Het runnen van de optimizer

De volgende stap is het runnen van de optimizer. 

Nadat je deze hebt gerund krijg je wederom een rapport te zien. Deze bevat optimalisatiescenario’s en stelt een optimale budgetverdeling voor met als doel de  incrementele marge, revenue of conversies te maximaliseren. In dit geval adviseert het model (gedraaid op een dummy dataset) om minder geld op Google uit te geven en de vrijgekomen budgetten op Meta Ads en Outdoor te spenderen. Op deze manier zou de adverteerder - met een gelijk budget - een stijging van 343k aan incrementele revenue kunnen realiseren.

Afbeelding: De optimizer bevat optimalisatie scenario’s en stelt een optimale budgetverdeling voor met als doel de incrementele marge, revenue of conversies te maximaliseren.

Meridian als toevoeging aan je attributie en budget optimalisatie strategie

De inzichten die Meridian levert zijn - indien er voldoende data is, de data betrouwbaar is en de priors goed zijn gedefinieerd - een zeer waardevolle toevoeging aan je attributie en budget optimalisatie strategie. Het vertelt alleen niet het hele verhaal.

Het model zelf heeft geen andere data/context heeft dan jij hebt ingevoerd en kan dus nooit holistisch zijn. In bovenstaand voorbeeld adviseert het model meer budget uit te geven bij Meta Ads maar mist het de dynamiek van het kanaal. Het weet bijvoorbeeld niet hoe de campagnes zijn gericht per laag (bv. Touch, Tell, Sell), de ontwikkelingen in concurrentiedruk en of het duurder wordt om meer bereik te realiseren (zoals bij een veilingmodel dat veel digitale kanalen gebruiken meestal het geval is).

Ook mist het model diepere date over gemeten gedrag en de overlap tussen kanalen op gebruikersniveau. Dit kun je met Multi-Touch Attributie (MTA) wel in kaart brengen en door deze data te onderzoeken en bijvoorbeeld te analyseren ontstaat ook vanuit die hoek een goed beeld van de overlap en synergie van deze kanalen.

In een optimale attributie en budget optimalisatie strategie verdient een tool als Meridian dus absoluut een plek bij het beoordelen en optimaliseren van atributie media inzet. Deze aanpak noemen we Triangulation en heeft Meredian bij deze zeker een plek verdient als Media Mix Modelling tool!

Afbeelding: Triangulation geeft het meeste complete beeld voor een gefundeerde budget optimalisatie strategie

Blijf up-to-date!

Interessant artikel? Schrijf je in en ontvang een email bij nieuwe artikelen of updates. Geen spam en uitschrijven kan altijd!