How it works
The FMV widget emits structured analytics events as the user progresses through the Builder. Events travel from the widget iframe tofmv.js on your page via postMessage. From there, they are automatically pushed to window.dataLayer (if it exists) for Google Tag Manager, and emitted through the FMV.on('track:...') JavaScript listener API for custom integrations.
Events contain only Builder metadata — step names, counts, and totals. No personally identifiable information (PII) is included in any event payload.
Available events
| Event name | Trigger | Data fields |
|---|---|---|
fmv_started | Builder loads | builderId |
fmv_step_completed | User clicks Next | builderId, stepIndex, stepName |
fmv_summary_viewed | Summary page mounts | builderId, itemCount, totalPrice |
fmv_quote_submitted | Quote API returns success | builderId, quoteId |
Google Tag Manager (dataLayer)
Ifwindow.dataLayer exists on your page when fmv.js loads, events are automatically pushed — no FMV configuration needed.
Each push follows this shape:
GTM setup
- Create a Custom Event trigger — set the event name to the FMV event you want to capture (e.g.
fmv_step_completed). - Create Data Layer Variables — map each field under the
fmvobject (e.g.fmv.builderId,fmv.stepIndex). - Attach to your tag — wire the trigger and variables to your GA4, Meta, or other marketing tag.
JavaScript listener
UseFMV.on() to listen for events directly in JavaScript:
Naming convention: dataLayer events use the
fmv_ prefix (e.g. fmv_step_completed), while JavaScript listeners use the track: prefix without fmv_ (e.g. track:step_completed).Wix limitation
Privacy
Analytics events stay entirely on your page — FMV does not send event data to any third party. For more on how FMV handles data, see Data & Privacy.