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.
Both are possible — and both approaches have different strengths:
Recommendation: Place tracking scripts directly within the propform form. You can find the fields under Form Settings → Tracking:
After a successful submission, the visitor lands on the thank-you page — there, propform pushes a custom event into the dataLayer, which your GTM container can listen for. Example trigger in GTM:
onload_thank_you_pageYou can then use this to trigger, for example, a Google Ads conversion tag or a Meta Pixel event (fbq('track', 'Lead')).
⚠️ There is also a
form_submitevent — but it fires as soon as the submit button is clicked, even if the submission fails due to a required field. Therefore, useonload_thank_you_pagefor conversions. All events at a glance: Tracking chapter.
This is normal and cannot be avoided — by default, browsers block data read access between frames with different domains.
Workarounds:
form_onload, form_start_input, form_submit, form_abort, form_next_step, form_previous_step) to the parent page via postMessage as a JSON string:// On the parent page (your website):
window.addEventListener('message', function (e) {
try {
var data = JSON.parse(e.data);
if (data.event === 'form_submit') {
// e.g. trigger your own tracking
}
} catch (err) { /* ignore unrelated messages */ }
});
💡 Note:
form_submitfires when the submit button is clicked. The thank-you page event (onload_thank_you_page) only runs inside the iFrame in thedataLayer— so reliable conversion measurement belongs in the form itself (GTM/Pixel in the form settings).
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:
?address[region]=berlin fills the address region field)Prerequisites:
?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.
> ⚠️ 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.
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