Typeform Google Ads Conversion Tracking Guide (2023)
Other tutorials don’t work. You read that right – other tutorials for tracking Typeform submits as Google Ads conversions (or any Typeform conversion) do not work. They might look like they do, but they send conversionss from the wrong domain which doesn’t have the Google Ads cookie. Read on…
This is the only working tutorial for Typeform conversion tracking
I can’t emphasise this enough. Other tutorials don’t work. The built-in Typeform Google Tag Manager integration doesn’t work.
Simply, the reason is that Typeform is inside an iFrame, so it's a window to another website. And that other website doesn't share the Google Ads Conversion Linker cookie. Google Ads conversion cookie is only stored on your website, not with Typeform.
Other tutorials might (kind of) work with Google Analytics – if you make a crazy complex setup using Typeforms hidden fields and inputting UTM codes there. But they do not work for Google Ads.
Repeat after me: ”Other tutorials for tracking Typeform submits as Google Ads conversions do not work. On January 12th 2023, this is the only method that works for tracking Typeform Conversions in Google Analytics. Others lead to tears and wasted Google Ads budget”
I hope that grabbed your attention.
This post will explain why other methods do not work. I’ll also explain the only working method for Typeform & Google Ads conversion tracking –with the help of Google Tag Manager.
Google Ads conversion tracking - Why you need it
If you’re running Google Ads, and one of the important actions is someone filling the Typeform on your website, it’s absolutely must that you keep track of each successful Typeform form submit, and send that information back to Google. The reason is, you don’t want visitors, you want conversions.
You don’t care if 1000 000 000 people visit your site if none of them fill your Typeform. On the other hand, if just 500 people visit your website but everyone fills your Typeform you have a huge business.
Without conversion tracking, and telling Google Ads about each Typeform submit and which Google Ad campaign and specific Google Ad lead to that conversions, you are wasting your Google Ads budget.
It’s like shooting a gun blindfolded – you have no idea know if you’re hitting or missing every shot.
Before any Google Ads campaign
Before running any Google Ads, there are two things you must do.
A) You must have conversion tracking in place. Whether it’s e-commerce sale, or in this case, Typeform form submi
B) You must do a keyword research to find out what people are really searching for.
Without those two, you are 100% sure to waste your money.
The challenge with Typeform Google Ads conversion tracking
The problem is, Typeform is another website. It looks like it’s added to your website, but it’s only a “window” to another website: https://form.typeform.com/your-form
Because it is another website, it doesn’t share the Google Ads cookie that was set when visitor clicked on your Google Ad.
Your website know that the visitor came through a Google Ad. Typeform does not.
You can check the details of the Google Ads conversion linker cookie here. There seems to be a method for conversion tracking across domains, which could be another possible solution for tracking Google Ads conversion by sending the conversion from typeform.com directly:
”Link across domains
Conversion linker tags in web and AMP containers can be configured to link across domains for cases where you have the landing pages and conversion pages on multiple domains. When you select this option, hyperlinks that point to a linked domain will have a linker parameter appended to the URL. A destination domain with a compatible linker tag will check inbound URLs for linker parameters. If a valid linker parameter is found, a 1st party measurement cookie is extracted and stored. ”
…however I still think the method shown below is better. It has no downsides, and it even works with the free version of Typeform. It’s definitely better if you’re tracking anything in addition to Google Ads Conversions, like Facebook pixel events. So it’ll always keep those conversion tracking options possible in the future 🙂
The problem with Typeform’s built-in method for tracking Google Ads conversions
So this leads to the #1 problem in tracking Typeform conversions. Or tracking any iFrame conversion. Cookies are not shared.
This means that the Google Ads cookie is not shared with Typeform.
Your UTM codes are not shared with Typeform.
The referrer (the website that lead to your website, like google.com or facebook.com) is not shared. Traffic inside Typeform with look like direct traffic, like someone wrote your url in their browser, even if they really came from google.com and clicked on a Google Ad.
Why I don’t like other tutorials for tracking Typeform submits as Google Ads conversions
A popular tutorial for tracking Typeform conversions is the Typeform Conversion Tracking in Google Tag Manager Tutorial by martian.ventures.
The reason I do not like that tutorial (although their website looks fantastic) is that…well, it doesn’t work.
All the problems I explained above, it doesn’t have a solution for them. I even has a section titled ”How to add a Google Ads conversion pixel to Typeform?” but it totally fails to deliver, because in that tutorial Google Tag Manager is installed inside Typeform, instead of installing it to your website.
It goes into great lengths to do things like add UTM codes to Typeform via hidden fields and editing Google Ads to add typeform.com to Google Analytics "Referral Exclusion List".
Sorry, but it’s just a bad idea. The real solution is million times simpler – just send the conversion from your website instead of sending it via from Typeform.com. Install Google Tag Manager to your own website instead.
You can even use the free version of Typeform unlike with that complex method which doesn’t work for Google Ads.
Solution: How to track Typeform submits as Google Ads conversions?
So other methods don’t work. What can we do instead?
The solution takes a bit of effort but it’s worth it. And it’s the only method that works, so you kind of have to do it. Here are the steps:
In your Google Ads account, go to conversions and create a new conversions. Name it ”Typeform Submit (GTM)”. Click next, and for installation select “Google Tag Manager”
Install Google Tag Manager to your website by copy-pasting the container code to your websites <head> tag, as high as you can get it.
The Google Tag Manager noscript -tag is useless, don’t bother installing it.
Inside Google Tag Manager create a new custom HTML tag called “Typeform submit listener”.
Add a script similar to this. It should listen for any Typeform submits.
Fire that custom tag on all pages.
Modify the script above to fill the Data Layer with a custom event, for example it could be called 'typeform-submitted-successfully'.
You can also send the Typeform form ID to the datalayer, by adding something like 'typeform-form-id': data.formId
Inside Google Tag Manager, create a User-Defined Variables, and select Data Layer Variable. Name it “dl.typeform-form-id” and for Data Layer Variable Name add “typeform-form-id“.
In Google Tag Manager, create a new tag and select Conversion Linker (Google). Fire that to be triggered on all pages.
Now, create a new tag and select “Google Ads Conversion Tracking”. Name it “Google Ads - Typeform Success”.
Create a new trigger and select “Custom Event”. You can name it “Successful Typeform Submit”.
For it’s Event name add: “typeform-submitted-successfully”
Copy-paste the Conversion ID and Conversion Label from your Google Ads account. For trigger choose the “Successful Typeform Submit” Custom Event you created in the previous step.
You can now preview in Google Tag Manager, and fill your typeform. In the Google Tag Assistant window you should see your “Google Ads - Typeform Success” fired.
Visit your Google Ads account admin panel. The conversion you created called Typeform Submit (GTM)” should turn from “Unverified” into “No recent conversions”.
Perfect. Last step is to publish your Google Tag Manager container.
New Google Ads Enhanced conversions and Typeform?
Update May 27 2024 I finally found a way to do Google Ads Enhanced conversions for Typeform.
I will try to make a video about this soon. Until then get in touch
However, it cannot be done using the iFrame message method, because it does not offer the personal information like email, phone etc.
The way to do Typeform Enhanced Conversions is using a redirect to a custom thank you page, adding the email, phone etc to the URL as custom parameters, then parse those in a Google Tag Manager custom HTML script tag, ideally making global javascript variables (datalayer variables or URL variables are problematic)
But if we track using a thank you page, we also need to fix the following issues
Duplicate submissions. When people refresh, duplicate events are sent. This happens more than I expected, probably e.g. iOS Safari reloads the last page when re-opened
Remove typeform.com as a referrer in GA4. GA4 will often use typeform.com as a traffic source. While technically it did send the visitor to our thank you page, it’s not a real thank you page. I’d use the ignore_referrer parameter in Google Analytics and a custom javascript variable that checks if referrer contains “typeform.com”, and outputs true if that’s the case
Personal data in Google Analytics 4 (PII) and Violating personal data for Meta Pixel. We cannot send URLs with personal data like email to Google Analytics or Meta. That’s forbidden. This creates a problem: we need the email and phone for Google Ads Enhanced conversions. URL is the only way to transfer them. BUT we also must not send a URL which contains those to Google Analytics or Meta. For Google Analytics we can override the URL we sent, and use JavaScript to clean up our URL before we send it to Google. Meta is even trickier, we cannot define our URL, it’s always the real URL. So we need to actually clean up our URL in our browser, otherwise Meta will email us with “Potentially violating personal data received!” Errors which are bad for business. This is why I’d use global JS variables instead of data layer or URL parameters – they will disappear.
Conclusion Typeforem + Google Ads Enhanced conversions are possible. I’ve done them multiple times. But the setup is very difficult to implement, lots of custom coding required. If you need it, you can get in touch.
Would you like me to help you install Typeform conversion tracking?
I’d love to do that. Please get in touch via @hire. I’m looking forward to hearing from you :)