Google Ads conversion tracking for marketing agencies
The problem an agency has isn't one broken account — it's that every client's tracking was built by someone different, so nothing your team learns on one transfers to the next. 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 marketing agencies, and what Google Ads specifically needs to accept it.
Free30 minutesNo obligation
Specific to Google Ads × Marketing agencies
Google Ads for agencies: conversion actions in the client's account
For an agency running Google Ads across clients, each client's money event should be an offline import or Enhanced Conversions action created in the client's own account, not the agency MCC, matched on gclid, gbraid and wbraid. It is sent from that client's own order, CRM or booking records, through one standard uploader per account.
Manager-account conversion tracking is convenient and is the decision agencies most often regret. When conversion actions live in your MCC and are shared down, the client's account depends on your manager link. If the client leaves, the actions and their history go with the unlink, and bidding in their account loses its signal overnight. Create actions in each client account and use the MCC only for access and reporting.
Across a portfolio, the Google-specific checks repeat in the same order on every account: auto-tagging on, customer data terms accepted for Enhanced Conversions, one primary action per money event, the counting setting matched to the event type, and the last-received date on every primary action. An inherited account typically fails two of these. Running the same list everywhere turns forty separate investigations into one spreadsheet.
The offline uploader is where shared tooling creates cross-client mistakes. One script feeding many accounts must map each row to the right customer ID and conversion action name; a mapping error uploads one client's sales into another's account, and Google will happily match any gclid that happens to belong there. Keep one configuration per client and read each account's import match rate separately.
Google Ads · Marketing agencies · what breaks
Why Google Ads under-reports for marketing agencies
- 01
A different setup on every client
Nothing your team learns transfers between accounts.
- 02
Inherited accounts with unknown tracking
Built by whoever came before, undocumented.
- 03
Numbers you can't defend in a renewal
Reported figures disagreeing with the client's 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 · Marketing agencies · the fix
What working looks like — Google Ads · Marketing agencies
One standard across the portfolio
Same taxonomy, same reconciliation, same evidence.
Findings you can sell with
Pre-pitch audits that win accounts.
Documentation your account managers own
So client questions get answered without escalation.
Google Ads · Marketing agencies · architecture
How Google Ads and marketing agencies actually connect
- 1
The conversion in marketing agencies
Every client's conversion map gets written down in the same shape, even where the events differ. That's what makes a portfolio manageable rather than forty separate problems.
- 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
each client's own order, CRM or booking 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 · Marketing agencies · events
The conversion map for marketing agencies
The map is per client, the format is not. Standardizing the format is most of the value.
| Event | What it means here |
|---|---|
| Source of truth, named in writing | Store, CRM, booking system or billing. Agreed before any technical work. |
| Money event | Server-side, from that record. Never from a page view. |
| Funnel events | Browser-side, for optimization volume. |
| Firing-path inventory | Including the previous agency's container, which is usually still live. |
| Reconciliation procedure | Documented so your team re-runs it monthly without us. |
Google Ads · Marketing agencies · diagnose
Diagnostic order — Google Ads · Marketing agencies
- 01
Count records carrying gclid, gbraid and wbraid
- 02
Handovers create duplicates
You install your container, the previous agency's keeps running. The single most common cause of doubled conversions we see.
- 03
Nobody re-checks tracking after a client redesign
The conversion action goes inactive and a month of bidding runs blind.
- 04
Reported numbers disagree with the client's books
Often not a fault at all — but without a reconciliation to point at, it becomes a trust problem.
- 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 · Marketing agencies · prove
How it gets proven — Google Ads · Marketing agencies
Source of truth
each client's own order, CRM or booking records
- A reconciliation in a format that survives client scrutiny.
- Firing-path inventory, so the next handover doesn't create a duplicate.
- Payload evidence from real conversions.
- Expected behaviour separated from faults, explicitly, in writing.
- The match rate on the upload, not the success message read directly, not inferred from an upload succeeding.
Google Ads · Marketing agencies · free audit
What we check in the free audit
- Count records carrying gclid, gbraid and wbraid
- Handovers create duplicates
- Nobody re-checks tracking after a client redesign
- Reported numbers disagree with the client's books
- Read the match rate on the upload, not the success message
Checked against
each client's own order, CRM or booking records
Free30 minutesNo obligation
Google Ads · Marketing agencies · when not to buy
When you don't need this — Google Ads · Marketing agencies
- If Google Ads already reports conversions that reconcile against each client's own order 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 · Marketing agencies · what we deliver
What gets built — Google Ads · Marketing agencies
Scoping with you, not the client
So it can be priced into your own proposal.
The same diagnostic order on every account
Which makes findings comparable across the portfolio.
Deliverables in an identical format
White-labelled or named, decided per account.
A handover pack your team can act on
Not a report they have to forward to us.
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 each client's own order, CRM or booking records. Miss it and we keep working at no cost.
From $400 · See packages
FAQ
Google Ads · Marketing agencies questions, answered
In the client's account. Manager-level actions make the client dependent on your agency link, and unlinking can strip their bidding signal and conversion history.
Pull each account's conversion actions with their status and last conversion date into one sheet each month. Any primary action without recent conversions is the first thing to investigate.
Only if you want us to. Deliverables can carry your branding with us invisible, or we join calls as your tracking engineer. Decided per account, before anything goes out.
Then that's the finding, and you have an account you can defend. We won't manufacture findings to justify a fee.
Per engagement on the same ladder, so you can mark it up or pass it through. Scoping happens with you before anything reaches the client.
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 each client's own order, CRM or booking records. An upload that succeeds is not an upload that matched.
More on Google Ads · Marketing agencies
- Marketing agenciesOne tracking standard across your whole client portfolio
- Google Ads · StaffingGoogle Ads conversion tracking for staffing agencies
- Google Ads · Home healthcareGoogle Ads conversion tracking for home healthcare agencies
RELATED GUIDES
More for marketing agencies: other angles on the same outcome
- Marketing agenciesOne tracking standard across your whole client portfolio
- Google Ads · RecruitmentGoogle Ads conversion tracking for recruitment agencies
- Google Ads · Executive searchGoogle Ads conversion tracking for executive search firms
- 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
- Divi → Google AdsConnecting Divi to Google Ads
- Google Ads · StaffingGoogle Ads conversion tracking for staffing agencies
- Google Ads · Healthcare staffingGoogle Ads conversion tracking for healthcare staffing agencies
Free · 30 min
Get Google Ads reporting what marketing agencies actually earn
Free30 minutesNo obligation
