Unbounce and ad platforms disagree
Unbounce counts its own conversions, but Google Ads and Meta only count what your tags send. If tags fire in the wrong place, the numbers drift apart and nobody knows which to trust.
This is for marketers and agencies who send Google and Meta traffic to Unbounce landing pages and need ad platforms to count the same leads Unbounce does. Unbounce has its own conversion goals, Script Manager, confirmation dialogs and popups, and each affects where tracking code runs. I set up GTM so every form, click and booking is tracked once, and pass the lead data on for offline and server-side conversions.
Proper Unbounce tracking means installing GTM through Script Manager on pages, popups and form confirmation dialogs, firing the lead conversion only after a successful submission, using hidden fields to store gclid and UTMs, and sending form webhooks to server-side GTM or your CRM so Meta CAPI and Google Ads offline conversions get the same leads Unbounce reports.
The events I set up on Unbounce, and where each one is sent.
Unbounce counts its own conversions, but Google Ads and Meta only count what your tags send. If tags fire in the wrong place, the numbers drift apart and nobody knows which to trust.
The default after a form submit is a confirmation dialog, not a new page. Scripts set to run only on pages never run there, and GTM's built-in form trigger often doesn't see Unbounce forms.
Popups and sticky bars are their own Unbounce assets with their own forms. If Script Manager isn't set to include them, leads from them aren't tracked at all.
With A/B variants and several pages on one domain, a broad trigger can fire the same conversion on every page, or two conversion actions can count one lead.
Leads are emailed or pushed to a CRM without the gclid or UTMs. Later you can't tell Google Ads which leads became customers.
| Event | When it fires | Sent to |
|---|---|---|
generate_lead / Lead | Form submitted and confirmation dialog or thank-you page shown | GA4, Google Ads, Meta Pixel + CAPI |
popup_lead | Form inside a popup or sticky bar submitted | GA4, Google Ads, Meta Pixel + CAPI |
contact_click | Click on a tel:, mailto: or WhatsApp button | GA4, Google Ads |
book_appointment / Schedule | Embedded scheduler confirms a booking | GA4, Google Ads, Meta |
cta_click | Click on a button that goes to your main site or checkout | GA4 |
qualified_lead (offline) | Lead marked qualified or won in your CRM | Google Ads, Meta CAPI |
I review Script Manager, page-level scripts, form settings and conversion goals, and compare Unbounce's lead counts with Google Ads and Meta.
We agree which forms and clicks count as conversions, which should be primary in Google Ads, and where lead data should go.
I set up GTM, success-only lead events, hidden fields and, where it helps, form webhooks into server-side GTM.
I submit test leads on each page, variant and popup, and confirm each one is counted once in every platform.
You get an event map and a short checklist for new pages, so tracking keeps working when you clone and launch.
An Unbounce form either shows a confirmation dialog or sends the visitor to a URL after submission. Both work for tracking, as long as the code runs in the right place. With Script Manager, I set GTM to load on form confirmation dialogs as well as pages, then fire the lead conversion from the dialog or thank-you page, so only completed submissions count.
If you clone pages often, this matters even more. A setup at the domain level carries over to new pages automatically, while scripts pasted into one page's settings are easy to forget.
Unbounce hidden fields can be filled from URL parameters, which makes them a simple way to save the gclid, fbclid and UTMs with every lead. Those fields then travel with the lead to your CRM, email tool or webhook.
With that data in place, leads that turn into customers can be uploaded back to Google Ads as offline conversions, and the form webhook can feed server-side GTM so Meta gets a Conversions API copy of each lead. Bidding then learns from leads that matter, not just from form fills.
Add GTM in Script Manager for your Unbounce domain and set it to run on pages, popups and form confirmation dialogs as needed. Avoid also pasting it into individual pages, or it will load twice.
The conversion tag usually isn't running where the submission finishes, such as a confirmation dialog not covered by your scripts. Fire the conversion on the dialog or thank-you page, then test a real submission.
Unbounce counts conversions with its own tracking, while GA4 depends on your tags, consent and ad blockers. Some gap is normal, but a large one usually means a page, popup or dialog isn't tracked.
Not directly. I send Unbounce form webhooks to server-side GTM, which forwards them to Meta CAPI with hashed customer data and the same event ID as the browser lead.
Add a hidden field named to match the URL parameter, such as gclid, so Unbounce fills it from the ad click. For visitors who move between pages first, I store the value in a cookie and fill the field from that.

The checklist I use to build and review Google Ads landing pages: message match, speed, mobile, forms, trust signals and conversion tracking.
A step-by-step guide to Google Ads conversion tracking with GTM: conversion actions, the Google tag, conversion linker, values, transaction IDs and testing.
How to capture GCLID, store it in your CRM and send qualified leads and closed sales back to Google Ads so Smart Bidding optimises for real revenue.
Get a free audit of your tracking and ad account. Usually replies within 1–2 hours.