Webhook Dedublicatie
Met de toenemende privacyregels en strengere eisen op het gebied van consentverwerking zoals AVG en ePrivacy, wordt het steeds lastiger om volledige data-inzichten te krijgen. Om first-party data te verzamelen is server-side tagging dé ideale tracking methode. Maar alleen een Server-Side Tagging setup is niet genoeg om de meest accurate data te verzamelen. Samen met geavanceerde oplossingen zoals Webhooks is dit wel mogelijk zoals je in ons vorige blog-artikel hebt kunnen lezen.
Conversie webhooks voor eCommerce webshops zorgen ervoor dat je CMS-systeem automatisch een bericht kan sturen naar andere systemen, in het geval van webshops kan er een bericht gestuurd worden vanuit de backend van je shop richting je server op het moment dat er een order aangemaakt wordt. Het versturen van die berichten gaat direct van systeem naar systeem waardoor informatie direct en efficiënt kan worden uitgewisseld. Webhooks zorgen er onder andere voor dat je ook de aankopen kan meten van cookieweigerende-bezoekers (al kan je de marketing en user info van die bezoeker in je marketing en analytische kanalen niet inzien).
Bij AdPage hebben we een functionaliteit ontwikkeld dat ervoor zorgt dat een webhook alleen wordt verstuurd als de GA4 purchase-gebeurtenis niet geregistreerd is. Dit gebeurt door te controleren of de transaction_id al beschikbaar is in de GA4 purchase event data. Als deze ontbreekt, wordt de webhook verstuurd om de data alsnog aan te vullen. Maar wordt de transaction_id wel herkend, dan wordt de webhook tegen gehouden. Zo voorkom je dubbele metingen en zorg je voor een compleet beeld van je conversies.

Schakel de mogelijkheid binnen je trytagging-omgeving in om op serverniveau te controleren op ontvangen purchase gebeurtenissen met een transaction_id om dubbele conversies te voorkomen. Dit doe je in de Configuratie-instellingen.

Om de ontdubbeling in te schakelen zul je een variable "X-Order-Exists" moeten toevoegen op je sGTM container. Die variabele is een Request Header variabele met de waarde 'X-Order-Exists'.

De Request Header die door deze variabele gecheckt wordt, bevat de informatie over het ontvangen van een purchase event met een transaction_id. Is de transaction_id niet geconstateerd, wordt de X-Order-Exists in de request header gevuld met de waarde "false". Is de transaction_id wel geconstateerd, dan wordt de X-Order-Exists in de request header gevuld met de waarde "true".
Als je dus het purchase event van de webhook door wilt sturen, moet je in de trigger van deze tag de voorwaarde toevoegen dat de X-Order-Exists variabele 'false' is. Als AdPage je implementatie gedaan heeft, zal je voor Meta Ads en GA4 in totaal 4 tags gebruiken. Dat zijn deze vier tags met hun triggers:
- GA4 tag - Wanneer een gebeurtenis (behalve purchase als gebeurtenisnaam) binnenkomt op de GA4 client
- GA4 purchase tag - Wanneer een /order_created request binnenkomt op de Data Client.
- Meta Ads tag - Wanneer een gebeurtenis (behalve purchase als gebeurtenisnaam) binnenkomt op de GA4 client
- Meta Ads purchase tag - Wanneer een /order_create request binnenkomt op de Data Client
Dit is hoe deze tags eruit moeten zien binnen je Server container:


3, Om de webhook deduplicatie voor beide platformen te laten werken, moet je de triggers op de volgende manieren aanpassen:
- In de GA4 trigger zorg je ervoor dat de 'Event Name does not equal Purchase' voorwaarde weggehaald wordt.
- In de Meta Ads trigger zorg je ervoor dat de 'Event Name does not equal Purchase' voorwaarde weggehaald wordt.
- In de webhook trigger zorg je ervoor dat de 'X-Order-Exists equals false' voorwaarde toegevoegd wordt.

Wat zijn Webhooks?
Conversie webhooks voor eCommerce webshops zorgen ervoor dat je CMS-systeem automatisch een bericht kan sturen naar andere systemen, in het geval van webshops kan er een bericht gestuurd worden vanuit de backend van je shop richting je server op het moment dat er een order aangemaakt wordt. Het versturen van die berichten gaat direct van systeem naar systeem waardoor informatie direct en efficiënt kan worden uitgewisseld. Webhooks zorgen er onder andere voor dat je ook de aankopen kan meten van cookieweigerende-bezoekers (al kan je de marketing en user info van die bezoeker in je marketing en analytische kanalen niet inzien).
Bij AdPage hebben we een functionaliteit ontwikkeld dat ervoor zorgt dat een webhook alleen wordt verstuurd als de GA4 purchase-gebeurtenis niet geregistreerd is. Dit gebeurt door te controleren of de transaction_id al beschikbaar is in de GA4 purchase event data. Als deze ontbreekt, wordt de webhook verstuurd om de data alsnog aan te vullen. Maar wordt de transaction_id wel herkend, dan wordt de webhook tegen gehouden. Zo voorkom je dubbele metingen en zorg je voor een compleet beeld van je conversies.

Hoe stel je de Webhook deduplicatie in?
Schakel de mogelijkheid binnen je trytagging-omgeving in om op serverniveau te controleren op ontvangen purchase gebeurtenissen met een transaction_id om dubbele conversies te voorkomen. Dit doe je in de Configuratie-instellingen.

Om de ontdubbeling in te schakelen zul je een variable "X-Order-Exists" moeten toevoegen op je sGTM container. Die variabele is een Request Header variabele met de waarde 'X-Order-Exists'.

De Request Header die door deze variabele gecheckt wordt, bevat de informatie over het ontvangen van een purchase event met een transaction_id. Is de transaction_id niet geconstateerd, wordt de X-Order-Exists in de request header gevuld met de waarde "false". Is de transaction_id wel geconstateerd, dan wordt de X-Order-Exists in de request header gevuld met de waarde "true".
Als je dus het purchase event van de webhook door wilt sturen, moet je in de trigger van deze tag de voorwaarde toevoegen dat de X-Order-Exists variabele 'false' is. Als AdPage je implementatie gedaan heeft, zal je voor Meta Ads en GA4 in totaal 4 tags gebruiken. Dat zijn deze vier tags met hun triggers:
- GA4 tag - Wanneer een gebeurtenis (behalve purchase als gebeurtenisnaam) binnenkomt op de GA4 client
- GA4 purchase tag - Wanneer een /order_created request binnenkomt op de Data Client.
- Meta Ads tag - Wanneer een gebeurtenis (behalve purchase als gebeurtenisnaam) binnenkomt op de GA4 client
- Meta Ads purchase tag - Wanneer een /order_create request binnenkomt op de Data Client
Dit is hoe deze tags eruit moeten zien binnen je Server container:


3, Om de webhook deduplicatie voor beide platformen te laten werken, moet je de triggers op de volgende manieren aanpassen:
- In de GA4 trigger zorg je ervoor dat de 'Event Name does not equal Purchase' voorwaarde weggehaald wordt.
- In de Meta Ads trigger zorg je ervoor dat de 'Event Name does not equal Purchase' voorwaarde weggehaald wordt.
- In de webhook trigger zorg je ervoor dat de 'X-Order-Exists equals false' voorwaarde toegevoegd wordt.

Bijgewerkt op: 25/10/2024
Dankuwel!