Skip to main content
Menu
On this page

Analytics pixels

Track form views and accepted submissions in the host app without sending answer data to an analytics vendor.

Fillo doesn't inject GA4, Meta Pixel, or Google Tag Manager scripts from a form setting. Track product events in your host app through renderer callbacks or native DOM events.

Track an accepted submission in React

onSubmitted runs after Fillo accepts the response. Push a minimal event to the analytics system your app has already initialized.

jsx
<FilloForm
  formId="onboarding"
  onSubmitted={(responseId) => {
    window.dataLayer = window.dataLayer || [];
    window.dataLayer.push({
      event: "fillo_form_submitted",
      form_id: "onboarding",
      response_id: responseId,
    });
  }}
/>

This example uses the conventional Google Tag Manager data layer; configure the matching custom-event trigger in your own GTM container. For another vendor, call its already-loaded client in the same callback.

Track with the DOM renderer

The <fillo-form> custom element emits native fillo-submit and fillo-error events:

js
const form = document.querySelector("fillo-form");

form.addEventListener("fillo-submit", (event) => {
  window.dataLayer = window.dataLayer || [];
  window.dataLayer.push({
    event: "fillo_form_submitted",
    form_id: "onboarding",
    response_id: event.detail.responseId,
  });
});

For a view event, use the host route's page-view or visibility tracking. Fillo's own session and funnel analytics power the workspace Insights page — they aren't a public pixel-forwarding API.

Event contract

EventSendDon't send
Form viewedStable form handle or public IDLabels, hidden values, prefilled personal data
Form submittedForm ID and optional response IDAnswers, email, phone, signature, file URL
Form errorA safe error categoryRaw server body, secret, or respondent text

Your host app controls when analytics code loads, how consent is collected, and which vendor receives the event. Browser extensions, consent choices, network policy, and vendor quotas can block tracking without affecting Fillo response storage.

A pixel event isn't proof that Fillo stored a response. For accepted-response analytics, use onSubmitted rather than a submit-button click. For server-side business work that has to be reliable, use signed webhooks.

  • Responses and insights: Use Fillo's form activity and funnel analysis.
  • Custom UI: Attach host-owned events to a headless experience.
  • Webhooks: Run durable server-side work after response storage.

Updated

Was this page helpful?