The Missed Opportunity report takes the auction data Google Ads already tracks: impression share, its lost-IS split, and hour-by-hour spend. It turns that into an exact count of the conversions and revenue each campaign left behind, and why.
Nothing here is aggregated away. The account total sits above two campaign-level breakdowns, one for auction losses, one for pacing losses, so a number is never more than one click from the campaign that produced it.
The account-level tally for the last 30 days: what was actually earned, set directly against what budget constraints alone are estimated to have blocked.
Every Search campaign, split by why it lost impression share, whether outbid on Ad Rank or outspent on Budget, with the conversions and revenue each cause is estimated to cost, plus a written read of which one to fix first.
The hour each campaign's budget typically runs dry, how reliably it happens, and whether the hours that follow would have converted better or worse than the hours it actually got to run.
Every figure is calculated directly from account data. Nothing is predicted or guessed. The only thing generated is the sentence that explains a number that already existed.
Each campaign's missed impressions are split into two causes, whether outbid on Ad Rank or outspent on Budget, and priced in conversions and revenue using its own click-through and conversion rates.
Hourly spend is tracked against each day's budget to find when it typically runs out, how consistent that timing is, and whether the hours lost afterward were converting better or worse than the rest of the day.
The finished numbers, never raw account data, are handed to a language model to explain in plain terms. If that’s unavailable, a plain-language template built from the same numbers fills in instead.
A single "opportunity score" hides which team should act on it. This report keeps Budget, Rank, and Timing apart because they're fixed by different people, on different timelines, at different costs.
A campaign losing most of its share to Ad Rank won't be fixed by a bigger budget. It needs better bids or ad quality. This report tells you which one it is before you spend anything.
A campaign can look perfectly paced on average and still run dry every evening at 6 PM, right as its best-converting hours begin. Timing analysis is the only place that shows up.
Every figure ships with a plain-language read of it, so a client or a budget owner without GAQL literacy can act on it directly.
On this account, Ad Rank outweighed Budget as a cause five to one, the kind of split a spend-pacing tool alone would never surface, because it only watches the budget side.
Every number in this report comes from metrics Google Ads is already recording for every campaign: impression share, its lost-IS split, and hourly spend. Nothing here is modeled or forecast; it's what already happened, organized by cause.