HubSpot form as a Google Ads conversion in GTM: 340 sites
Fire the Google Ads conversion on HubSpot's success callback (onFormSubmitted), pushed to the dataLayer by a small listener, or on a thank-you page only form senders reach. Not on the button click. On 7 Nov 2026 we read the public GTM containers of the 340 sites in our study that run HubSpot and have a readable Google Ads conversion tag. 110 (32.4%) fire one on a HubSpot success event. 100 (29.4%) fire one on a click.
Check this on your own site
Free. Public tags only. Your result opens on the scan page.
Why is a HubSpot form hard to track in GTM?
HubSpot's embed sends the form with its own script. GTM's built-in Form Submission trigger listens for the browser's submit event, so it can miss the form or fire before HubSpot accepts it. HubSpot does announce a finished form: the embed posts a message with onFormSubmitted after the data is sent, and the newer forms fire hs-form-event:on-submission:success (HubSpot developer docs, form events). A short listener turns that into a dataLayer event, and the Ads tag fires on it.
The other callback, onFormSubmit, runs just before the data is sent. A conversion on it counts tries, not sent forms.
What do HubSpot sites fire Ads conversions on?
485 of the 1,727 study sites load HubSpot. 351 of them fire Google Ads conversions, and on 7 Nov we could read a labelled Ads conversion tag and its triggers in the GTM containers of 340. They hold 2,135 Ads conversion triggers in all.
| Trigger | Sites | Counts a sent form? |
|---|---|---|
HubSpot success event (hubspot-form-success and similar) | 110 (32.4%) | Yes |
HubSpot submit event (hubspot-form-submit, before it is sent) | 17 (5.0%) | Tries, not sent forms |
| Thank-you URL | 124 (36.5%) | Yes, if only senders reach it |
| Other form-named dataLayer event | 90 (26.5%) | Depends when it is pushed |
| GTM Form Submission trigger | 73 (21.5%) | Only with Check Validation, and it can miss HubSpot embeds |
| Button or link click | 100 (29.4%) | No, the click comes first |
| Page view, not a thank-you page | 90 (26.5%) | No, it counts a visit |
| HubSpot meeting booked | 10 (2.9%) | Yes, for meetings |
Two patterns stand out. 60 sites fire an Ads conversion on a click and have no HubSpot form event at all, so the click is likely their stand-in for the form. And 36 sites fire one on the HubSpot success event and another on a thank-you URL. If both fire for the same form, one lead counts twice. We can't tell from outside whether it is the same form, so check yours (duplicate conversions).
How do I check my own setup in 10 minutes?
- In GTM, list the Google Ads Conversion Tracking tags and open each trigger. Write down which ones are a HubSpot custom event, a Form Submission trigger, a click or a page view.
- Open GTM Preview on a page with your HubSpot form. Leave a required field empty and press submit. Nothing that counts a lead should fire. A Form Submission trigger without Check Validation fires here (Tag Manager Help).
- Send one real test lead. In Preview, the HubSpot success event should appear once and the Ads tag should fire once. Two Ads conversions for one form means a second trigger, often the thank-you page.
- In Google Ads, Goals, Conversions, check which of these actions are primary. That decides what bidding learns from, and we can't see it from outside.
How do I set it up so it counts sent forms only?
- Add a listener: a Custom HTML tag on All Pages that listens for HubSpot's
onFormSubmittedmessage (orhs-form-event:on-submission:successon new forms) and pusheshubspot-form-successwith the form ID to the dataLayer. - Fire the Ads conversion on a Custom Event trigger for
hubspot-form-success. Narrow it by form ID if a newsletter form should not count as a lead. - Or use a thank-you page set as the form's redirect, with a page-path trigger on that exact URL. Pick one of the two per form, not both.
- Keep the click as a GA4 event if you want it. Take it out of Google Ads, or make it secondary. More in click conversions in Google Ads.
- Native Webflow form instead of HubSpot? Fire on Webflow's success message: Webflow form conversions.
What can't we see from outside?
- Google Ads primary or secondary status. It is set in the Ads account, so a click conversion may already be secondary. Every number here counts tags in GTM, not conversions Google Ads used.
- Listeners in the site's own code and conversions sent from HubSpot to Google Ads directly (HubSpot's ads integration or offline imports). Offline imports are a separate path.
- When an event is pushed. We see the event name. A form-named event can be pushed on submit or on success.
- The sample: our 1,727-site study, built from lists, not random.
FAQ
Should the Google Ads conversion fire when someone clicks the HubSpot form button?
No. The click comes before HubSpot accepts the form, so failed and abandoned tries count. Fire it on HubSpot's onFormSubmitted callback or on a thank-you page.
Does the free Fireshift scan check HubSpot form conversions?
It reads every Google Ads conversion in your public GTM container and flags the ones on a click or a page view. The HubSpot listener check in this guide is a manual one.
Run the free scan on your site.
Fireshift reads what your site tells Google Ads, GA4 and Meta from the outside. No install, takes seconds.