Automating Google Ads reporting: what the platform is telling you
Attribution windows, modelled conversions and the platform reporting on its own performance. What the numbers mean before you automate reporting them.
On this page
- What we'll cover
- Why the platform's number is high
- Attribution windows and models
- Modelled conversions
- Building it with CodeWords
- Joining to your own data
- What the report should contain
- Measuring whether the ads did anything
- Alerts that are worth having
- Making it survive
- Limits worth knowing about
- What to build first
- Frequently asked questions
- Related reading
Automating a Google Ads report is easy. Automating one that means something requires understanding that the platform is reporting on its own performance, using an attribution model it chose, over a window it set, with some conversions estimated rather than counted.
None of that is hidden and none of it is dishonest. It does mean a report that presents platform-reported conversions as fact will eventually be contradicted by your own revenue data, usually in a meeting, and the credibility of everything else in the report goes with it.
What we'll cover
- Why the platform's number is high
- Attribution windows and models
- Modelled conversions
- Building it with CodeWords
- Joining to your own data
- What the report should contain
- Measuring whether the ads did anything
- Alerts that are worth having
- Making it survive
- Limits worth knowing about
- What to build first
- Frequently asked questions
Why the platform's number is high
It counts what it touched. A conversion following any interaction within the window is attributed, including from people who would have arrived anyway.
Brand terms inflate it most. Somebody searching your company name was already coming, and the ad takes the credit.
Cross-platform double counting is normal. Several platforms will each claim the same conversion, and the sum exceeds your actual orders.
Default windows are generous, so a click a month before a purchase can be credited.
View-through counting, where enabled, attributes conversions to impressions nobody clicked.
None of this is deceptive — it is a documented model, and the error is presenting its output as a count of sales caused by advertising.
Attribution windows and models
The click-through window determines how long after a click a conversion counts, and the default is longer than most people assume.
The engagement or view window is separate and shorter, and is the one people forget is on.
The attribution model decides how credit is split across touches — last click, data-driven, or another — and changing it retroactively changes your history.
Record which model produced a number. Reports compared across a model change are comparing different things.
Your analytics uses a different model by default, which explains most of the disagreement between the two systems.
Say the window and the model on the report, every time, since this single line prevents most disputes about the figures.
Modelled conversions
Some conversions are estimated, not observed, where direct measurement is unavailable due to consent or platform restrictions.
Modelled data behaves differently when sliced finely. The estimate is reasonable in aggregate and less so for one campaign on one day.
The proportion varies by region and over time, which means a trend can move because the modelling changed rather than because performance did.
It is not separable in most reporting, so you cannot simply exclude it.
Reconciliation will not balance, and the gap between platform-reported and observed conversions is expected rather than a bug to hunt.
Report it as a characteristic, not a caveat in small print, so nobody builds a decision on a precision that is not there.
Building it with CodeWords
CodeWords connects to more than 3,000 integrations, so the ads account, your own conversion data and the destination for the report can meet in one automation.
- Open CodeWords and start a new automation.
- Describe what should happen in plain language to Cody, the automation builder: which accounts and campaigns, which metrics, over what window, and where it goes.
- Authorize the connections — the ads account and your own data source.
- Describe the exceptions: a campaign paused mid-period, a currency change, a figure outside a plausible range.
- Run it for a period you already have numbers for and reconcile before trusting it forward.
You describe the outcome; Cody builds it, connects it, and deploys it. The free plan covers light use, with Pro at $39 per month and Business at $100 per month as usage grows; details are on the pricing page.
Joining to your own data
Your database knows what actually happened — the order, the refund, the churn a month later.
Tag every destination link consistently, since without that the join is guesswork.
Match on your own conversion record, and report the platform's figure beside it rather than instead of it.
Account for refunds and cancellations, which the platform will never know about and which change the picture materially for some businesses.
Look at lifetime value, not first order, where your business has repeat purchase, since a channel with a worse first-order cost may be the better channel.
Report the difference explicitly. The gap between platform-attributed and observed conversions is informative and should be a line in the report rather than a discrepancy somebody discovers.
What the report should contain
Spend, which is the one number that is certain.
Platform-reported conversions, labelled as such, with the window and model.
Your own observed conversions for the same period, from your own system.
The ratio between them, tracked over time, since a change in that ratio is itself a signal.
Segment properly: brand and non-brand separated, since mixing them makes the aggregate meaningless.
Change rather than level, with a comparison against the same period previously rather than against an arbitrary window.
Measuring whether the ads did anything
The question everything above circles around, and the only honest way to answer it.
Incrementality requires a holdout — a geography, an audience, or a period with no advertising — compared against one with it.
Brand terms are the classic test. Pausing them and watching total traffic answers a question no attribution model can.
Geographic experiments are the most practical version for most businesses.
Expect the incremental number to be lower than the attributed one, sometimes substantially, which is the finding rather than a problem with the test.
Run it periodically, not once, since the answer changes with your market and your mix.
This is the number to report upward, where you have it, because it is the one that corresponds to a decision about whether to spend more.
Alerts that are worth having
A weekly report tells you what happened. The things worth knowing about within hours are a small and specific set, and a general anomaly alarm is not one of them.
Spend anomalies. A campaign spending well above its usual rate is the alert with the clearest financial consequence.
Conversion tracking stopping. Conversions going to zero looks like a performance collapse and is almost always a broken tag, and automated bidding will react to the false signal before anybody notices.
Disapprovals and policy issues, which silently stop delivery and produce no other symptom.
Budget exhausted early in the period, which is a missed-opportunity alert rather than an error.
A landing page returning an error, which is worth checking independently rather than trusting the platform to notice.
Not general performance movement. Daily fluctuation is normal, and alerting on it produces a stream people learn to ignore, which is how the four alerts above get missed.
Making it survive
Handle API quota and version changes, which are frequent in advertising platforms.
Wait for data to settle. Recent days are incomplete and a report run too early understates performance.
Handle currency and timezone explicitly, since the account's settings may not match your reporting period.
Sanity check magnitudes and hold rather than send a figure outside a plausible range.
Report the outcome: what ran, over what window, under which attribution model, and whether anything was held.
Limits worth knowing about
Data settles over days, particularly conversions, so yesterday's figure will change.
The API version and the interface can differ in how they present some metrics.
Automated bidding changes behaviour in response to your conversion data, so a reporting change can affect performance indirectly.
Platform recommendations are not neutral advice, and automated application of them is a decision to let the platform spend more.
Privacy changes keep moving, so the proportion of modelled data and the available granularity are both subject to change without your involvement.
What to build first
The two-number report: platform-reported conversions beside your own observed conversions, for the same period, with the ratio tracked over time. It is the simplest possible honest report, and the ratio is the single most useful figure in advertising reporting — because a change in it tells you something has shifted in measurement even when spend and performance look stable.
Two habits make the difference. Put the attribution window and model on every report, since almost every dispute about these numbers turns out to be two people using different ones. And separate brand from non-brand before anything else, because a blended figure that includes people searching your own name will always look good and will never tell you anything.
Frequently asked questions
Why are platform-reported conversions higher than my actual sales?
Because the platform counts any conversion following an interaction within its window, including from people who would have arrived anyway. Brand terms inflate this most, several platforms claim the same conversion, and default windows are generous.
What is the difference between attribution windows and models?
The window is how long after a click or view a conversion still counts; the model is how credit is divided across touches. Both are settings, both differ from your analytics defaults, and changing the model rewrites your history.
What are modelled conversions?
Estimated rather than observed conversions, used where direct measurement is unavailable. They are reasonable in aggregate, less so sliced finely, and the proportion varies by region and over time — so a trend can move because the modelling changed.
Why will my reconciliation never balance?
Because of modelled conversions, attribution windows, and cross-platform double counting. The gap is expected. Report it as a line in the report rather than treating it as a bug.
What should an ads report contain?
Spend, platform-reported conversions labelled with their window and model, your own observed conversions for the same period, and the ratio between them over time — with brand and non-brand separated.
How do I know whether the advertising is working?
An incrementality test — a geographic holdout is the most practical form. Expect the incremental number to be lower than the attributed one, sometimes substantially. That is the finding, not a flaw in the test.
Why is brand versus non-brand separation important?
Because people searching your company name were already coming. A blended figure including them will always look good and will never tell you whether the advertising created demand.
Should I automate the platform's recommendations?
They are not neutral advice, and applying them automatically is a decision to let the platform spend more on your behalf. Treat them as input to a human decision.
Which Google Ads alerts are worth setting up?
Spend anomalies, conversion tracking going to zero, policy disapprovals, budgets exhausting early, and landing pages returning errors. Not general performance movement — daily fluctuation is normal, and alerting on it buries the five that matter.
Why is conversion tracking going to zero urgent?
Because automated bidding reacts to the false signal before anybody notices, so a broken tag becomes a bidding problem as well as a reporting one.
Should I use lifetime value instead of first-order value?
Where your business has repeat purchase, yes. A channel with a worse first-order cost is frequently the better channel, and first-order reporting will never show that.