Google Ads offline conversion tracking without the API
Updated:
Offline conversion tracking lets you tell Google Ads which clicks turned into real customers after the form was submitted. Smart Bidding then optimizes for those customers instead of for form fills.
How it works
Every Google Ads click carries a GCLID in the landing page URL. If you store it with the lead, you can later report that the click converted. Google matches the GCLID back to the campaign, ad group, keyword and audience that produced it.
- Capture the gclid parameter on landing and keep it with the visitor (for example in local storage for up to 90 days).
- Submit it with the form, alongside the contact details.
- Qualify the lead: filter bots, fake numbers and spam, and wait for evidence on unclear ones.
- Report qualified leads to a conversion action of the type "conversions from clicks".
Scheduled uploads instead of the API
The Google Ads API needs a developer token and an approval process. Scheduled uploads do not: in Google Ads you create an import conversion action, then under Conversions → Uploads → Schedules choose HTTPS as the source and give Google a private URL that returns a CSV. Google fetches it on the schedule you pick.
The file starts with a Parameters:TimeZone row and has the columns Google Click ID, Conversion Name, Conversion Time, Conversion Value and Conversion Currency. The conversion name must match the conversion action exactly, and the conversion time must be after the click.
Make the qualified conversion primary
Bidding only optimizes toward primary conversion actions. Once the qualified lead action has data, set it as primary and move the old "form submitted" action to secondary, so it stays visible in reports but no longer steers bids.
Expect a learning period after the switch. Campaigns with very few qualified leads may need to keep a broader goal until volume builds up.
Common mistakes
Most failed imports come down to a handful of issues.
- GCLID lost on redirects or because auto-tagging is off
- Conversion name in the file not matching the action name
- Uploading clicks older than 90 days
- Counting every form as a conversion, which defeats the purpose
FAQ
What about gbraid and wbraid?
On some iOS traffic Google provides gbraid or wbraid instead of a gclid. They are imported in their own columns; leads without any click id can still be matched with enhanced conversions for leads.
How often should the file be fetched?
Daily is a good default for lead-gen. More frequent uploads help little because qualification itself takes hours.