Google Ads conversion tracking for PPC agencies
A PPC agency's product is bidding decisions, and every one of them is made on conversion data the agency usually didn't build. 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 PPC agencies, and what Google Ads specifically needs to accept it.
Free30 minutesNo obligation
Specific to Google Ads × PPC agencies
Google Ads for agencies: who owns the conversion actions
For a PPC agency on Google Ads, the conversion is the client's real outcome as a conversion action: a purchase tag, or a qualified lead uploaded through offline conversion import against gclid, gbraid or wbraid, or matched with Enhanced Conversions for Leads. Send it from the client's own records through server-side GTM into the account that bidding uses.
Cross-account conversion tracking from the manager account is a setup many agencies inherit without noticing. When it is switched on, the client account bids on conversion actions that live in the MCC, and if the agency link is removed at offboarding, those actions and their history stop applying to that account. Decide per client where the actions live, the client account if the client should keep its history, the MCC if you need one place to audit fifty accounts, and record that choice at onboarding.
Goals explain more odd bidding than strategy does. A campaign on account-default goals bids toward every primary action in the goal categories it uses; a campaign set to campaign-specific goals ignores the others. On accounts that changed agency, it is common to find a GA4-imported conversion, a Google tag conversion and a call conversion all primary for the same lead, and Smart Bidding adds them together.
For lead-gen clients, Enhanced Conversions for Leads matches the later qualified-lead upload on the hashed email captured at submission, which recovers iOS clicks that arrived with gbraid or wbraid and never wrote a usable gclid to the CRM. It requires the form to capture email and the tag to send it hashed at submission, so check the setup steps in the client's account before promising it.
Google Ads · PPC agencies · what breaks
Why Google Ads under-reports for PPC agencies
- 01
Bidding on numbers you didn't build
And can't fully vouch for.
- 02
A conversion action going inactive unnoticed
Google flags it 30 days late, after the damage.
- 03
Doubled conversions inflating reported ROAS
Until the client compares against their own books.
- 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 · PPC agencies · the fix
What working looks like — Google Ads · PPC agencies
Signal you can defend in a client call
Reconciled against their records.
Bidding trained on one conversion per sale
Not two.
Breaks surfacing in days
Rather than at the quarterly review.
Google Ads · PPC agencies · architecture
How Google Ads and PPC agencies actually connect
- 1
The conversion in PPC agencies
Per account: which action bidding optimizes on, what it counts, where its truth lives, and what its attribution window is. Those four facts explain most bidding behaviour that looks inexplicable.
- 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 own order or CRM records.
- 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 · PPC agencies · events
The conversion map for PPC agencies
The map is short and the details are what matter — most bidding problems we're shown are conversion-action configuration, not strategy.
| Event | What it means here |
|---|---|
| Primary conversion action | The one bidding optimizes on. Should be one, not five. |
| Counting setting | Every versus one. Wrong on lead-gen accounts more often than not. |
| Attribution window | Different per platform, which is most of why they disagree. |
| Value | Real revenue where possible. A flat placeholder teaches bidding nothing about quality. |
| Offline import | Where the sale completes away from the site. |
Google Ads · PPC agencies · diagnose
Diagnostic order — Google Ads · PPC agencies
- 01
Count records carrying gclid, gbraid and wbraid
- 02
Counting set to every on a lead form
One person submitting three times becomes three conversions, and bidding chases repeat submitters.
- 03
Several primary actions competing
Bidding splits its attention and optimizes toward none of them well.
- 04
Duplicate conversions from a second container
Common on accounts that changed agency.
- 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 · PPC agencies · prove
How it gets proven — Google Ads · PPC agencies
Source of truth
the client's own order or CRM records
- One primary conversion action per objective, verified.
- Counting and attribution settings read and documented per account.
- No duplicate conversions, confirmed on a live transaction.
- Reconciliation against the client's 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 · PPC agencies · free audit
What we check in the free audit
- Count records carrying gclid, gbraid and wbraid
- Counting set to every on a lead form
- Several primary actions competing
- Duplicate conversions from a second container
- Read the match rate on the upload, not the success message
Checked against
the client's own order or CRM records
Free30 minutesNo obligation
Google Ads · PPC agencies · when not to buy
When you don't need this — Google Ads · PPC agencies
- If Google Ads already reports conversions that reconcile against the client's own order or 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 · PPC agencies · what we deliver
What gets built — Google Ads · PPC agencies
Conversion actions audited per account
Scope, counting, attribution window, primary or secondary.
Deduplication verified at every destination
Before anything is switched off.
Offline conversions wired where the sale is offline
So bidding sees revenue, not form fills.
Monitoring on every account
A stopped conversion action shouldn't need a human to notice.
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 own order or CRM records. Miss it and we keep working at no cost.
From $400 · See packages
FAQ
Google Ads · PPC agencies questions, answered
In the client account if the client should keep its conversion history after the engagement; at the manager level with cross-account tracking if one audit point matters more. Agree it in writing at onboarding.
Usually two primary actions counting the same lead, counting set to every on a lead action, or modeled conversions the CRM has no row for. Check goal settings per campaign before touching the tag.
One, for lead generation — otherwise repeat submitters inflate the count and bidding chases them. Every, for ecommerce, where a second purchase is a second sale.
One per objective. Several competing primaries is one of the most common causes of bidding that behaves oddly.
Yes, or with direct client access. Whichever fits the relationship — it's agreed per account before we start.
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 own order or CRM records. An upload that succeeds is not an upload that matched.
More on Google Ads · PPC agencies
- PPC agenciesClean conversion signal across every account you bid on
- Google Ads · StaffingGoogle Ads conversion tracking for staffing agencies
- Google Ads · Home healthcareGoogle Ads conversion tracking for home healthcare agencies
RELATED GUIDES
More for ppc agencies: other angles on the same outcome
- PPC agenciesClean conversion signal across every account you bid on
- Google Ads · Executive searchGoogle Ads conversion tracking for executive search firms
- Google Ads · Marketing agenciesGoogle Ads conversion tracking for marketing 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
- Leadpages → Google AdsConnecting Leadpages to Google Ads
- Google Ads · Web and dev agenciesGoogle Ads conversion tracking for web design and development agencies
- Google Ads · Healthcare staffingGoogle Ads conversion tracking for healthcare staffing agencies
Free · 30 min
Get Google Ads reporting what PPC agencies actually earn
Free30 minutesNo obligation
