Inhoudsopgave

WordPress-tracking aan de server-side voor leads: hoe je formulierconversies kunt bijhouden met sGTM

wordpress logo
Korte samenvatting: Bij het bijhouden van leadsin WordPress wordt een klik op ‘Verzenden’ meestal al als conversie geteld, nog voordat de validatie, spamcontroles en opslag zijn uitgevoerd. Bij tracking aan de server-side verplaats je de trigger naar je backend: tel de lead pas mee wanneer WordPress een geldige invoer accepteert en opslaat, en stuur dat event vervolgens via Google Tag Manager aan de server-side door naar GA4, Google Ads en Meta. Het opgeslagen invoer-ID wordt de gedeelde sleutel die een leadformulier anders mist.

Een aankoop via WooCommerce biedt trackingtools volop mogelijkheden. Er is een bestelling, een bestelnummer, een waarde en een duidelijk moment waarop de transactie daadwerkelijk plaatsvindt.

Het genereren van leads op WordPress is wat rommeliger.

Een bureau heeft een contactformulier en Calendly. Een B2B-bedrijf telt misschien een aanvraag voor een demo mee, en beslist dan pas weken later of het een gekwalificeerde lead was. Die trajecten hebben zelden een natuurlijke transactie-ID.

Bij browsertracking wordt een klik op ‘Verzenden’ vaak als conversie gezien. Het formulier kan nog steeds de validatie niet doorstaan, door reCAPTCHA worden geblokkeerd of als spam worden gemarkeerd. GA4 registreert dan een lead die het bedrijf nooit heeft ontvangen.

Bij server-side tracking in WordPress worden je lead-events vanaf je eigen server via server-side Google Tag Manager (sGTM) naar GA4, Google Ads en Meta gestuurd, in plaats van vanuit de browser van de bezoeker. Dit werkt het beste als je uitgaat van een simpele regel: tel de lead mee zodra je backend een geldige invoer accepteert en opslaat, en stuur die gebeurtenis vervolgens via sGTM door. Als je formulierplugin geen invoer opslaat, voeg dan een blijvend record toe – een opgeslagen rij waar je later naar kunt verwijzen – of maak op datzelfde moment van bevestigd succes een stabiele lead-ID aan de server-side aan.

Waarom het bijhouden van leads in WordPress lastiger is dan het bijhouden van e-commerce

Een e-commercesysteem heeft een duidelijk gedefinieerd transactieobject. Hetzelfde transaction_id kan van de webshop naar GA4, Google Ads en Meta worden doorgegeven. Als zowel een browsertag als een servertag de aankoop rapporteren, helpt dat ID de platforms om één transactie te herkennen in plaats van twee.

Een serviceformulier heeft meestal geen tegenhanger. De browser ziet velden en een verzendknop, terwijl de formulierplugin een eigen record aanmaakt in de WordPress-database. Bij het bijhouden moet je die twee momenten met elkaar verbinden, zonder elke keer dat er een tag wordt geactiveerd een nieuwe lead te creëren.

Er is nog een verschil. Een aankoop is al een zakelijk resultaat. Een ingevuld formulier kan een echte potentiële klant zijn, een bot, een bestaande klant die om hulp vraagt, of iemand die [email protected] intypt. Als je alle inzendingen als signalen voor het bieden gebruikt, kan dat de optimalisatie beïnvloeden in de richting van het aantal inzendingen, zonder onderscheid te maken naar de kwaliteit van de leads verderop in het proces.

Voor meer achtergrondinformatie over de gegevens die tussen een site en GTM worden uitgewisseld, bekijk je deze handleiding over de gegevenslaag van Google Tag Manager.

Waarom heeft WordPress niet één ‘formulier verzonden’-event?

WordPress heeft geen algemene gebeurtenis voor ‘opgeslagen lead’. Elke formulierplugin pakt validatie, AJAX-verzoeken, bevestigingen, spamcontroles en database-invoer op zijn eigen manier aan. Contact Form 7 slaat ingevulde formulieren standaard niet op, terwijl plugins zoals Gravity Forms juist zijn gebouwd rond opgeslagen gegevens.

Contact Form 7 maakt gebruik van DOM-events zoals wpcf7mailsent, wpcf7invalid en wpcf7spam. Gravity Forms heeft zijn eigen bevestigingsevents en PHP-hooks. WPForms, Ninja Forms, Fluent Forms en Elementor Pro gebruiken verschillende JavaScript-events of backend-acties. Zelfs twee formulieren die met dezelfde plug-in zijn gemaakt, kunnen zich anders gedragen: het ene stuurt je door naar een bedankpagina, terwijl het andere een AJAX-bevestiging laat zien.

Die versnippering is van belang voor het bijhouden van WordPress-formulieren in GA4. Een algemene GTM-trigger voor het verzenden van formulieren reageert op de formulieractie van de browser. Dit bewijst niet dat de plug-in de invoer heeft geaccepteerd.

Stel je voor dat een bezoeker een verplicht telefoonveld niet invult. De ‘submit’-listener kan al afgaan voordat de validatie helemaal klaar is. De bezoeker vult het veld alsnog in en probeert het opnieuw, waardoor diezelfde persoon twee browserevents veroorzaakt en één opgeslagen lead oplevert. reCAPTCHA en spamcontroles zorgen voor dezelfde discrepantie.

Plugin-specifieke events zijn beter dan een algemene listener. Bij Contact Form 7 is ‘wpcf7mailsent’ iets anders dan ‘wpcf7submit’, want die laatste wordt geactiveerd na elke voltooide AJAX-verzending, ongeacht of er daadwerkelijk een e-mail is verstuurd. Let op: wpcf7mailsent bevestigt dat de e-mail is verstuurd, niet dat er een invoer is opgeslagen. Hoe dan ook, een succesgebeurtenis in de browser hangt nog steeds af van het feit dat JavaScript draait en dat de pagina lang genoeg open blijft om het trackingverzoek te versturen.

Waarom triggers voor de bedankpagina en het succesbericht niet werken

Sommige GTM-configuraties letten op een ‘Bedankt’-bericht met een ‘Element Visibility’-trigger. Dit kan werken als er geen goede succes-callback beschikbaar is, maar het koppelt de meting aan de inhoud van de pagina.

Een ontwerper kan het bericht vervangen of in een andere wrapper plaatsen. Een optimalisatieplugin kan ervoor zorgen dat het bericht later verschijnt. Op meertalige sites kunnen WPML of Polylang voor elke taal een andere tekststring en soms ook andere markup weergeven. Een trigger die op zoek is naar één Engelse CSS-selector of tekstfragment, mist dan geldige leads.

Het tegenovergestelde probleem komt ook voor. Een in de cache opgeslagen bevestiging, een herhaald formulier of een bericht dat tijdens het navigeren in de browser wordt hersteld, kan zichtbaar worden zonder dat er een nieuwe invoer wordt aangemaakt.

Een speciale bedankpagina is makkelijker te controleren, hoewel het nog steeds slechts een tussenstap is. Bezoekers kunnen de URL opnieuw laden of opnieuw bezoeken. Het kan ook gebeuren dat het formulier wel succesvol wordt opgeslagen, terwijl de omleiding mislukt.

Hoe registreert server-side tracking een WordPress-lead?

Simpel gezegd ziet de werkwijze er zo uit:

  1. De bezoeker vult een formulier in en de plug-in controleert of het klopt.
  2. WordPress accepteert de inzending (als het geen spam is), slaat de vermelding op en wijst er een vermeldings-ID aan toe. Als er nog geen vermelding is, maakt de backend een stabiele lead-ID aan.
  3. Een backend-hook verifieert de gegevens en stuurt een webhook naar het sGTM-eindpunt.
  4. De ontvangende configuratie controleert het verzoek en de payload voordat de servercontainer de gebeurtenis toewijst en de toegestane gegevens doorstuurt.
  5. Een latere CRM-webhook kan een gekwalificeerde lead of een gesloten deal rapporteren met behulp van hetzelfde leadrecord.

De sterkste trigger is een backend-hook – een punt in de eigen code van de plug-in waar je je eigen actie kunt koppelen – die bevestigt dat de validatie, de spamverwerking en het succesvol opslaan allemaal zijn voltooid. Het exacte moment in de levenscyclus verschilt per plug-in. Een opgeslagen record alleen is niet genoeg, omdat sommige opslagtools, waaronder Flamingo, ook spam-inzendingen kunnen bewaren.

Opslag moet in het ontwerp worden meegenomen. Formulir 7 heeft een add-on voor het opslaan van invoer nodig, zoals Flamingo, of een aangepast backend-record als je een blijvend lead-ID wilt. Andere plug-ins bewaren invoer mogelijk alleen bij bepaalde abonnementen of als de opslag van ingediende formulieren is ingeschakeld. Controleer de daadwerkelijke configuratie van de plug-in in plaats van ervan uit te gaan dat elk formulier dat in wp-admin zichtbaar is, een record aanmaakt.

Elke plug-in biedt een andere backend-hook aan. Een ontwikkelaar kan de ‘confirmed-success’-hook koppelen aan een webhook, een HTTP-verzoek dat automatisch wordt verzonden zodra het event plaatsvindt. De webhook verstuurt een kleine JSON-payload – de velden die je hebt gekozen om te verzenden – naar een toegestaan Data Client-pad op je sGTM-eindpunt.

De sGTM-client is het onderdeel dat het verzoek ontvangt en de JSON-velden ervan omzet in gegevens over events. Tags in de servercontainer bepalen vervolgens naar welke bestemming het event wordt gestuurd. In dit webhook-overzicht wordt het model uitgelegd, terwijl de handleiding voor het testen van webhooks laat zien hoe je een binnenkomende payload kunt bekijken in de preview-modus van de servercontainer. Test met synthetische records en een minimale payload die op de allowlist staat; gebruik nooit inhoud van live formulieren of gevoelige antwoorden.

Backend-capture maakt beveiliging niet overbodig. Padvergelijking regelt de routing, niet de authenticatie. Vraag degene die dit bouwt om te bevestigen dat het verzoek wordt geauthenticeerd met een handtekening of geheim, dat ongeldige payloads worden geweigerd, dat het aantal verzoeken wordt beperkt en dat herhaling wordt voorkomen waar het ontwerp dat toelaat. Geheimen en formulierinhoud horen niet thuis in URL’s of debuglogs.

Stuur alleen de velden mee die de ontvanger daadwerkelijk nodig heeft; alles wat niet expliciet is toegestaan, laat je weg. Medische gegevens, redenen voor afspraken, open antwoorden en andere gevoelige gegevens mogen nooit naar analyse- of advertentieplatforms worden gestuurd. Jij of de wettelijke eigenaar beslist of het gebruik en de rechtsgrondslag kloppen.

Is dit de eerste keer dat je hiermee aan de slag gaat? Onze checklist voor het starten met server-side tracking behandelt de instellingen voor de container, het domein en de toestemming, waarvan deze workflow ervan uitgaat dat je die al hebt geregeld.

Hoe je een lead ontdubbelt zonder transactie-ID

Leadformulieren hebben misschien geen transaction_id, maar een plug-in die inzendingen opslaat, wijst na het succesvol opslaan een entry-ID toe. Die ID is een handige gedeelde sleutel voor de conversie.

Stel dat Gravity Forms entry 8742 opslaat. De webhook kan dan een scoped waarde sturen, zoals gravity-12-8742, waarbij de plug-in, het formulier-ID en het entry-ID worden gecombineerd. Scoping is belangrijk als meerdere formulieren of sites hetzelfde numerieke ID kunnen genereren.

Voor het verwijderen van dubbele gegevens in de Meta Pixel en de Conversions API moeten de browsergebeurtenis en de servergebeurtenis dezelfde gebeurtenisnaam en gebeurtenis-ID hebben. De succesreactie van het formulier of de callback van de plug-in moet daarom de opgeslagen invoer-ID doorgeven aan de browsergebeurtenis. Het werkt niet als je in GTM één willekeurige ID genereert en in PHP een andere.

Als de browser de entry-ID niet kan ontvangen, is het veiliger om één officiële server-event te gebruiken in plaats van een kopie van de browser die niet kan worden gekoppeld. De door Meta aanbevolen dubbele opzet helpt alleen als beide paden dezelfde sleutel hebben. De installatiehandleiding voor de Meta Conversions API behandelt het server-container-gedeelte.

Bij het offline importeren van leads door Google kan een order-ID, ook wel transactie-ID genoemd, worden gebruikt om dubbele uploads binnen de betreffende conversieactie te voorkomen. Het ID van het formulierveld met bereik kan die rol vervullen, mits het uniek blijft voor die actie en stabiel blijft bij herhalingspogingen.

Welke lead-events moeten worden doorgegeven aan Google en Meta voor het bieden?

Backend-levering zorgt ervoor dat je minder afhankelijk bent van JavaScript in de browser en van het feit dat de pagina open blijft staan. Het maakt de lead zelf niet waardevoller, en bij storingen in webhooks of bestemmingen zijn nog steeds herpogingen en monitoring nodig. Het betrouwbaar leveren van een waardeloze lead is nog steeds het leveren van een waardeloze lead.

Als elke opgeslagen aanvraag een primaire conversieactie wordt die wordt gebruikt voor het bieden, kan Google Smart Bidding zich op dat event richten. Meta Advantage+ leads-campagnes kunnen CRM-resultaten gebruiken die via de Conversions API worden verzonden om te optimaliseren voor leads die meer kans hebben om te converteren. Als je beide systemen spam of contacten met een lage intentie voert, krijg je zwakke input in plaats van het gekwalificeerde resultaat dat het bedrijf wil.

In de praktijk is de handige indeling:

  • generate_lead voor een geldige formulierinzending, vaak opgeslagen als een analyseevent of secundaire conversie
  • qualified_lead nadat het CRM- of verkoopteam de lead heeft geaccepteerd
  • converted_lead wanneer de lead klant wordt, met een waarde als het bedrijf dat aankan

Er is geen reden om te doen alsof een contactformulier al omzet is. Door latere CRM-fasen terug te koppelen naar de advertentieplatforms krijgen hun biedsystemen een beter beeld van het resultaat dat het bedrijf wil bereiken. De huidige richtlijnen van Google raden ‘gekwalificeerde’ of ‘geconverteerde’ leaddoelen aan voor adverteerders die leads genereren en gebruikmaken van ‘verbeterde conversies voor leads’.

Lees meer over het terugkoppelen van latere resultaten naar Google Ads in deze handleiding over offline conversies. Voor B2B-campagnes wordt hetzelfde concept behandeld in de handleiding over de LinkedIn Conversions API.

Sla klik-ID's op in het leadrecord, niet in de browser

Lange verkoopcycli worden onderbroken als attributiegegevens alleen in de browser blijven staan. Beschikbare klik-ID’s van advertenties kunnen op de landingspagina worden vastgelegd, in verborgen formuliervelden worden geplaatst en samen met de formuliergegevens worden opgeslagen, afhankelijk van de toestemmingskeuzes van de bezoeker en de regels van het platform.

Verborgen velden zijn nog steeds door bezoekers ingevulde gegevens, dus alles wat daarin binnenkomt, moet als onbetrouwbaar worden beschouwd. Controleer of de indeling en lengte kloppen, accepteer alleen parameters die je herkent en gebruik die waarden nooit voor autorisatie of identiteitscontrole. Sla het toestemmingsrecord apart op en koppel het aan de verzending die de webhook heeft gegenereerd.

Veelvoorkomende waarden zijn onder andere:

  • gclid voor in aanmerking komende Google Ads-klikken
  • fbclid van Meta-landingspagina-URL's, terwijl de waarden _fbc en _fbp van Meta vaak worden gebruikt voor CAPI-matching
  • li_fat_id wanneer verbeterde conversietracking van LinkedIn is ingeschakeld

Door de identificatiecode bij het bezoek op te slaan, kan deze naar het CRM worden overgezet. Als een deal weken later gekwalificeerd wordt, kan een CRM-webhook de uitkomst met de oorspronkelijke identificatiecode doorsturen, in plaats van de huidige browsersessie te vragen een oud bezoek te onthouden.

Google raadt aan om GCLID’s te blijven importeren als die beschikbaar zijn, voor betere conversies van leads. LinkedIn accepteert li_fat_id als zijn eigen tracking-ID voor advertenties voor het matchen via de Conversions API. Gehasht eigen klantgegevens kunnen in aanmerking komende platforms ook helpen om een latere conversie te matchen, maar hashen neemt de verplichtingen op het gebied van toestemming, kennisgeving, beveiliging of gegevensminimalisatie niet weg.

Voor een praktische CRM-workflow kun je deze uitleg bekijken over hoe offline gegevens de ROAS van GA4 en advertentieplatforms kunnen corrigeren.

Waarom Safari het moeilijker maakt om lange leadcycli te volgen

Een periode van zeven dagen is in de B2B-sector, als bureau of in een branche die hoogwaardige diensten levert, makkelijk te overbruggen. Bij het eerste bezoek wordt er misschien een browser-ID aangemaakt, terwijl de demo of het ondertekende contract pas enkele weken later binnenkomt. Daarom hoort de klik-ID bij het leadrecord te staan en niet in een cookie.

Safari past niet voor elke first-party cookie een universele vervaltermijn van zeven dagen toe. De regel hangt af van hoe de opslag is gecodeerd en of Safari de instelling als tracking classificeert.

WebKit kan opslagruimte die via scripts kan worden bewerkt na zeven dagen Safari-gebruik verwijderen zonder dat je daar iets voor hoeft te doen. Een trackingbedrijf kan via een aangepast subdomein lijken alsof het deel uitmaakt van de website, terwijl de server nog steeds op infrastructuur van een derde partij staat. Safari kan zulke opstellingen herkennen en ook sommige door de server geplaatste cookies beperken. Link Tracking Protection kan bovendien bekende klikparameters verwijderen in beveiligde browsemodi.

Door klik-ID’s in het leadrecord op te slaan, kun je een koppelingssleutel behouden nadat het formulier is verzonden. Dit zorgt er echter niet voor dat een identificatiecode die al verdwenen was voordat de bezoeker het formulier verstuurde, weer terugkomt, en het garandeert ook niet dat een advertentieplatform deze code kan koppelen.

In de gelinkte review over de trackingbescherming van Safari 27 staan nog meer bevindingen uit de analyse van de WebKit-broncode door TAGGRS. Het openbare materiaal van Apple over Safari 27 bevestigt niet al die versiespecifieke details, dus je moet dit zien als een technische analyse van TAGGRS en niet als een officiële aankondiging van Apple. De TAGGRS Cookie Recovery is bedoeld voor in aanmerking komende marketingcookies waarvoor toestemming is gegeven en vereist het Enhanced Tracking Script. Het koppelt geen apparaten aan elkaar, verlengt het attributievenster van een advertentieplatform niet en vervangt de toestemming niet.

Controleer overlappende WordPress-trackingplugins

Problemen met het bijhouden van gegevens in WordPress beginnen vaak al voordat sGTM wordt toegevoegd. Site Kit, MonsterInsights, GTM4WP, de Meta-plugin en een plugin voor toestemmingsbeheer kunnen allemaal scripts plaatsen of de uitvoeringstijd van tags beïnvloeden.

Twee tools kunnen allebei GA4 laden. GTM en een Meta-plugin kunnen elk hetzelfde Lead-event versturen. Een CMP kan de ene kopie blokkeren, terwijl een andere plugin een tag toevoegt waar de CMP geen controle over heeft. De browser verstuurt dan dubbele of niet-goedgekeurde events voordat de servercontainer iets ontvangt.

Een handige controle is om voor elke functie een eigenaar aan te wijzen: de tool die GTM implementeert, degene die GA4-paginaweergaven verstuurt, en het onderdeel dat de standaardinstellingen voor toestemming bepaalt. Eén eigenaar per functie is de meest overzichtelijke opzet. GTM4WP kan nog steeds waarden voor de datalaag leveren terwijl een andere methode de analytics verstuurt, maar die verdeling moet wel bewust worden gekozen.

Inde richtlijnen voor de Consent Mode van Site Kit wordt gewaarschuwd dat het inschakelen van de Consent Mode in Site Kit naast de Consent Mode-functie van een andere plug-in tot conflicten kan leiden. Dezelfde algemene regel geldt ook elders. Dat een plug-in compatibel is met GTM, betekent niet dat de standaardtracking ervan ingeschakeld moet blijven.

Conflicten tussen plug-ins zijn maar één manier waarop je trackingconfiguratie achteruitgaat zonder dat iemand het merkt. In onze gids over hoe veerkrachtig je trackingconfiguratie is, leggen we de rest uit.

Complianz, CookieYes en Real Cookie Banner kunnen de toestemmingsopties van WordPress koppelen aan Google Consent Mode v2. De precieze instellingen en vereisten per abonnement verschillen, dus houd je bij de implementatie aan de actuele documentatie van de CMP.

Consent Mode v2 omvat ad_storage, analytics_storage, ad_user_data en ad_personalization. In de door Google beschreven tagging-workflow voegt de webcontainer toestemmingsparameters toe en interpreteert de GA4-client van de servercontainer deze. Een directe WordPress-webhook neemt die status niet over. Hij moet de toestemmingsstatus bevatten die bij de verzending is vastgelegd, en elke niet-Google-servertag heeft regels nodig die deze status beoordelen voordat de tag wordt geactiveerd.

Het CMP blijft de bron van de keuze van de bezoeker. sGTM is geen manier om toestemming te omzeilen. In deze handleiding over Consent Mode v2 wordt uitgelegd hoe de signalen bij een servercontainer terechtkomen en waar tags van andere aanbieders dan Google extra voorwaarden nodig hebben.

Leads die nooit via een WordPress-formulier binnenkomen

Het formulier is maar één manier om bij een dienstverlenend bedrijf terecht te komen. Telefoontjes, WhatsApp-chats, Calendly-afspraken en websitechats kunnen leads opleveren zonder dat er een WordPress-formulier wordt ingevuld.

Elke bron heeft zijn eigen bevestigde succesevent nodig. Een telefoonplatform kan na een gekwalificeerd gesprek een webhook versturen. Calendly kan de backend op de hoogte brengen zodra er een boeking is aangemaakt. Een CRM zoals HubSpot of een chatplatform kan melden wanneer een gesprek een lead wordt. Een klik op een telefoon- of WhatsApp-link geeft alleen aan dat iemand contact wil leggen, dus die moet niet automatisch even zwaar wegen als een afgerond telefoongesprek of een gekwalificeerde chat.

Binnen sGTM kunnen deze events volgens één naamgevingsschema worden geregistreerd, ook al komen ze uit verschillende systemen. De payload bevat de bron, het externe record-ID, het tijdstip van het event, de toestemmingsstatus en de beschikbare attributie-ID’s. Een extern boekings-ID of gespreks-ID kan hetzelfde doel dienen bij het verwijderen van dubbele gegevens als een WordPress-formulier-ID.

Waar TAGGRS van pas komt

TAGGRS host de GTM-container aan de server-side en biedt een Data Client die backend-webhooks kan ontvangen op toegestane paden. Bij een WordPress-leadconfiguratie kan een plug-in-hook die de vereiste successtatus bevestigt, het event naar dat eindpunt sturen. Je containerconfiguratie koppelt dit aan GA4, Google Ads, Meta of een andere bestemming, en een latere CRM-webhook kan de gekwalificeerde of geconverteerde lead versturen met behulp van de opgeslagen klik-ID en dezelfde lead-sleutel.

Met de webhook-tester kun je een synthetische payload controleren voordat de live-tags deze ontvangen. TAGGRS biedt ook een sGTM-sjabloon voor leadgeneratie en een handleiding voor offline conversies, zodat je later resultaten in je CRM kunt zien.

Conclusie: Bepaal welk record mag meetellen

Voordat de implementatie wordt goedgekeurd, moet één vraag precies worden beantwoord: welk backend-record bewijst dat er een geaccepteerde lead bestaat? De volgende vraag is welke latere CRM-fase bepalend moet zijn voor advertentiebiedingen.

Als geen van beide antwoorden vastligt, is het trackingontwerp nog niet klaar. Een webhook kan heel betrouwbaar de verkeerde event doorgeven.

De plug-ins, het CRM en de formulieren verschillen per site, maar het principe blijft hetzelfde: één backend-record bepaalt of er een lead is en in een latere fase wordt bepaald waarop er wordt geboden.

Schrijf die twee antwoorden even op, en de rest is een kwestie van instellen – je kunt beginnen met een gratis TAGGRS-account en je eerste lead-event vanuit de backend versturen.

Veelgestelde vragen over leadtracking server-side in WordPress

Waarom laat GA4 meer leads zien dan mijn CRM?

Meestal komt dat doordat de browser klikken op de verzendknop telt in plaats van daadwerkelijk geaccepteerde invoer. Een klik wordt al geregistreerd voordat validatie, spamfiltering en opslag hebben plaatsgevonden, waardoor mislukte, dubbele en spam-inzendingen allemaal worden meegeteld. Door in plaats daarvan vanuit het backend-record te triggeren, telt GA4 wat je bedrijf daadwerkelijk heeft ontvangen. Een klein verschil tussen tools is normaal, ongeacht je instellingen.

Kan server-side GTM een WordPress-formulier volgen zonder JavaScript in de browser?

Ja, als de formulierplugin een backend-hook aanbiedt die de vereiste successtatus bevestigt. WordPress kan dan een geauthenticeerde webhook rechtstreeks naar het sGTM-eindpunt sturen. JavaScript in de browser kan eerder nog steeds nodig zijn om goedgekeurde klik-ID’s of andere sessie-attributie vast te leggen en deze bij de invoer op te slaan.

Wat is het beste GA4-event voor een WordPress-formulier?

GA4 raadt aan om `generate_lead` te gebruiken voor een gegenereerde lead. Gebruik een aparte gebeurtenis, zoals `qualified_lead`, voor een latere CRM-fase. Eventnamen alleen zorgen niet voor een betere trackingkwaliteit, dus de trigger moet nog steeds voortkomen uit een bevestigde registratie of een verandering in de bedrijfsfase.

Hoe kan ik een lead ontdubbelen zonder transactie-ID?

Gebruik de entry-ID van de formulierplugin, eventueel in combinatie met de site- of formulier-ID als dat nodig is. Als de plugin geen entries opslaat, maak dan na een bevestigde succesvolle verwerking één vaste lead-ID aan in de backend. Stuur dezelfde waarde via zowel de browser als de server. Als de browser er geen toegang toe heeft, gebruik dan één serverevent in plaats van twee events die niet aan elkaar gekoppeld kunnen worden.

Over de auteur

Recent gepubliceerd

magnifiercrossmenu linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram