WooCommerce koppelen aan affiliate: waarom een plugin meer ziet dan een pixel
Een tracking-pixel op de bedankpagina mist adblockers, afgebroken checkouts en elke annulering achteraf. Op WordPress hoeft dat niet: de bestelling gaat server-to-server terug en correcties gaan mee.
Door Jeroen Jaspers
·
·
6 min lezen
Je hebt een WooCommerce-shop en je wil affiliates laten verkopen. De klassieke aanpak is een stukje JavaScript op de bedankpagina plakken en hopen dat het goed gaat. Dat werkt, tot het niet meer werkt. En dan merk je het pas weken later, als een publisher vraagt waarom zijn conversies op nul staan.
Voor WordPress en WooCommerce kan het beter, omdat je daar niet vastzit aan de browser. Je draait je eigen PHP. Dat is precies wat onze plugin doet.
Waarom een pixel op de bedankpagina tekortschiet
Een tracking-pixel is een script dat in de browser van de koper laadt op het moment dat de bestelling rond is. Dat klinkt simpel en dat is het ook, maar er zijn nogal wat manieren waarop die ene seconde misgaat.
Adblockers. Een flink deel van de Nederlandse bezoekers blokkeert externe scripts. Geen script, geen conversie, geen commissie. De verkoop is gewoon gedaan, alleen niemand ziet hem.
De bedankpagina wordt niet bereikt. iDEAL-retour die vastloopt, koper die het tabblad sluit na de betaling, een betaalprovider die terugstuurt naar een andere URL dan verwacht. De order staat in WooCommerce, het pixel is nooit afgevuurd.
Content Security Policy. Een strakke CSP op je shop blokkeert het laden van scripts van derden. Vaak ingesteld door een securityplugin of je hoster, zonder dat iemand aan tracking dacht.
Correcties komen nooit door. Een pixel vuurt eenmalig bij de bestelling. Annuleert de klant een week later, of stuur je een deel terug, dan blijft de sale in het netwerk gewoon staan. Je betaalt commissie over omzet die je niet hebt gemaakt.
Dat laatste punt is voor adverteerders het duurste, en voor publishers het meest oneerlijke. Want een netwerk dat correcties niet ziet, corrigeert ze op een andere manier: met een ruime goedkeuringsperiode en handmatige afkeuringen.
Wat de Klatsa-plugin anders doet
De plugin doet drie dingen, en alle drie gebeuren op je server in plaats van in de browser van de koper.
1. De klik vasthouden
Een bezoeker komt binnen via een publisher-link met ?aff_click_id=... in de URL. De plugin pikt die parameter op en bewaart hem op drie plekken tegelijk: een cookie van 90 dagen, localStorage, en een server-side fallback voor het geval de browser het cookie weigert. Zodra de bezoeker afrekent, wordt de click-id op de order zelf opgeslagen als ordermeta.
Vanaf dat moment is de koppeling tussen klik en bestelling niet meer afhankelijk van de browser. Hij staat in je database.
2. De bestelling terugmelden
Als WooCommerce de order op betaald zet, stuurt de plugin een server-to-server bericht naar Klatsa. Ondertekend met HMAC, dus wij weten zeker dat het bericht van jouw shop komt en onderweg niet is aangepast. Idempotent, dus een order die twee keer van status wisselt levert geen dubbele sale op.
Geen browser, geen JavaScript, geen adblocker in de weg. De enige manier waarop dit niet aankomt, is als je server helemaal niet bij ons kan.
3. Annuleringen en restituties meesturen
Annuleer je een order, of betaal je hem volledig terug, dan vervalt de sale in Klatsa. Bij een deelrestitutie daalt de orderwaarde en herrekenen wij de commissie naar rato.
Dit is het punt waarop een plugin zichzelf terugverdient. Je betaalt commissie over wat er echt is verkocht, en je publisher hoeft niet te wachten tot een goedkeuringsperiode van 60 dagen is verstreken omdat het netwerk anders niets zeker weet.
De productfeed hoort erbij
Publishers die vergelijkers of contentsites draaien, willen je producten kunnen tonen met de juiste prijs en voorraad. Meestal betekent dat een aparte feedplugin, een XML-bestand dat elke nacht ergens wordt weggeschreven, en een URL die iemand handmatig moet doorgeven.
De Klatsa-plugin levert de feed via een eigen REST-endpoint, beveiligd met dezelfde HMAC-sleutel. Wij halen hem gepagineerd op en verwerken per product de prijs inclusief btw, de eventuele actieprijs, de afbeelding, de EAN en de voorraadstatus. Geen los bestand dat kan verlopen, geen tweede plugin, geen cronjob op jouw shop.
En omdat wij elke sync loggen met tijdstip, statuscode en aantal producten, zien we het als een feed plotseling van 4.800 naar 12 producten krimpt. Dat is meestal geen uitverkoop maar een storing.
Installeren duurt ongeveer een minuut
We hebben de vervelendste stap eruit gehaald, namelijk het overtypen van sleutels.
- Je krijgt van ons een installatielink met een setup-code. De zip die je daar downloadt heeft jouw code er al in zitten.
- In WordPress: Plugins, Nieuwe plugin, Plugin uploaden, activeren.
- De plugin koppelt zichzelf bij activatie. Op de instellingenpagina staat een knop Test verbinding.
Daarna doe je één testbestelling. Die verschijnt op de instellingenpagina met een groene melding, blijft buiten je sales- en omzetcijfers, en wordt door ons opgeruimd zodra de campagne live gaat. Zo weet je dat de keten werkt voordat er een echte publisher op zit.
De plugin werkt op WordPress 6.0 en hoger met WooCommerce 7.0 en hoger, en heeft minimaal PHP 7.4 nodig. Updates komen binnen via de gewone updatemelding van WordPress, inclusief de lijst met wijzigingen, en je kan automatische updates aanzetten als je er verder geen omkijken naar wil hebben.
Twee dingen die we bij het koppelen even nakijken
Bij verreweg de meeste WooCommerce-shops werkt het meteen na installatie. Toch lopen we bij het koppelen samen twee punten na, zodat je zeker weet dat er onderweg geen klik verloren gaat.
Waar je bestelling wordt aangemaakt. De click-id hangt aan je eigen domein en wordt op de order gezet op het moment dat WooCommerce die aanmaakt. In een gewone shop gebeurt dat op je eigen site, ook als de klant daarna naar iDEAL of een andere betaalpagina gaat. Werk je met een headless of externe checkout op een ander domein, dan kijken we even mee of de click-id netjes meekomt.
Redirects die je link inkorten. Een publisher-link komt binnen met een parameter in de URL. De plugin leest die zowel op je server als in de pagina zelf, dus een pagecache of CDN is geen probleem. Alleen als een redirect-regel of een canonical-instelling die parameters uit de URL knipt voordat je pagina laadt, is de klik weg voordat iemand hem kan zien. Dat testen we bij het koppelen in één keer door.
Verandert er later iets groots, zoals een nieuw thema, een andere betaalplugin of een verhuizing naar een andere hoster, dan is één testbestelling genoeg om te weten dat alles nog loopt. Twijfel je? Stuur ons een bericht, we kijken graag mee.
Aan de slag
Op WooCommerce hoef je affiliate-tracking niet aan de browser over te laten. De klik landt in je eigen database, de bestelling gaat server-to-server terug, en correcties gaan mee. Voor jou betekent dat commissie over echte omzet. Voor je publishers betekent het dat ze niet hoeven te wachten op een lange goedkeuringsperiode, omdat het netwerk gewoon ziet wat er is gebeurd.
Klaar om te beginnen? Meld je aan als adverteerder en je krijgt van ons een installatielink met je eigen setup-code. Liever eerst even sparren over de opzet? Mail info@klatsa.nl, dan denken we mee.