Kort gezegd: In een nieuw land is betaalde advertising op dag één het enige kanaal dat werkt: nog geen SEO, geen merk, geen terugkerende kopers. Dus twee getallen bepalen of expansie rendeert: wat een klik kost op die markt, en hoe je productprijs staat tegenover de lokale concurrentie. Deze blueprint haalt beide rechtstreeks uit je productfeed: catalogus erin, gerangschikte landentabel eruit, gescoord op echte vraag, CPC's, concurrentieprijzen en een gesimuleerde ROAS per markt. Eén nachtrun op een echte webshop, elk getal getoond.
Dit voorjaar stelde een klant met een catalogus van een kwart miljoen artikelen me een simpele vraag: naar welk land breiden we hierna uit? Een paar jaar geleden had ik die analyse in maanden geoffreerd. Vraag, klikprijzen, concurrentieprijzen en unit economics over dertien landen betekenden vroeger zo’n 400 uur handwerk, het soort offerte dat klanten beleefd afslaan. Dit keer draaide het zoekwoordenonderzoek ‘s nachts terwijl ik sliep, en mijn eigen tijd voor het geheel kwam neer op een paar geconcentreerde uren.
De analyse is om één brute reden de moeite waard. Op dag één in een nieuw land heb je geen SEO-ranking, geen merkbekendheid, geen terugkerende klanten. Betaalde advertising is het enige kanaal dat kopers brengt. Dus één getal bepaalt stilletjes of de hele stap loont: wat een klik kost op die markt. Kies een land omdat het goed voelde in een vergadering, loop een dure veiling in, en je bloedt budget voordat je iets hebt verkocht.
En de klik is maar de helft. Zelfs met goedkoop verkeer moet je de verkoop nog sluiten, dus de prijs van je product tegenover de lokale concurrentie telt net zo zwaar, samen met het conversiepercentage en de gemiddelde orderwaarde op die markt. Westerse markten draaien doorgaans op hogere prijzen en hogere klikkosten. Oostelijke op lagere, op beide vlakken. Welke combinatie echt winst oplevert verschilt per land, en in twintig jaar PPC heb ik nog nooit meegemaakt dat het van de kaart af te lezen was.
Het goede nieuws is dat elk van die getallen al in data zit die je in een dag kunt ophalen. Dat is wat deze blueprint doet. Hij begint bij je productcatalogus, hetzelfde Google Merchant Center-bestand dat je al hebt, en eindigt met een gerangschikte landentabel: waar je hierna uitbreidt en waarom, onderbouwd met echte zoekvraag, echte klikprijzen, echte concurrentieprijzen en een gesimuleerd rendement op advertentie-uitgaven per markt. Hieronder staat elke stap, met de echte getallen uit één nachtrun op een echte webshop.
- Op een nieuwe markt is betaalde advertising op dag één je enige kanaal, dus de prijs van een klik op die markt is het getal dat bepaalt of expansie loont.
- De andere helft is je productprijs vs lokale concurrenten: goedkope klikken naar een duur schap kunnen alsnog verliezen. Je moet beide checken.
- Stop je Merchant Center-catalogus erin en je krijgt een gerangschikte landentabel eruit, gescoord op echte vraag, CPC's, concurrentieprijzen en gesimuleerde ROAS.
- De voor de hand liggende keuzes verliezen: in deze run eindigde Duitsland 4e, Oostenrijk 5e, omdat hun klikken tot 5× die van de goedkoopste markt kosten.
Waarom doet niet iedereen dit al? Omdat de eerlijke versie vroeger absurd duur was. Vraag, prijzen, concurrentie en unit economics over tien of vijftien markten betekenden honderden uren handwerk: zoekwoordvolumes land voor land ophalen, seeds met de hand vertalen en vooral de rauwe zoekopdrachten regel voor regel lezen om echte vraag van rommel te scheiden. Tot een paar jaar geleden kon geen enkele AI dat lezen voor je doen, dus moest een mens het. Honderden uren, en geen klant wilde dat betalen. Dus gebeurde het meestal niet, en teams kozen hun volgende land omdat iemand de taal sprak of een distributeur belde. Het idee was altijd goed. Wat is ingestort zijn de kosten van de uitvoering. Die honderden handmatige uren zijn nu één nachtrun plus een middag.
De zevenstaps-blueprint in één oogopslag
Hier is de hele vorm voordat we de diepte in gaan. Voor elke stap: wat je doet, waar je naar kijkt, en waarom. Elke stap beantwoordt één concrete vraag over een markt en brengt je één beslissing dichter bij de gerangschikte tabel.
1. Kies de shortlist (logistiek eerst)
Doen: noteer de landen waar je echt kunt leveren. Waarom: marktomvang is een waardeloos voordeurfilter, want de grootste markt is meestal de duurste om binnen te komen. Logistiek is de echte beperking, dus die gaat eerst. Je krijgt: een lijst van 10–15 kandidaatlanden, en niets verspild aan markten die je niet kunt bedienen.
2. Maak van de feed seeds
Doen: neem de product_type-categoriepaden uit je Merchant Center-feed en splits ze in losse, doorzoekbare categorieën: “koelkasten en vriezers” wordt “koelkast” en “vriezer”, generieke niveaus als “home” vallen weg. Waarom: je eigen catalogus benoemt al elke categorie die je verkoopt. Het is de beste, goedkoopste seedbron die er is, veel beter dan zoekwoorden brainstormen. Je krijgt: een paar honderd betekenisvolle seeds in plaats van een kwart miljoen rauwe feedregels.
3. Vertaal elke seed naar de moedertaal
Doen: laat een LLM de volledige seedlijst vertalen naar de eigen taal van elk shortlist-land, vóór enig onderzoek. Waarom: niemand in Warschau zoekt in het Engels. Bevraag de proxytaal en elk volume en elke CPC verderop is stilletjes verkeerd. Je krijgt: de exacte lokale woorden om elke markt mee te bevragen.
4. Haal zoekwoordideeën per land op
Doen: vraag Google Ads om zoekwoordideeën voor elke vertaalde seed in elk land. Technisch is dat het API-endpoint GenerateKeywordIdeas, dezelfde motor achter de Keyword Planner, alleen gescript. Waarom: dit is het rauwe vraagsignaal: volume, CPC en seizoenspatroon per zoekwoord. Je krijgt: het volledige zoekwoorduniversum per markt, met elk zoekwoord nog gekoppeld aan zijn broncategorie.
5. Schoon de zoekwoorden op, niet de seeds
Doen: filter de ruis eruit op zoekwoordniveau, niet op seedniveau. Waarom: een brede seed als “voetbal” trekt miljoenen rommelzoekopdrachten aan, maar dood de seed en je doodt ook “voetbalschoenen”, een echte verkoop. Je krijgt: een relevante kern, plus de koopintentie-zoekwoorden getagd in plaats van weggegooid.
6. Scrape de concurrentie en hun prijzen
Doen: scrape voor je best verkopende producten de live resultatenpagina per markt in één API-call. Waarom: volume vertelt je de vraag. Het vertelt je niet of je op prijs wordt verpletterd. De resultatenpagina toont wie er adverteert, tegen welke prijs, hoe druk de veiling is. Je krijgt: advertentieteksten van concurrenten, live shoppingprijzen en de organische spelers, voor een paar dollar per markt.
7. Simuleer de economie, scoor daarna
Doen: simuleer ROAS op basis van echte CPC, een verdedigbaar conversiepercentage en de AOV per markt, en weeg daarna vraag, prijzen, logistiek en frictie samen tot één score. Waarom: dit is de vraag waarvoor je eigenlijk kwam. Je krijgt: de gerangschikte tabel. Waar je uitbreidt, op volgorde.
Nu dezelfde zeven stappen, één voor één, elk met het echte resultaat uit deze run.
Stap 1 · Shortlist
Stap 1: Shortlist de landen waar je echt naartoe kunt verzenden
Begin niet bij de prijs, bij welke markten het grootst, rijkst, spannendst zijn. Dat is de verkeerde voordeur. De grootste markt is meestal die met de meest brute veiling, en een markt waar je niet kunt leveren is exact nul waard, hoe goed de cijfers er ook uitzien. Het echte eerste filter is dus logistiek. Ga uit van waar je vervoerders echt komen, en noteer alleen de landen waar je een doos op de stoep kunt zetten.
Voor deze shop leverde dat 13 kandidaatlanden op, verspreid over Centraal- en Oost-Europa en de Balkan. De thuismarkt (Tsjechië) staat ook in de lijst, maar alleen als ijkbasis, niet als doel. Let op de laatste kolom. Twee landen vallen hier al af, voordat er één zoekwoord is opgehaald.
| Land | In EU? | Valuta | E-com groei | Notitie |
|---|---|---|---|---|
| Duitsland | Ja | EUR | +5 % | Ankermarkt |
| Oostenrijk | Ja | EUR | +6 % | — |
| Polen | Ja | PLN | +12 % | Grootste CEE-markt |
| Slowakije | Ja | EUR | +8,5 % | Overlap thuistaal |
| Tsjechië (thuis) | Ja | CZK | — | IJkbasis |
| Hongarije | Ja | HUF | +15 % | — |
| Roemenië | Ja | RON | +18 % | — |
| Bulgarije | Ja | BGN | +16 % | — |
| Kroatië | Ja | EUR | +14 % | Lokale betalingen vereist |
| Slovenië | Ja | EUR | +10 % | — |
| Servië | Nee | RSD | +20 % | — |
| Albanië | Nee | ALL | +28 % | — |
| Bosnië & Herz. | Nee | BAM | +22 % | Afgevallen: Keyword Planner kent geen Bosnisch |
| Noord-Macedonië | Nee | MKD | +25 % | Afgevallen: Keyword Planner kent geen Macedonisch |
Voor de duidelijkheid, Google Ads draait in beide landen prima. Wat ontbreekt is het onderzoek. De Keyword Planner ondersteunt geen Bosnisch of Macedonisch, dus hij geeft voor die talen geen zoekwoordsuggesties, geen volumes en geen CPC’s terug. Een markt die de tool niet kan lezen, kun je niet beprijzen. Dus vallen beide uit de analyse, hoe aantrekkelijk hun groei er ook uitziet (+22 % en +25 %). Dertien gepland, elf die de tool echt kan onderzoeken.
Dat is de textuur van een echte run: de data haalt twee van je best ogende opties van tafel, om een reden die je vooraf nooit had geraden.
Stap 2 · Seeds
Stap 2: Maak van je productfeed zoekwoord-seeds
Je hoeft geen zoekwoorden te brainstormen. De seeds komen rechtstreeks uit het product_type-attribuut van je Google Merchant Center-feed. Dat attribuut draagt de eigen categorieboom van de shop, dezelfde structuur waar klanten zich op de site doorheen klikken. Het benoemt dus al elke categorie die je verkoopt, met een frequentietelling erbij, en het staat op je harde schijf. Het ruwe materiaal was hier ~252.000 catalogusitems, met product_type-paden aan elkaar geplakt met ampersands en slashes, zoals echte feeds altijd doen (“Koelkasten en vriezers”, “Speelgoed & games”). De parser splitst die in losse categorieën, gooit generieke topniveaus weg (“home”, “elektronica”, “tuin”) en houdt alleen paden boven een frequentiedrempel. Een kwart miljoen items klapt in tot een strakke, betekenisvolle seedlijst:
Feed → seeds: een kwart miljoen regels worden 400 vragen
- Rauwe catalogusitems geparseerd ~252.000
- Verschillende merken gecatalogiseerd (buiten seeds gehouden) 40.000+
- Frequentiedrempel: kleinste behouden seed tagt nog 234 items
- Betekenisvolle categorie-seeds na normalisatie 400
En de seeds zijn precies waar je een markt op zou bevragen: categorieën, nooit productnamen. De zwaarste op catalogusgewicht:
| Seed (vertaald) | Catalogusitems | Niveau |
|---|---|---|
| Speelgoed | 21.636 | L2 |
| Hoesjes | 14.411 | L3 |
| Dameskleding | 14.341 | L2 |
| Telefoons | 13.544 | L2 |
| Laptops | 12.277 | L2 |
| Dierbenodigdheden | 11.940 | L2 |
| Keukenuitrusting | 11.379 | L2 |
| Auto & moto (accessoires) | 11.683 | L1 |
Om het concreet te maken, stel dat de feed van de shop een pad heeft als Electronics > Mobile > Phone cases. De parser gooit “Electronics” weg als te generiek, houdt “telefoonhoesjes” als seed en telt hoeveel producten eronder vallen. Hier tagt “hoesjes” 14.411 items, dus het is duidelijk een echte categorie die het onderzoeken waard is, geen eenmalig geval. Productnamen hebben meestal nul zoekvolume, dus die worden genegeerd; de 40.000-plus merken worden achtergehouden als apart signaal. De categorieën dragen het onderzoek, en jij hebt nul minuten besteed aan het verzinnen ervan.
Stap 3 · Vertalen
Stap 3: Vertaal elke seed naar de lokale taal
Dit is de stap die mensen overslaan, en die overslaan verpest stilletjes alles verderop. Als je Polen onderzoekt door “toys” in de zoekwoordtool te typen, geeft Google je het volume en de CPC voor het Engelse woord “toys”, zoals gezocht in Polen, een piepklein, raar segmentje van expats en toeristen. Het getal ziet er echt uit. Het ís echt. Het is ook waardeloos, en elke beslissing erna staat op een markt van niemand.
Dus vóór de eerste API-call vertaalt een LLM de volledige seedlijst naar de moedertaal van elk land. De 400 kern-seeds werden, uitgebreid met synoniemen en spellingvarianten, 488 entries × 12 talen = 5.856 machinevertalingen, klaar voor de start. Hier is één seed, “speelgoed”, zoals die daadwerkelijk naar elke markt ging:
| Markt | Wat 'speelgoed' wordt vóór de API-call |
|---|---|
| Duitsland (de) | Spielzeug |
| Polen (pl) | zabawki |
| Tsjechië / Slowakije (cs/sk) | hračky |
| Hongarije (hu) | játékok |
| Roemenië (ro) | jucării |
| Kroatië / Servië (hr/sr) | igračke / играчке |
| Bulgarije (bg) | играчки |
| Slovenië (sl) | igrače |
| Albanië (sq) | lodra |
Bevraag zabawki in plaats van “toys” en je krijgt de echte Poolse markt. De cijfers schuiven een orde van grootte op, geen afrondingsfout. De enige uitzondering is merknamen; die worden nooit vertaald. Sla deze stap over en stappen 4 tot en met 7 staan op zand. En niemand vertelt het je, want de spreadsheet ziet er volkomen plausibel uit, helemaal tot aan de verkeerde beslissing.
Stap 4 · Vraag ophalen
Stap 4: Haal de zoekvraag voor elke markt op
Nu het zware werk, en het eerste wat je downloadt. Je jaagt elke vertaalde seed, in elk land, door het Google Ads-endpoint GenerateKeywordIdeas, met de link van elk zoekwoord terug naar zijn bron-product_type bewaard. Ik schrijf al twaalf jaar code tegen de Google Ads API, en dit is nog steeds het endpoint waar ik het meest op leun. Het levert dezelfde vraagdata als de Keyword Planner laat zien, alleen op een schaal die geen mens ooit zou doorklikken. Geen toegang tot de Google Ads API? Gebruik dan de DataForSEO API. Die serveert dezelfde zoekwoorddata, je betaalt per request, en de prijzen zijn laag genoeg dat zelfs een run van deze omvang goedkoop blijft. Over elf onderzoekbare landen leverde de run 1.402.486 zoekwoordideeën op. En de verdeling per markt is op zich al een bevinding, want rauwe vraag lijnt niet uit met de markten waar je op zou wedden:
| Markt | Rauwe zoekwoordideeën | Met zoekvolume |
|---|---|---|
| Polen | 410.343 | 408.852 |
| Duitsland | 348.914 | 347.868 |
| Oostenrijk | 323.294 | 311.438 |
| Roemenië | 128.304 | 126.385 |
| Bulgarije | 76.866 | 75.650 |
| Kroatië | 61.611 | 58.179 |
| Servië | 14.573 | 13.848 |
| Slowakije | 10.884 | 9.173 |
| Albanië | 9.704 | 4.339 |
| Hongarije | 9.281 | 8.584 |
| Slovenië | 8.712 | 6.542 |
Als vraag het hele verhaal was, zou deze tabel het antwoord zijn: Polen, Duitsland, Oostenrijk, gaan. Het is precies de valkuil. Duitsland en Oostenrijk staan hier bovenaan, en dat is precies waarom een vraag-alleen-analyse je de duurste veiling van de set in marcheert. De markten die echt winnen staan lager, en de klikprijs- en economiestappen gaan ze zo optillen.
De run wordt seed voor seed, land voor land bijgehouden: 4.220 seed-land-jobs geprobeerd, 3.619 leverden data, 601 gaven een fout. De meeste fouten waren API-quotalimieten, en quotafouten probeer je simpelweg later opnieuw tot de run compleet is. De rest waren de aborts wegens niet-ondersteunde taal uit stap 1, en die lost geen retry op. Bewaar het log hoe dan ook; je wilt bewijs welke cellen echt data achter zich hebben.
Stap 5 · Opschonen
Stap 5: Schoon de zoekwoorden op, niet de seeds
Een brede seed sleept ruis mee, en de voor de hand liggende zet is de rumoerige seed te doden. Doe het niet. “Voetbal” trekt in Duitsland miljoenen Bundesliga-zoekopdrachten aan die niets met je shop te maken hebben. Dezelfde seed trekt ook “voetbalschoenen” aan, die je heel graag wilt verkopen. Dood de seed en je doodt zijn koopintentie-kinderen ermee. Dus je filtert elke keer op zoekwoordniveau, niet op seedniveau.
Hier is wat de opschoning in deze run daadwerkelijk verwijderde, eerst categorieën buiten het segment, daarna pure ruis:
| Verwijderde groep | Zoekwoorden geschrapt | Waarom |
|---|---|---|
| Buiten segment: grote apparaten | 11.243 | Koelkasten, wasmachines (alleen kleingoed-shop) |
| Buiten segment: hele voertuigen | 8.127 | Motoren, auto's (geen onderdelen) |
| Buiten segment: grote meubels | 6.675 | Te zwaar voor de logistieke straal |
| Buiten segment: centrale verwarming | 6.354 | Bulkitems buiten de catalogus |
| Ruis: lokale automarktplaats | 3.837 | PL 'otomoto'-advertenties, geen categorievraag |
| Ruis: kalenderpagina's | 2.528 | Duits 'Kalender', verkeerde intentie |
| Ruis: onlinegames | 2.378 | Entertainment, geen retail |
| Ruis: tweedehands-autozoekopdrachten | 2.100+ | 'gebrauchtwagen', 'auto kaufen' |
| Ruis: voetbal / sport | 1.800+ | Bundesliga, binnengetrokken door de 'voetbal'-seed |
De regel in één voorbeeld. De seed “auto-moto” is geweldig voor deze shop, die autoaccessoires verkoopt. Maar in het Duits trekt hij ook “gebrauchtwagen” (tweedehands auto’s) en “auto kaufen” (een auto kopen) aan, waardeloos voor een kleingoed-webshop. Je verwijdert de seed niet. Je verwijdert die specifieke zoekwoorden en houdt “Handyhalter Auto” (telefoonhouder voor de auto). 2.100-plus rommelzoekwoorden weg, de goede onaangeroerd.
En opschonen is niet alleen aftrekken; het is ook het taggen van het signaal dat je wél wilt. Voor een catalogus in het koopjessegment zit de koopintentie in de dealwoorden, dus 49.770 zoekwoorden kregen het label koopjesintentie, over elf talen:
Deal-intentie: de 49.770 zoekwoorden om te behouden, niet te schrappen
- Duits 'gebraucht' (gebruikt) 22.128
- Pools 'używany' + varianten 6.290
- Duits 'günstig' (goedkoop) 2.606
- Roemeens 'ieftin' (goedkoop) 2.305
- Engels 'second hand' 1.783
- Totaal getagde koopjesintentie-zoekwoorden 49.770
Dit is de stap die een deliverable die een klant vertrouwt scheidt van een spreadsheet die ze stilletjes negeren. Mijn eerste ronde stond vol Bundesliga, kalenders voor 2026 en tweedehands-autoadvertenties. Ik had een tweede volledige review over tien talen nodig om tot een kern te komen die ik zou overhandigen.
Stap 6 · Concurrentie-scrape
Stap 6: Scrape de concurrentie en hun prijzen
Alles tot nu toe meet vraag. Niets ervan vertelt je of je een markt inloopt en op prijs wordt platgewalst door een gevestigde speler die er tien jaar zit. Daarvoor moet je naar het echte slagveld kijken. Dus voor de top 20–30 % best verkopende producten per categorie lokaliseer je de titel en scrape je de live resultatenpagina. Eén POST-request naar het SERP-endpoint van DataForSEO geeft de hele pagina terug als gestructureerde JSON, en het kost ongeveer $0,0035 per zoekopdracht; 3.000 topproducten in een markt checken kost dus zo’n $10,50. De exacte call, klaar om te plakken, staat in de box tegen het einde van dit artikel.
Eén respons, drie dingen, één prijs: het paid-blok (advertentieteksten van concurrenten, ruw materiaal voor je messaging), popular_products (shoppinglistings met live prijzen die je niet uit je eigen Merchant Center krijgt), en de organische resultaten (de echte spelers van de markt, inclusief degenen die niet adverteren). Je betaalt voor een prijscheck en loopt weg met een copybibliotheek van concurrenten en een marktkaart.
En omdat het geheel gescript is, stop je niet bij prijzen. Dezelfde pipeline loopt de net gevonden concurrenten af en haalt de rest van hun aanbod op: bezorgkosten en levertijden, drempels voor gratis verzending, betaalmethoden, rembours of niet. In deze regio beslist dat laatste over bestellingen. Als elke lokale shop rembours aanbiedt en jij niet, is de checkout waar je goedkope klik sterft. We draaien dit alles via de SEO-API’s van DataForSEO, dus het is één JSON-pipeline van begin tot eind, zonder zelfgebouwde scrapers om op te passen. En de kosten van het hele programma zijn de clou:
De hele concurrentieronde, 12 markten, geprijsd
- Organic Regular, task-modus $21,60
- Merchant Shopping (alleen prijzen) $36
- Organic Advanced, live (paid + shopping + PAA) $126
- DataForSEO minimale top-up (gaat maanden mee) $50
Een volledige concurrentie-SERP-ronde over twaalf landen kost $22–126 afhankelijk van de modus. Vergelijk dat met een Semrush-abonnement van ~$140+/maand vast, alleen voor de UI. Je brengt elke concurrent in elke doelmarkt in kaart voor minder dan één maand van de tool waar iedereen standaard op uitkomt.
Stap 7 · Scoren
Stap 7: Scoor elke markt en rangschik ze
Nu klapt alles samen tot één getal per land. Op basis van echte CPC, een verdedigbaar conversiepercentage en de AOV per markt simuleer je ROAS voor elke markt, en weeg je daarna vraag, prijzen, logistiek, groei en toetredingsfrictie samen tot één score. Eén gerangschikte tabel, het ding waarvoor je kwam:
Daar is het: Slowakije, Polen en Servië. Een kleine markt, een markt met betalingshoofdpijn, en een niet-EU-markt die de meesten nooit hadden geopperd. Duitsland, het land met de meeste vraag in de hele set (348k zoekwoordideeën), eindigt vierde, omlaag getrokken door een gesimuleerde ROAS van amper 1,0. Oostenrijk, de andere default, komt vijfde, onder 1,0, en dat betekent dat het geld verliest.
De twee markten die er het meest voor de hand liggend uitzien, zijn de twee die de rekensom er als eerste uitgooit.
Wat trekt ze omlaag? Eén bewuste, brute regel die de tabel eerlijk houdt. Zakt de gesimuleerde ROAS onder de haalbare drempel, dan wordt de score vermenigvuldigd met 0,4. Onthoud waarom. Op een verse markt is paid je enige kanaal. Je hebt nog geen SEO, geen merk, geen terugkerende klanten. Een markt waar betaalde acquisitie niet rendeert, kan niet je toegangspoort zijn, hoe groot de prijs ook is. De straf bestaat juist om te voorkomen dat de spreadsheet een onderbuikgevoel afstempelt.
IJk eerst op één account dat je zelf beheert, anders is niets hierboven betrouwbaar. De CPC’s in die ranking zijn plannerschattingen, en ze lopen hoog. Op het live thuisaccount van deze klant had ik de echte cijfers om tegen te checken: 22,6 miljoen zoekopdrachten over twaalf maanden, een echte betaalde CPC van 2,54 CZK, AOV 747 CZK, een gemeten conversiepercentage rond 3 %. De voorgestelde CPC van de Keyword Planner lag ruwweg 10× hoger dan wat het account echt betaalde, dus elke gesimuleerde CPC hier wordt door tien gedeeld voordat hij de ROAS-rekensom raakt. Vertrouw nooit een gesimuleerde ROAS die je niet hebt geijkt tegen één account dat je echt draait. Dit is de enige stap tussen “interessante analyse” en een getal waar ik budget op zou zetten.
Hoe de score is opgebouwd: negen gewogen factoren
De score is niet één metric met een kroon op. Het zijn negen componenten, elk gewogen naar hoeveel hij de beslissing echt verschuift. ROAS domineert, want een enorme markt met brute CPC’s verliest elke keer weer van een kleine markt met goedkope klikken. Dat is de hele les van de ranking hierboven:
| Factor | Gewicht | Wat het meet |
|---|---|---|
| Paid-haalbaarheid (ROAS) | 20 % | Gesimuleerde AOV × CR ÷ CPC |
| Prijsconcurrentie | 15 % | Jouw prijzen vs. lokale verkopers, per stuk |
| Logistiek | 15 % | Afstand en bezorgkosten vanaf thuismarkt |
| Zoekvraag | 13 % | Genormaliseerd maandelijks zoekvolume |
| Toetredingsgemak | 12 % | EU, gedeelde valuta, verwante taal, rembours |
| E-commercegroei | 10 % | Jaarlijkse groei van de markt |
| Marktomvang | 5 % | E-commerce-omzet, afgetopt |
| Organische kans | 5 % | Lage moeilijkheid met voldoende volume |
| Koopkracht | 5 % | Bbp per hoofd |
Twee harde straffen houden hem eerlijk. Onder-haalbare ROAS vermenigvuldigt de score met 0,4, zoals hierboven. En een land zonder enige CPC-data wordt teruggebracht tot een derde, want je wedt niet op een markt die je niet kunt beprijzen. Die tweede straf is precies waarom de twee landen die bij stap 1 afvielen de ranking nooit halen: geen taalondersteuning, geen zoekwoorddata, geen prijs om te modelleren, geen verdedigbare gok.
De grootste hefboom: de prijs van een klik per markt
Als je het model terugbrengt tot de ene factor die het het meest beweegt, is dit het. Hier is de mediane planner-CPC per markt uit de nachtrun, over 745.712 opgeschoonde, geprijsde zoekwoordideeën (Google Ads GenerateKeywordIdeas, 28–29 april 2026). Elk cijfer is in CZK, de eigen valuta van het account, zodat de markten zuiver vergelijken. De spreiding is de hele reden om niet standaard voor de voor de hand liggende markt te kiezen:
Lees eerst de kleuren, dan de getallen. De kaart loopt koel in het oosten en zuiden en warmt op naarmate je naar het westen gaat: Servië en de Balkan zitten in mint, Duitsland en Oostenrijk branden koraal, en een Oostenrijkse klik kost 5,1× een Servische, een Duitse klik 4,5×. Dat is vóór winkelmandgrootte, vóór conversiepercentage, vóór alles wat je kunt sturen. De gestippelde rij is het anker. 2,54 CZK is wat het thuisaccount vandaag echt per klik betaalt in Tsjechië. Zelfs Polen, de grootste markt van de regio en één grens verderop, plant zijn mediane klik op bijna het dubbele daarvan. Geen enkele markt op de lijst belooft thuisprijzen, en de vertrouwde Westerse markten zitten een volle factor vijf boven de vloer, en rekenen die vervolgens de rest van het campagneleven door. (Albanië is uit de kaart gelaten, omdat zijn mediaan met maar 31 geprijsde ideeën het vertrouwen niet waard is.)
Waarom bepaalt dit ene getal zoveel? Omdat in een nieuw land de klik de kosten van een klant ís; je hebt nog geen andere weg naar binnen. Houd al het andere gelijk en verander alleen de klik, en de klikprijs alleen al doet je rendement op advertentie-uitgaven met zo’n 5× schommelen. Zelfde product, zelfde conversiepercentage, zelfde winkelmand. Het enige dat beweegt is wat de markt rekent om gezien te worden:
| Markt | Klik (CZK) | Conv.-rate | Kosten per verkoop | ROAS, zelfde mand |
|---|---|---|---|---|
| Servië | 2,42 | 2 % | 121 CZK | 8,3× |
| Polen | 4,73 | 2 % | 237 CZK | 4,2× |
| Duitsland | 10,99 | 2 % | 550 CZK | 1,8× |
| Oostenrijk | 12,40 | 2 % | 620 CZK | 1,6× |
Bij een conversiepercentage van 2 % zijn er 50 klikken nodig voor één verkoop. Een Servische verkoop kost dus 121 CZK aan advertenties en een Oostenrijkse 620 CZK, voor exact hetzelfde product. Tegen dezelfde mand is dat een gezonde 8,3× ROAS in Servië en een verliesgevende 1,6× in Oostenrijk. Er veranderde niets behalve de klikprijs van het land. Dat is het hele argument in één tabel: de goedkoopst ogende vraag kan de duurste klant zijn.
De eerlijke kanttekening is dezelfde als in de callout. Dit zijn plannerschattingen, en planner-CPC’s lopen hoog. Het echte thuisaccount betaalde 2,54 CZK per klik over 22,6M zoekopdrachten, minder dan zelfs het goedkoopste plannercijfer hier. Lees de getallen dus als relatieve marktdruk, niet als de letterlijke prijs die je betaalt. De verhoudingen kloppen; de absolute cijfers dalen zodra je ijkt. En een duurdere Westerse klik kan alsnog renderen als zijn mand groter is, en precies daarom stop je niet bij de klik.
De andere helft: je productprijs vs de lokale markt
De klik krijgt de bezoeker naar je pagina. Of ze kopen hangt af van je prijs tegenover de lokale concurrentie, en dat prijsniveau schommelt tussen markten nog harder dan de klik. Dezelfde hometrainer die in Oostenrijk voor €349 in het schap staat, verkoopt voor €151 in Roemenië. Een huishoudventilator is €126 in Oostenrijk en €41 in Hongarije. De ranking tot nu toe beprijst de klik en is blind voor elke euro hiervan, want hij kijkt nooit naar wat de concurrentie echt rekent.
Dus ik draaide de laag die het model overslaat. Voor zestien categorieën die de shop echt voert, haalde ik de mediane concurrentieprijs op elke markt op en zette die naast de eigen mediaan van de shop. Medianen aan beide kanten, nooit de enkele goedkoopste listing, want één uitschieter zegt je niets. De bron is de popular_products-carrousel van Google Shopping, de echte listings die echte shoppers zien. De elf categorieën met breed genoeg dekking om over markten heen te vergelijken staan hieronder.
Eén opmerking voordat je hem leest. De eigen kolom van de shop heeft eerlijke framing nodig. Dit is een koopjesshop. Zijn catalogus is bewust opgebouwd uit de goedkope kant van elke categorie, dus zijn mediaan landt vaak op de helft van de gebruikelijke marktprijs van een categorie, soms lager. Hem vergelijken met het marktgemiddelde alsof de waren gelijkwaardig zijn, zou elke cel flatteren. Lees elke cel dus als speelruimte, oftewel hoe hoog het lokale schap boven de koopjesvloer van de shop zit. Die speelruimte is de celkleur: groen is ruim (markt op 3× de vloer of meer), goud is degelijk (1,6–3×), koraal is krap (onder 1,6×).
| Categorie | De shop € | DE | AT | PL | HU | SK | RO |
|---|---|---|---|---|---|---|---|
| Stofzuigers | €62 | €80 | €102 | €83 | €83 | €91 | €88 |
| Toetsenborden & muizen | €21 | €30 | €33 | €23 | €25 | €27 | €24 |
| Aquariumpompen | €12 | €16 | €18 | €23 | €26 | — | €14 |
| Haardrogers | €17 | €33 | €44 | €56 | €30 | — | €26 |
| Duikuitrusting | €18 | €44 | €59 | €23 | — | €27 | €24 |
| Tassen | €8 | €31 | €40 | €23 | €21 | €26 | €28 |
| Ventilatoren | €15 | €62 | €126 | €45 | €41 | — | — |
| Sneeuwkettingen | €24 | €119 | €147 | €59 | — | — | — |
| Ruitersport | €19 | €106 | €116 | €81 | — | €106 | — |
| Terraria | €12 | €110 | €96 | €46 | — | — | — |
| Hometrainers | €23 | €192 | €349 | €197 | — | — | €151 |
Twee dingen vallen eruit die de klikprijs-tabel je nooit kon tonen.
Speelruimte is categorie × markt, nooit een plat “wij zijn goedkoper”. Stofzuigers en toetsenborden lopen bijna overal koraal. Zelfs een koopjesshop zit op dure elektronica op een haar van de markt, omdat ieders marge daar al dun geschaafd is. Maar hometrainers, terraria, sneeuwkettingen en ruitersportspullen gloeien groen. In die hoeken rekent de markt vijf tot vijftien keer de vloer, omdat niemand er hard op prijs concurreert. “Wij zijn de goedkope optie” klopt per cel, niet per land. En het zijn de cellen die je vertellen met welke cataloguslijnen je de expansie leidt.
De dure-klik-markten zijn ook de dure-schap-markten. Duitsland en Oostenrijk dragen de twee duurste klikken van de hele run, en dat is precies waar het schap het hoogst zit (het Oostenrijkse hometrainer-schap is €349, het Roemeense €151). Dat is de nuance die de klikkosten-ranking verbergt. Een dure Oostenrijkse klik kan alsnog uit kunnen als de mand die hij koopt meer waard is, terwijl een goedkope Poolse klik naar een goedkoop Pools schap stilletjes de slechtere deal kan zijn. Klikkosten en schapprijs zijn twee verschillende assen, en je ziet de valkuil pas als je beide uitzet. Precies daarom weegt de score hierboven prijsconcurrentie op 15 %, vlak achter ROAS.
En de gaten in de tabel zijn zelf een bevinding. De carrouseldekking verdunt naarmate je naar het oosten en zuiden gaat. Duitsland, Oostenrijk en Polen vullen bijna elke cel; Hongarije, Slowakije en Roemenië tonen al blanco’s; en de goedkoopste-klik-markten van allemaal, de Balkan, leveren bijna niets, omdat Google in die landen geen popular_products-carrousel rendert. De prijslaag verdampt precies waar de klik het goedkoopst leek. Om die markten te beprijzen verlaat je Google en lees je de lokale vergelijkers (Ceneje.si, Jeftinije.hr, Pazaruvaj.bg), en dat is een andere middag werk.
Bonus: dezelfde data vertelt je wanneer je moet lanceren
Je betaalde voor één zoekwoord-pull en die droeg stilletjes een tweede deliverable: twaalf maanden zoekvolume per zoekwoord, 16,7 miljoen maandelijkse datapunten over 1,39 miljoen zoekwoorden. Aggregeer het en de vraagcurve is onmiskenbaar. Eén piekmaand draagt 40 % meer zoekvraag dan de rustigste.
December staat bovenaan de curve, juli onderaan. Precies wat je zou verwachten voor een algemene-warencatalogus. Die ene schommeling is je signaal voor lanceringstiming. Je opent een nieuwe markt niet in zijn dode maand, en je laadt budget vóór de decemberaanloop, niet erin. De analyse die je draaide om waar te kiezen, gaf je er wanneer gratis bij.
Echte getallen, één echte run
Elk cijfer hierboven kwam uit één echte run. Hier zijn de kerncijfers, met nog twee grensoverschrijdende analyses voor de schaal:
Uit echte CEE-expansieanalyses
- Zoekwoordideeën, één shop (Google Ads API) 1.402.486
- Landen gericht / voltooid 13 / 11
- Zoekwoordenonderzoek doorlooptijd, 's nachts & geautomatiseerd ~10 uur
- Nichecatalogus: rauwe zoekwoorden → behouden na AI-opschoning 1,18M → 168k (−86 %)
- Volledige SERP-ronde: 12 landen × 3.000 zoekopdrachten $22–126
Twee markten moesten halverwege de run afvallen omdat de zoekwoordtools hun taal niet ondersteunen. Het soort beperking dat je alleen leert door het ding echt te draaien. De ~10 uur is machinetijd. Het onderzoek maalt ‘s nachts door over alle landen parallel terwijl jij slaapt. Het mensenwerk (de feed vormgeven, de economie ijken, de ruis opschonen, de deliverable bouwen) is een paar geconcentreerde uren erbovenop. Ik offreerde precies deze deliverable vroeger op ruwweg een half miljoen kronen, en het geld was nooit voor slimme code. Het kocht honderden uren handwerk. Iemand moest markt voor markt zoekopdrachten lezen en opschonen, een klus die een paar jaar geleden geen enkele AI aankon. Klanten zeiden begrijpelijkerwijs nee. Nu is het één nachtrun plus een dag van mijn aandacht.
(De −86 %-snit komt uit een andere, veel nichere catalogus, een B2B-shop voor bouwprofielen waar de meeste brede-seed-zoekwoorden echt off-topic waren. De koopjesshop hierboven verloor maar een enkelcijferig percentage. Hoe agressief de opschoning is, hangt volledig af van hoe niche je bent.)
Wat je met de ranking doet
Betreed de markt die de data koos, niet die je aannam
Het hele punt was verrast te worden, en dat werd je. Slowakije en Servië, een kleine markt en een niet-EU-markt, scoorden ronduit hoger dan Duitsland en Oostenrijk, puur omdat klikken een fractie van de prijs waren en de economie echt klopte. Dat is de deliverable die zijn enige werk doet: de aanname overrulen met de rekensom, voordat de aanname het budget uitgeeft.
De concurrentie-scrape is al je lanceringsdraaiboek
Stap 6 haalde elke advertentietekst en prijspunt van concurrenten per markt op, dus je loopt niet blind naar binnen. Je weet wie er zit, wat ze rekenen, welke voordelen ze in hun koppen pushen, en waar er een prijsgat is om te onderbieden of een positioneringsgat om te claimen. Alles voordat je ook maar één euro aan verkeer uitgeeft.
Vraag per categorie vertelt je wat je eerst moet verzenden
Je behield de link van elk zoekwoord terug naar zijn product_type. Dus je weet niet alleen dat Polen goed is; je weet welke categorieën Polen zoekt, in welk volume. De catalogus waarmee je lanceert is die welke de data zegt dat de markt wil, geen kopie-plak van je thuisassortiment.
Download the complete instructions for your AI
The whole blueprint above, rewritten as a brief you can paste straight into Claude or any capable coding agent. You supply the Merchant Center feed and the API access; it runs the seven steps on your shop. Leave your email and the file is yours.
One file, one list. I only write when there's something worth reading.
Veelgestelde vragen
Hoeveel landen moet ik analyseren?
Begin bij logistiek, niet bij ambitie. Noteer alles waar je echt naartoe kunt verzenden, meestal een shortlist van 10–15 landen. Deze run begon met 13 en verloor er twee in de zoekwoordfase omdat Google Ads hun taal niet kon onderzoeken; de scoring dunde de rest uit.
Een miljoen zoekwoorden klinkt als overkill. Is het dat?
Het is simpelweg de natuurlijke schaal: 400 seeds × een dozijn talen × al hun varianten loopt in de miljoenen. Deze ene shop leverde 1.402.486 zoekwoordideeën op. Het volume is juist het punt. Je brengt een markt in kaart, je schrijft geen briefing van 5.000 woorden.
Google Ads API, DataForSEO of Semrush?
Google Ads API voor de zoekwoordideeën als je een sterk token hebt; dat is de bron van waarheid. DataForSEO voor de SERP-scraping en als goedkoop zoekwoordalternatief. Een volledige concurrentieronde over 12 landen kost $22–126. Semrush is de dure optie, en voor deze klus is er weinig reden om zijn vaste abonnement te betalen.
Hoe ga je om met zoveel talen?
Een LLM vertaalt de seedlijst naar de moedertaal van elk land voordat het onderzoek draait. De 400 kern-seeds groeien met varianten uit tot 488 entries, keer 12 talen in deze run, dus 5.856 vertalingen klaar vóór de eerste API-call. Engels als proxy verstoort stilletjes elk volume en elke CPC, want niemand in Warschau zoekt in het Engels.
Kan ik de CPC-cijfers voor de ROAS-simulatie vertrouwen?
Niet rauw. CPC’s uit zoekwoordtools zijn planningsschattingen; op dit live account lag de voorgestelde CPC ongeveer 10× zo hoog als de echte betaalde (2,54 CZK over 22,6M zoekopdrachten). IJk tegen één account dat je echt draait, pas die korting toe, en dan is de gesimuleerde ROAS iets waard.
Hoe lang duurt het hele proces?
Het zoekwoordenonderzoek zelf is één nachtrun, ruwweg 10 uur onbewaakte machinetijd over alle landen parallel. Het mensenwerk eromheen (feed vormgeven, economie, opschonen, deliverable) is een handvol uur. Noem het een dag of twee van begin tot eind, tegenover wat vroeger weken kostte.