Instapage Form GTM Event Listener
Track Instapage landing page form submissions in Google Tag Manager. Fire GA4, Google Ads, and Meta Pixel on formSubmissionSuccess using the instapageFormSubmitSuccess callback.
Event fired
formSubmissionSuccessInstapage Form
Overview
Instapage is a landing page builder popular with PPC advertisers. It exposes a global callback function window.instapageFormSubmitSuccess that fires after a successful form submission. This listener defines that callback to push a formSubmissionSuccess event to the GTM dataLayer.
Event fired: formSubmissionSuccess
Limitation: May not work on all Instapage forms, particularly when multiple forms exist on one page. In that case, use GTM's built-in Form Trigger.
Common Use Cases
- Track PPC landing page form conversions
- Fire Google Ads conversion tags on Instapage form submission
- Import Instapage conversions into GA4 for attribution
- Build retargeting audiences from Instapage form submitters
Installation
<!-- GTM Custom HTML Tag: Instapage Form Listener -->
<script>
window.instapageFormSubmitSuccess = function(form) {
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': 'formSubmissionSuccess'
});
console.log('Instapage form submitted');
};
</script>Fire on: DOM Ready. Must be placed before Instapage's own scripts load.
Data Layer Output
{
"event": "formSubmissionSuccess"
}Trigger Configuration
Trigger Type: Custom Event
Event Name: formSubmissionSuccess
Note: If you also use Gravity Forms with
formSubmissionSuccess, differentiate by using page URL conditions in the trigger.
GA4 Mapping
| GA4 Event | Parameter | Value |
|---|---|---|
generate_lead | method | "instapage" |
generate_lead | page_location | Built-in Page URL |
Debugging
| Problem | Cause | Fix |
|---|---|---|
| Callback not called | Multiple forms on page | Use GTM's Form Submit trigger with .instapage-form selector |
| Fires before submission | Callback position | Place listener tag before Instapage initialization |
Privacy Compliance Tips
Use trigger conditions to limit tracking to specific pages (e.g., /landing-*), and add consent checks before pushing to the dataLayer.