DEV Community

Tanguy De Keyzer
Tanguy De Keyzer

Posted on

CRO voor developers: waarom je conversie meet met events, niet met pageviews

Als developer word je op een gegeven moment gevraagd om "de conversie te meten". Meestal vertaalt iemand dat naar: zet Google Analytics erop en klaar. Dat is precies waar het misloopt.

Een pageview vertelt je dat iemand een bedanktpagina heeft gezien. Het vertelt je niks over hoe die persoon daar kwam, waar honderd anderen afhaakten, of welk formulierveld de boosdoener was. Voor echte conversie-optimalisatie heb je gebeurtenissen nodig, geen paginabezoeken. En dat is precies het soort werk dat op het bord van de developer belandt.

Hieronder de aanpak die ik in B2B-projecten aanhoud. Kort, technisch, zonder marketingpraat.

Denk in een funnel van events, niet in pagina's

Het eerste dat je doet is de conversietrechter opdelen in meetbare stappen. Voor een typische B2B-demo-aanvraag ziet dat er zo uit:

// pseudocode, maakt niet uit welk platform
track('landing_view',      { source: utm_source });
track('form_start',        { form_id: 'demo' });   // eerste veld gefocust
track('form_field_error',  { field: 'phone' });     // validatie faalt
track('form_submit',       { form_id: 'demo' });
track('lead_qualified',    { value: dealSize });     // pas als sales bevestigt
Enter fullscreen mode Exit fullscreen mode

Nu kun je iets zeggen wat een pageview nooit kan: "42% start het formulier, maar slechts 18% verstuurt het, en 60% van de afhakers struikelt over het telefoonveld." Dat is een concrete bug om op te lossen, geen vaag gevoel.

Bij een SaaS-klant vonden we op precies deze manier dat het veld "btw-nummer" verplicht stond en internationale bezoekers wegjoeg. Eén required weghalen, en de formulier-voltooiing steeg van 18% naar 27%. Dat is de kracht van meten op veldniveau.

De bedanktpagina is een slechte succesmeter

Veel teams meten conversie op het laden van /bedankt. Probleem: single-page apps herladen die pagina soms niet, adblockers slikken je script op, en een dubbele submit telt dubbel.

Meet daarom op de server waar het kan. Een webhook of server-side event op het moment dat de lead in je CRM landt, is betrouwbaarder dan client-side vuurwerk. Google's eigen richtlijnen voor nuttige content hameren er terecht op dat je site voor mensen gebouwd moet zijn, niet voor scripts, en datzelfde geldt voor je meting: leun niet op fragiele client-side hacks als het echt telt.

Praktisch: stuur het lead_qualified event pas af nadat je backend de submit heeft gevalideerd en opgeslagen. Dan meet je echte leads, geen bots en geen dubbeltellingen.

Performance is een conversieprobleem dat jij bezit

Marketeers kunnen veel dingen, maar je Largest Contentful Paint fixen is niet een daarvan. Dat ben jij.

De relatie tussen laadsnelheid en conversie is goed gedocumenteerd, en Google's uitleg over Core Web Vitals geeft je meteen de metrics die ertoe doen: LCP, INP en CLS. In B2B is CLS een stille moordenaar. Een knop die verspringt terwijl een lettertype of banner inlaadt, zorgt voor misklikken en frustratie precies op het moment dat iemand wil converteren.

Concreet dat het meeste opleverde in mijn projecten:

  • font-display: swap en het preloaden van de hero-font, tegen tekst die te laat verschijnt
  • expliciete width/height op afbeeldingen om layout shift te doden
  • zware chatwidgets en trackers lazy loaden na de eerste interactie

Bij één klant zakte de LCP van 4,1s naar 1,6s louter door een 12 MB hero-video te vervangen door een geoptimaliseerde afbeelding. De formulier-starts stegen mee. Snelheid is geen luxe, het is de eerste indruk.

Reken je conversieratio juist uit

Voordat je gaat optimaliseren moet je nulmeting kloppen. En de fout die ik het vaakst zie is een verkeerde noemer.

Als je alle sessies in de deler stopt, inclusief bots, interne IP's en verkeer naar irrelevante blogpagina's, ziet je ratio er kunstmatig laag uit en jaag je verbeteringen na die er niet zijn. Filter interne en bot-sessies eruit en reken per relevant segment. Conversieratio Berekenen zet netjes op een rij hoe je die berekening correct opzet, handig om even naast je eigen dashboard te leggen.

Een tweede tip: bewaar de ruwe events, niet alleen de aggregaties. Als je over drie maanden een nieuwe vraag hebt ("hoeveel mobiele gebruikers haakten af op stap 2?") wil je die data nog kunnen bevragen.

Wat je met deze data doet

Meten is de helft. De andere helft is er iets mee doen, en daar zit de winst.

Sorteer je funnel-stappen op grootste uitval. Begin bovenaan die lijst. Één stap tegelijk fixen, dan opnieuw meten. Geen tien wijzigingen door elkaar, want dan weet je nooit wat werkte.

En zodra je genoeg volume hebt (denk aan honderden conversies per variant), kun je gaan echte experimenten beginnen. Een korte introductie tot A/B-testen volstaat om de valkuilen rond steekproefgrootte en significantie te snappen voor je aan de knoppen draait. Tot die tijd levert het dichten van gemeten lekken meer op dan testen.

Waar de developer stopt en de strateeg begint

Je kunt de perfecte meetopzet bouwen en toch geen enkele extra lead krijgen. Data zonder interpretatie is gewoon logs.

Op een bepaald punt heb je iemand nodig die naar die funnel kijkt en zegt: "dit veld schrappen, deze belofte bovenaan zetten, dit formulier opsplitsen." Dat samenspel tussen schone meting en scherpe keuzes is waar de conversie echt stijgt. Bij Customer Impact zit die combinatie in onze hulp bij conversie-optimalisatie: de techniek om alles zuiver te meten, plus de strategie om te weten waar je moet ingrijpen.

Begin vandaag klein. Vervang je pageview-conversie door drie echte events: form_start, form_submit, lead_qualified. Binnen een week zie je een lek dat je nooit eerder zag. En dat lek dichten is meer waard dan het duurste testplatform.

Top comments (0)