River
Y CombinatorBacked by Y Combinator

Marketing & GrowthFree

Google Ads Account Audit Report

The waste in your account ranked by what it cost last quarter, with the campaign, ad group and search term behind each row.

Start here

River's Google Ads account audit reads the export you already pull. Campaign, ad group and search term levels go in together, and what comes back is a sheet of waste ranked by cost, with the specific cause named on every row. A converting search term sitting in a broad ad group is a different finding from one that should be negated, and both carry the spend they consumed last quarter. The change list arrives in priority order.

What ranks for this search is a checklist. A scored spreadsheet with a tab per section, a numbered list of things to go and look at, and a grading rubric at the end. The looking is the job. An item that says review your search terms is describing several hours of sorting one report against an account structure you did not build, and at the end of it you still have no figure for what the waste cost.

Built for the in-house performance marketer who owns the account, the agency strategist inheriting one, and the founder who wants to know what the spend bought. Reach for it before a budget conversation or in the first week on an account somebody else built. The findings feed straight into the cross-platform paid report, where Google sits beside Meta and LinkedIn, and the whole thing runs inside the marketing workspace rather than in a spreadsheet you maintain by hand. Creative sits outside its scope and belongs in the analysis by attribute.

The export has documented holes, and they are not rounding

Start with the arithmetic that will not close. Google's own segment documentation says that when click type applies to more than one part of the same impression, the downloaded report shows two dashes instead of a summary total, because summing would double-count the impressions. Apply a conversion segment and the clicks, impressions and cost columns come back blank for the same reason. So a segmented export is not a table you can total, and a checklist that asks you to total it is asking for a wrong number.

Then the search terms report, which is where an audit finds its money and where the total is smallest. Google states that search terms used by too few people are omitted from the report to keep with its data privacy standards. Those omitted terms still cost money, so search-term spend never sums to campaign spend and the gap is not an error in your pull. The same page notes that the Keyword column is off by default, which is why most exports cannot say which keyword matched.

Two more structural facts worth knowing before an audit claims completeness. The API's search term view reference states that the view does not include Performance Max data at all, so a Performance Max campaign is invisible in the report most audits are built on and needs its own pull. And the same view carries a status field with four real values: added, excluded, added and excluded, or none. That field is what separates a term you have already handled from one nobody has touched.

How it works

  1. Paste the export

    Campaign, ad group and search term rows, plus one line on what the account sells.

  2. River reads the levels

    Every search term traced to its ad group and campaign, then priced against the spend it drew.

  3. Read the findings

    A sheet of waste ranked by cost, a written change list, and a summary for budget.

  4. Work the list

    Paste next month's export and see which findings closed and which came back larger.

What you get

  • Waste ranked by what it cost, with the campaign, ad group and term named
  • A specific cause on every row rather than a category label like low quality score
  • Search terms already excluded kept apart from the ones nobody has ever looked at
  • Performance Max campaigns pulled separately, since the standard search terms view omits them
  • The change list in priority order, each item tied to the spend it recovers
  • A one-page summary for whoever signs the budget, with the total at the top

Common questions

What exactly should I export?

Campaign, ad group and search term levels over the same date range, plus the keyword level if you have it. Google Ads downloads as CSV, TSV, XLSX, PDF, XML or Google Sheets, and any tabular format works. That page also notes saved reports go away after eighteen months untouched, so keep the file rather than the report.

How does it decide what counts as waste?

Spend with no conversion is the obvious case and the smallest part of it. The rest is spend that converts at the wrong price, terms converting inside an ad group whose keywords do not match them, and terms already excluded elsewhere still drawing cost here. Where Google's own conversion count disagrees with the CRM, that is a reconciliation job rather than an audit finding.

Will it tell me what to negate?

It names the terms and the level to exclude them at, which is the part that gets done wrong. Google's documentation is explicit that negative keywords do not match close variants, so excluding flowers still lets an ad serve on flower. Every exclusion carries the singular and plural forms it needs. Clustered by intent, the full pass is the negative keyword review.

Does it handle Performance Max?

Yes, and separately, because it has to be. The standard search terms view carries no Performance Max data at all, so those campaigns need a second pull from the campaign-level view that does. Handled as one export, a Performance Max campaign looks clean because it was simply absent, and absence reads as health on every checklist ever written. The UTM audit finds the same silence in its tagging.

Is the output usable, or another report?

The change list is written as changes: pause this ad group, move this term to its own exact-match group, exclude these six at the shared-list level, raise this bid. Each carries the spend it affects and the campaign it lives in. The sheet behind it sorts by cost so a half-day of work goes to the rows worth a half-day.

How far back should the export go?

A quarter is usually right, and long enough that a term with a slow conversion path has had its chance. A short window also pushes more terms below the activity level Google will report at, so they never appear. Pull the same window you will report on, the way the Search Console keyword map uses the full sixteen months rather than one month of noise.

Google Ads Account Audit Report

Fill in the form and your workspace opens with the work already underway.