Postback Keitaro → Google Ads
A Keitaro to Google Ads postback gets conversions from your PWA offer — leads, deposits — back into the ad account so Smart Bidding optimizes toward real results instead of just ad clicks. Google Ads has no single events channel the way Meta or TikTok do — instead it relies on offline conversion imports keyed on GCLID. Here's how to wire that up through Keitaro without losing or double-counting data.
Why Google Ads needs offline conversions at all
Google Ads only sees what happens directly inside its own ecosystem — the ad click, and, if a conversion tag is set up, an action on the site right after that click. A deposit on a PWA offer usually happens later, outside the Google tag's visibility window, so the only reliable way to report it is an offline import keyed on GCLID (Google's click identifier). Skip that step and Google Ads' automated bidding — cost-per-conversion optimization, for instance — is effectively flying blind, steering toward clicks rather than actual deposits.
Capturing GCLID and setting up the conversion action
Google Ads automatically appends GCLID to the click-through URL — the tracker needs to capture it as a sub-parameter on the user's first visit to the PWA and store it alongside the rest of the click data. In Google Ads itself, create a conversion action of type Import → Clicks — that's the type built to accept offline uploads keyed on GCLID, with conversion time and, optionally, value.
Setting up the postback and upload in Keitaro
In Keitaro, the outgoing postback for an offer conversion is set up under Conversions: on a confirmed status (sale, for example), the flow builds a record with the GCLID, the conversion action name, conversion time and value. The upload into Google Ads runs either through the API, wired to the tracker with no manual work, or in batches through the offline conversions UI — for a steady flow, the automated path is the better choice. APEX supports S2S postbacks with Keitaro, so GCLID conversion delivery gets configured once instead of a manual export every day.
Statuses, deduplication and verifying the data
Each Keitaro status (lead, sale, rejected) should map to its own conversion action in Google Ads, or an explicit decision not to send it at all — merging every status into one action defeats the point of optimizing on quality. Guard against double-counting with a unique transaction identifier (Order ID) on every conversion — Google Ads automatically ignores a repeat upload with the same ID. Verify data is landing correctly under the Conversions section of the Google Ads account — it shows the count of imported offline conversions and a history of failed uploads if something didn't go through.
FAQ
- What if GCLID isn't being captured by the tracker?
- Check that the final PWA link actually accepts the gclid parameter from the ad's URL and that the tracker is explicitly set to capture that sub-parameter — without that macro configured, GCLID gets dropped on the very first click-through.
- How do you avoid double-counted offline conversions in Google Ads?
- Pass a unique Order ID with every conversion upload — Google Ads checks it and automatically discards a repeat upload carrying the same transaction identifier.
- Can you optimize Google Ads on clicks alone, without offline conversions?
- You can, but Smart Bidding won't see the real outcome — deposits — and will optimize on a surrogate signal instead, which typically means lower traffic quality and a higher effective cost per target action over time.
Cloaking, anti-bot, push, split tests and your own domains — in one service.
Get started free