Tracking in an embedded form (iFrame)

If you embed your form into your website using an iFrame and want to track conversions (Google Tag Manager, Facebook Pixel, Etracker, etc.), the process is slightly different from that of a standard website form. Here are the most frequently asked questions.


Where does the tracking script run — on my page or in the iFrame?

Both are possible — and both approaches have different strengths:

  • Tracking on your page (outside the iFrame): tracks the page view of the form page, but does not automatically track the submission of the form (because the submission happens within the iFrame).
  • Tracking within the form (inside the iFrame, via propform): reliably tracks the submission because the code runs directly with the form.

Recommendation: Place tracking scripts directly within the propform form. You can find the fields under Form Settings → Tracking:

  • Google Tag Manager (Container ID)
  • Facebook Pixel (ID)
  • Etracker (Account ID)
  • Universal Custom HTML Snippet

Track conversion after successful submission

propform fires a custom event after successful submission, which your GTM container can listen for. Example trigger in GTM:

  • Trigger type: Custom Event
  • Event name: propform_submitted

You can then use this to trigger, for example, a Google Ads conversion tag or a pixel event.


Cross-Origin: My website tracking does not detect the iFrame submission

This is normal and cannot be avoided — by default, browsers block data read access between frames with different domains.

Workarounds:

  • Embed tracking directly in the form (see above) — the cleanest solution
  • If you really want to respond to the submission from within your website: propform can send an postMessage notification to the parent page on request. Drop us a quick line at hello@propform.io, and we’ll enable this for your form.

Passing URL parameters from the parent page to the iFrame

If your website URL has its own URL parameters (e.g. ?region=berlin&kampagne=spring2026) and you want to pre-fill these in the embedded form, propform handles this automatically:

  • The parameters from the parent URL are passed to the iFrame
  • In the form, they function like regular URL parameters (e.g. ?address[region]=berlin fills the address region field)

Prerequisites:

  • The relevant fields in the propform form have “Allow pre-filling with URL parameters” enabled
  • The parameter names follow the propform convention (?modul[feld]=wert)

Use case: Landing page with ?region=berlin → embedded enquiry form automatically pre-fills the region field → user does not need to select it again.

> 💡 If the data transfer isn’t working in your setup (older embed code, custom wrapper script): send a quick email to hello@propform.io — we’ll check your iFrame snippet.


Cookie Consent / GDPR

> ⚠️ Important: As soon as you activate tracking, you, as the form operator, are responsible for GDPR compliance. This means: Before setting tracking cookies, the visitor’s consent must be obtained.

Find out more in the Tracking chapter and the Privacy chapter.


Webhooks as an alternative to browser tracking

If you want to respond on the server side to every successful submission (e.g. to count conversions in your CRM statistics), use webhooks instead — this is more reliable than browser tracking because it does not depend on ad blockers or cookie consent.

📖 Read more: Webhooks