Meet in Google Analytics en Google Tag Manager precies wat bezoekers in de widget doen: welke aanvraagmodule ze gebruiken, of ze een aanvraag voltooien, én waar ze afhaken als ze dat niet doen.
Twee dingen die vaak door elkaar lopen:
Bij elk belangrijk moment vuurt de widget twee dingen tegelijk af: een
JavaScript-CustomEvent op window (voor wie zonder GTM werkt) én een push naar de
dataLayer (voor Google Tag Manager). Jij kiest welke je gebruikt.
Een bezoeker doorloopt een traject. Elke aanvraagmodule kan uit één of meerdere stappen bestaan. De widget meldt elke stap, zodat je een complete trechter kunt bouwen.
| Event | Wanneer | Belangrijkste velden |
|---|---|---|
constell_widget_opened |
Widget gaat open | widgetSessionId, venue |
constell_module_started |
Bezoeker kiest een module | module |
constell_step_viewed |
Bij elke stap/pagina in de module | module, stepId,
stepIndex, stepName, totalSteps |
constell_request_submitted |
Succespagina — aanvraag voltooid | module, requestId,
eventType, guestAmount, budget |
constell_widget_closed |
Widget sluit | module, lastStepId,
lastStepIndex, completed |
constell_widget_closed): true als de bezoeker de succespagina haalde,
anders false. Een false met een lastStepIndex hoger dan 1
betekent: afgehaakt bij lastStepId.Elk event bevat het veld module met een vaste slug per
module:
| Module | Slug |
|---|---|
| Offerte contactformulier | contact_form |
| Online host (geleide offerteaanvraag) | quote |
| Zelf offerte maken | self_quote |
| Arrangementen | packages |
| Afspraak maken | appointment |
| Private dining | private_dining |
Let op: de module "Private dining" is gereserveerd maar nog niet actief in de widget. De overige vijf modules vuren wel events af.
Voor een conversie kijk je naar
constell_request_submitted en lees je module uit. Zo meet je per module een
eigen conversie — bijvoorbeeld "afspraken" los van "arrangementen".
Omdat de widget bij elke stap een
constell_step_viewed afvuurt, weet je altijd de laatst bereikte stap van een bezoeker. Wie
de succespagina niet haalt, is afgehaakt op die laatste stap. Je leest dit op twee manieren:
stepIndex) en
splits uit op module. GA4 laat per stap zien hoeveel bezoekers doorgaan en hoeveel
afvallen.constell_widget_closed met
completed: false. Het veld lastStepId is dan letterlijk het afhaakpunt.Een afhaak-event kan alleen vertrekken
zolang de pagina nog open is. Sluit iemand de browser-tab abrupt, dan komt het er soms niet meer
doorheen. De constell_step_viewed-events vormen daarom de betrouwbare basis (die staan al
vast op het moment dat de stap laadde); het afhaak-event is de directe extra.
De widget pusht alles naar de dataLayer. Per event maak je in
GTM een Custom Event trigger.
constell_request_submitted → GA4-event generate_lead met parameters
module, request_id, event_type. Markeer dit in GA4 als
key event (conversie).constell_step_viewed (parameters
module, step_id, step_index, step_name) en op
constell_widget_closed (parameters module, last_step_id,
completed).Maak hiervoor Data Layer Variables aan: module,
step_id, step_index, step_name, request_id,
last_step_id, completed.
Werk je rechtstreeks met GA4, luister dan op de CustomEvents
en stuur ze door:
<script>
// Conversie
window.addEventListener('constell_request_submitted', function (e) {
gtag('event', 'generate_lead', {
module: e.detail.module,
transaction_id: e.detail.requestId, // voorkomt dubbeltellingen
event_type: e.detail.eventType || undefined,
value: e.detail.budget || undefined,
currency: 'EUR'
});
});
// Trechterstappen
window.addEventListener('constell_step_viewed', function (e) {
gtag('event', 'constell_step', {
module: e.detail.module,
step_id: e.detail.stepId,
step_index: e.detail.stepIndex,
step_name: e.detail.stepName
});
});
// Afhaakpunt
window.addEventListener('constell_widget_closed', function (e) {
if (!e.detail.completed) {
gtag('event', 'constell_abandon', {
module: e.detail.module,
last_step_id: e.detail.lastStepId,
last_step_index: e.detail.lastStepIndex
});
}
});
</script>
constell_step /
constell_step_viewed event, geordend op step_index.constell_request_submitted toe als laatste stap
(de conversie).module als uitsplitsing
(breakdown) om per aanvraagmodule te vergelijken.Plak dit in de browserconsole op een pagina met de widget en doe een test-aanvraag:
['constell_widget_opened','constell_module_started','constell_step_viewed',
'constell_request_submitted','constell_widget_closed']
.forEach(function (n) {
window.addEventListener(n, function (e) { console.log(n, e.detail); });
});
Bij een voltooide aanvraag zie je de reeks: openen → module gestart →
één step_viewed per stap → request_submitted → widget_closed
(completed: true). Breek je af, dan zie je dezelfde reeks tot een bepaalde stap, gevolgd door
widget_closed met completed: false en het afhaakpunt in lastStepId.
In GTM controleer je hetzelfde via de Preview-modus; in GA4 via DebugView.
Lukt het niet of zie je geen events? Mail support@constell.com met de venue-UUID erbij.