Google Ads conversion tracking for lead generation agencies
A lead generation agency gets paid for leads and gets judged on whether those leads turned into business — two different things, and usually only the first is measured. What Google Ads adds on top of that is a mechanical requirement: gclid, gbraid and wbraid have to reach the record that holds the money, because Google Ads can only credit a conversion it can tie back to a click it recognizes. This page covers both halves — what a conversion is in lead generation agencies, and what Google Ads specifically needs to accept it.
Free30 minutesNo obligation
Specific to Google Ads × Lead gen agencies
Google Ads lead gen: make the client's qualified lead primary
For a lead generation agency, the Google Ads conversion should be the client's qualified lead, uploaded through offline conversion import against gclid, gbraid or wbraid, or matched on hashed email with Enhanced Conversions for Leads. Keep the form submission as a secondary action for reporting, and send the qualified upload from the client's CRM or a scheduled export.
Switching the bidding target from submissions to qualified leads is the change that makes a lead gen agency's Google account defensible, and it has to be staged. Upload qualified leads as a secondary action first and watch the count for a few weeks; promote it to primary only when the client produces enough qualified outcomes per month for bidding to learn from. Flipping primaries on day one sends campaigns back into learning on a thin signal.
Value is where agencies paid per lead get it wrong. The value on the qualified upload should reflect what a qualified lead is worth to the client, not the agency's per-lead fee, or bidding learns to buy cheap leads in bulk. Where the client won't share deal values, an agreed fixed value per qualified lead, different from the one on submissions, is still better than none.
Google's lead form assets deliver leads by webhook straight into the client's systems, and the payload includes a click identifier; confirm the field name in Google's current webhook documentation and make sure the CRM keeps it. For clients in housing, employment or credit, Google restricts personalized targeting, and uploads should carry only the identifier, timestamp, action and value, never income, credit or loan details.
Google Ads · Lead gen agencies · what breaks
Why Google Ads under-reports for lead generation agencies
- 01
Volume reported, quality disputed
With no data on either side of the argument.
- 02
Bidding optimizing toward form fills
Because that's all it's ever shown.
- 03
Client CRM access hard to get
Which blocks the only thing that would settle it.
- 04
Gclid, gbraid and wbraid never reaches the record
Three parameters, not one. gclid is the long-standing identifier; gbraid and wbraid arrive on iOS traffic where privacy constraints prevent the usual one. Capture code that names only gclid loses a growing share, silently, and the loss is invisible until you audit how many records carry an identifier.
Google Ads · Lead gen agencies · the fix
What working looks like — Google Ads · Lead gen agencies
Qualified leads reported, not submissions
With the client's own definition of qualified.
Outcomes fed back to bidding
So the platforms buy better leads.
A defensible position in the renewal
Backed by the client's records.
Google Ads · Lead gen agencies · architecture
How Google Ads and lead generation agencies actually connect
- 1
The conversion in lead generation agencies
Submission, valid lead, qualified lead, closed business. Four stages, and the agency is usually measured on the first while being judged on the last.
- 2
Google Ads needs a click to match
A click identifier inside the 90-day window, a conversion action name that matches one configured in the account, a conversion timestamp for when the outcome happened, and a value. Read the match rate after uploading — a file can upload perfectly and match nothing.
- 3
The identifier: gclid, gbraid and wbraid
Three parameters, not one. gclid is the long-standing identifier; gbraid and wbraid arrive on iOS traffic where privacy constraints prevent the usual one. Capture code that names only gclid loses a growing share, silently, and the loss is invisible until you audit how many records carry an identifier.
- 4
Where it gets sent from
the client's CRM records, matched on a shared lead ID.
- 5
Deduplication and window
There's no shared event ID mechanism like Meta's. What matters instead is the counting setting on each conversion action — 'one' for lead-type conversions so a repeat submitter doesn't count three times, 'every' for ecommerce where a second purchase is a second sale. This is the single most common misconfiguration we find in Google Ads accounts. Google's offline import window is 90 days from the click. Anything older can't be matched, and rows outside it fail as unmatched without much explanation. Measure your median click-to-outcome time against that before designing anything.
Google Ads · Lead gen agencies · events
The conversion map for lead generation agencies
Four stages. The distance between stage one and stage four is the whole commercial argument.
| Event | What it means here |
|---|---|
| Form submission | Browser-side, bound to the form's real success event rather than a thank-you page. |
| Valid lead | After spam and duplicate filtering. Usually a meaningful drop, and worth quantifying. |
| Qualified lead | The client's definition, agreed in writing. This is what bidding should optimize toward. |
| Closed business | Server-side from the CRM, where the sales cycle fits inside the import window. |
| Disqualification reason | Recorded, so the pattern is visible rather than anecdotal. |
Google Ads · Lead gen agencies · diagnose
Diagnostic order — Google Ads · Lead gen agencies
- 01
Count records carrying gclid, gbraid and wbraid
- 02
No click ID on the CRM record
Nothing can be sent back, so the loop can never close.
- 03
Qualified never defined
So quality disputes are two opinions with no referee.
- 04
AJAX forms firing nothing
The form works, the conversion doesn't, and volume looks worse than it is.
- 05
Read the match rate on the upload, not the success message
A conversion action that stops receiving hits is flagged as inactive 30 days later — by which point a month of budget has already run against a missing signal. Check the last-received date on every action monthly; it takes two minutes and it's the cheapest monitoring available.
Google Ads · Lead gen agencies · prove
How it gets proven — Google Ads · Lead gen agencies
Source of truth
the client's CRM records, matched on a shared lead ID
- Click ID present on a live test lead inside the client's CRM.
- A written, agreed definition of qualified.
- Qualified outcomes confirmed uploading, verified by match rate.
- Submission count reconciled against CRM records for a closed month.
- The match rate on the upload, not the success message read directly, not inferred from an upload succeeding.
Google Ads · Lead gen agencies · free audit
What we check in the free audit
- Count records carrying gclid, gbraid and wbraid
- No click ID on the CRM record
- Qualified never defined
- AJAX forms firing nothing
- Read the match rate on the upload, not the success message
Checked against
the client's CRM records, matched on a shared lead ID
Free30 minutesNo obligation
Google Ads · Lead gen agencies · when not to buy
When you don't need this — Google Ads · Lead gen agencies
- If Google Ads already reports conversions that reconcile against the client's crm records within a few percent, this is working and there is nothing to buy.
- Measure identifier coverage yourself first — pull your last hundred records and count how many carry gclid, gbraid and wbraid.
- If you're running Performance Max exclusively and haven't separated your conversion actions, the import will work and the reporting won't tell you much. Worth sorting the account structure first.
Google Ads · Lead gen agencies · what we deliver
What gets built — Google Ads · Lead gen agencies
Click ID captured and written to the CRM
The precondition for everything else.
Qualification defined with the client in writing
Before anything is measured against it.
Qualified outcomes uploaded as offline conversions
Google and Meta both.
Spam and duplicates classified
Rather than argued about.
Dispatch via Google's offline conversion import
Uploaded against the click identifier, either through the Google Ads API or as a file. The upload is the easy part; what limits it is how many of your records carry an identifier at all. Verify the current column format against Google's own template — it has changed before.
Written guarantee
95%+ tracking accuracy
Measured against the client's CRM records, matched on a shared lead ID. Miss it and we keep working at no cost.
From $400 · See packages
FAQ
Google Ads · Lead gen agencies questions, answered
Once the client's CRM produces enough qualified outcomes per month for bidding to learn from. Until then keep submission primary and upload qualified leads as secondary.
Yes, the webhook delivers a click identifier with each lead. Store it on the CRM record so the qualified outcome can be uploaded later, and confirm the current field name in Google's documentation.
Then a scheduled export with the lead ID and outcome works. It's slower and it's enough. What doesn't work is having no outcome data at all.
The client, in writing, before measurement starts. An agency-defined qualification standard convinces nobody in a renewal.
Usually, because spam and duplicates stop being counted. The lower number is the one that survives scrutiny.
Three parameters, not one. gclid is the long-standing identifier; gbraid and wbraid arrive on iOS traffic where privacy constraints prevent the usual one. Capture code that names only gclid loses a growing share, silently, and the loss is invisible until you audit how many records carry an identifier.
Uploaded against the click identifier, either through the Google Ads API or as a file. The upload is the easy part; what limits it is how many of your records carry an identifier at all. Verify the current column format against Google's own template — it has changed before.
By reading the match rate on the upload, not the success message and reconciling against the client's CRM records, matched on a shared lead ID. An upload that succeeds is not an upload that matched.
More on Google Ads · Lead gen agencies
- Lead gen agenciesProving lead quality when volume is the only thing being measured
- Meta · Lead gen agenciesMeta Ads conversion tracking for lead generation agencies
- TikTok · Lead gen agenciesTikTok Ads conversion tracking for lead generation agencies
RELATED GUIDES
More for lead generation agencies: other angles on the same outcome
- Lead gen agenciesProving lead quality when volume is the only thing being measured
- Google Ads · Executive searchGoogle Ads conversion tracking for executive search firms
- Google Ads · StaffingGoogle Ads conversion tracking for staffing agencies
- Google Ads · RFP → awardHow to track RFP submission to contract award for Google Ads
- Google Ads × CRM DealsHow to reconcile Google Ads against your CRM's closed-won deals
- ConvertFlow → Google AdsConnecting ConvertFlow to Google Ads
- Chili Piper ConciergeConversion tracking for Chili Piper Concierge demos
- Google Ads · PPC agenciesGoogle Ads conversion tracking for PPC agencies
Free · 30 min
Get Google Ads reporting what lead generation agencies actually earn
Free30 minutesNo obligation
