1. Wat is GeoX?
Meridian GeoX is Google's open-source library voor geo experimenten in Python. Het idee achter een geo experiment is simpel. Je past je marketinguitgaven aan in een deel van het land: je zet ze uit, je houdt een deel in, of je zet juist extra in. De rest van het land laat je zoals het was. Daarna vergelijk je de omzet in beide groepen.
Het lastige zit in de vraag: wat zou er in de testregio's gebeurd zijn als je niets had veranderd? Dat weet je nooit zeker. GeoX schat dat met statistische modellen (Time-Based Regression, Synthetic Control en Synthetic Difference-in-Differences). Het verschil tussen die schatting en wat je echt ziet, is je incrementele effect. Ofwel: de omzet die je zonder die marketing niet had gehad.
Het resultaat is een lift-getal dat je in een budgetmeeting kunt verdedigen. Of dat je kunt gebruiken om je Media Mix Model (MMM) beter te maken. Daarover later meer.
Marc (Turntwo): We hadden er eerlijk gezegd iets meer van verwacht. GeoX leest als GeoLift in Python: zelfde stappen, snellere engine. Veel bekende uitdagingen worden niet getackeld in GeoX.
2. Hoe werkt een geo experiment?
Stel, je bent een Nederlandse webshop met €40 miljoen omzet per jaar. Je geeft €180.000 per maand uit aan Meta en YouTube. De marketingmanager wil weten wat dat echt oplevert. De platforms zelf zeggen: veel. Maar dat zeggen ze altijd.
Een geo experiment gaat zo:
- Verdeel het land in regio's. In Nederland is dat meestal op stadsniveau: bijvoorbeeld 30 tot 40 steden of stedelijke gebieden, afgebakend op postcode waar mogelijk. Een deel wordt testgroep, de rest controlegroep.
- Kijk terug. In de weken vóór de test moeten beide groepen zich vergelijkbaar gedragen. Als de omzet in Utrecht en Eindhoven historisch niet samen op en neer beweegt, kun je Eindhoven niet als controle voor Utrecht gebruiken. We berekenen op voorhand altijd de beste test- en controlegroepen.
- Start het experiment. Zet bijvoorbeeld in de testregio's je Meta- en YouTube-spend vier weken uit. Of houd bijvoorbeeld 30% in.
- Schat wat er anders gebeurd zou zijn. Op basis van de controleregio's voorspel je de omzet in de testregio's zonder ingreep.
- Trek het verschil. Verwacht: €1.200.000 omzet in de testregio's. Gemeten: €1.080.000. Dan komt €120.000 omzet uit de kanalen die je hebt uitgezet. Daar kun je een rendement op berekenen.
Klinkt overzichtelijk. In de praktijk gaat het zelden mis bij stap 4 of 5, maar juist wel bij stap 1 en 2. Daar heeft GeoX gelukkig ook aan gedacht.

3. Wat GeoX goed doet: de test opzetten
GeoX legt veel nadruk op het ontwerp van de test, nog voordat je iets uitzet. De library maakt meerdere mogelijke verdelingen van regio's in test en controle, en beoordeelt die op drie punten:
- Hoe goed voorspelt de controlegroep de testgroep vóór de test? Slechte voorspelling betekent een onbetrouwbaar resultaat.
- Hoe klein mag het effect zijn dat je nog kunt aantonen? Dit heet de Minimum Detectable Effect (MDE). Is die groter dan het effect dat je verwacht, dan kun je beter niet starten, of de opzet aanpassen.
- Hoeveel budget zet je op het spel? Hoeveel spend zet je uit of houd je in, en past dat bij wat de organisatie acceptabel vindt?
Dit is precies het deel dat in de praktijk vaak wordt overgeslagen. Teams starten een test omdat "Rotterdam en Den Haag toch wel op elkaar lijken", zonder dat in de data te checken. Of ze draaien vier weken en ontdekken achteraf dat het effect nooit boven de ruis uit had kunnen komen.
Marc (Turntwo): Een geo experiment win je niet in de analyse, maar in de opzet. Als de opzet niet klopt, laat het model daarna vooral ruis zien, of kan het niets concreets zeggen over het experiment.
GeoX kan ook meerdere tests tegelijk draaien met één gedeelde controlegroep. In ons voorbeeld: Meta uit in de ene set regio's, YouTube uit in een andere, en één controlegroep voor beide. Dat scheelt tijd en budget, maar vraagt wel meer van je data.
Zo'n ontwerpstap zat ook al in GeoLift en zit sinds kort ook in Python packages als diff-diff. Die laatste biedt ook meer statistische methoden, maar is een stuk complexer te noemen. GeoX kan een goede eerste stap zijn om te starten met incrementaliteitstesten.
4. De koppeling met Meridian MMM
Google presenteert GeoX als aanvulling op Meridian, hun Media Mix Model. Een MMM schat per kanaal het effect op omzet op basis van historische data. Maar dat is een schatting, en die kan flink afwijken als spend en omzet in het verleden toevallig samen bewogen.
Een geo experiment levert een gemeten ijkpunt. Dat kun je terug in het model stoppen, zodat de schatting voor dat kanaal klopt. Meridian kan ook aangeven voor welke kanalen zo'n test het meeste oplevert.
Handig, maar niet nieuw. Andere tools zoals Robyn en PyMC-Marketing doen hetzelfde. En ook diff-diff heeft MMM optimalisatiefuncties. Het voordeel van GeoX plus Meridian is dat het één pakket is en out-of-the-box op elkaar aansluit.
5. De echte bottleneck: data per regio
Hier zit ons eigenlijke punt, en het gaat niet over GeoX of welke methode dan ook.
Elk geo experiment heeft twee dingen nodig. Per regio, per dag:
- Je omzet (of andere KPI) uit je eigen systemen. Niet uit Google Analytics, want dat mist een deel door consent. Niet uit het ad platform, want dat is de partij die je juist wilt controleren. Maar uit je ordersysteem, CRM of datawarehouse.
- Je marketingspend op datzelfde regionale niveau. Dit is vaak het lastigst. Platforms rapporteren spend per campagne. Campagnes draaien meestal landelijk. En als ze wel regionaal zijn ingericht, gebruiken Meta, Google en je eigen backend zelden dezelfde regio-indeling. Meta gaat vaak niet dieper dan bijvoorbeeld regio, wat in Nederland provincies zijn.
In ons webshopvoorbeeld betekent dat: orders via de postcode koppelen aan een stad, spend uit drie platforms op diezelfde steden krijgen, en beide dagelijks in één tabel zetten. Als je datawarehouse dat niet al kan, ben je daar lang mee bezig voordat je aan de test zelf begint.
Dit is waar de meeste teams stranden. Niet op de keuze tussen statistische methoden, maar op "we hebben marketing spend per stad niet betrouwbaar op dagniveau". Een nieuwe library verandert daar (helaas) niets aan.
Het goede nieuws: dit werk doe je maar één keer. Dezelfde tabel (omzet en spend, per regio, per dag) heb je ook nodig voor een (regionale) MMM, voor alerts op regionale afwijkingen en voor dashboards die verder kijken dan landelijke totalen. Wie die basis goed legt, kan daarna elke geo-library gebruiken die op dat moment het beste past.
6. Waar begin je?
Wil je met GeoX (of een ander pakket) aan de slag, dan is dit de volgorde die wij zouden aanhouden:
- Check eerst je data. Kun je vandaag omzet per regio per dag uit je backend halen, over de afgelopen 12 maanden? En spend per regio? Zo nee, dan is dat stap één. En waarschijnlijk de grootste.
- Kies een regio-indeling die in alle bronnen werkt. Liever 30 steden die in al je bronnen kloppen dan 100 postcodegebieden die alleen in je backend bestaan.
- Draai de ontwerpstap voordat je iets uitzet. Laat GeoX, GeoLift of diff-diff mogelijke verdelingen maken en kijk naar de MDE. Is het kleinste meetbare effect groter dan wat je verwacht? Pas dan de opzet aan of stel de test uit.
- Begin met één kanaal en één vraag. "Wat levert onze YouTube-spend extra op?" is een test. "Wat werkt in onze mediamix?" is een onderzoeksprogramma.
- Doe iets met het resultaat. Stop het in je MMM als je die hebt. En anders gewoon in je budgetgesprek.
Wij gaan de komende weken verder testen met GeoX, naast GeoLift en diff-diff. We verwachten geen wonderen, wel een prettiger ontwerpproces. Als het anders uitpakt, lees je dat hier.
Loop je vast op dat eerste punt, omzet- en spenddata per regio die niet bij elkaar komen? Daar zit bij de meeste klanten het meeste werk, en waarschijnlijk ook de snelste winst. Stuur gerust een bericht.





