Sign in

Blog · Finance metrics and formulas · Sales teams

Google Ads ROAS: calculate and reconcile revenue

Calculate Google Ads ROAS from campaign spending and attributed sales. Reconcile conversion values, refunds, attribution windows, and finance revenue before comparing campaigns.

The short answerGoogle Ads ROAS is attributed conversion value divided by advertising spend. When the values represent sales revenue, a result of 3.66 means $3.66 of attributed revenue per advertising dollar. Match the conversion actions, attribution window, currency, and dates, then reconcile order values and refunds before using the result to compare campaigns.

Google Ads ROAS is conversion value divided by ad spend. To read the ROAS Google Ads reports as a sales return, first verify that conversion values represent revenue and reconcile them to orders and refunds. A high reported ratio cannot establish profit or prove that advertising caused every attributed sale.

Start with the value definition

Reported ROAS = Attributed conversion value / Advertising spend

Reconciled revenue ROAS = Attributed sales revenue after agreed adjustments / Advertising spend

Google describes return on ad spend in terms of conversion value per advertising dollar in its ROAS documentation. Its separate conversion-value guidance explains that values may reflect different business outcomes. That distinction matters before any division: a lead assigned a business value is not an invoice.

For a sales comparison, isolate purchase or closed-sale outcomes. Do not add a lead's assigned value to the eventual order revenue for the same customer journey. Retain other conversion actions in the export for investigation, but exclude them from the revenue numerator.

This is a return on advertising spend calculation. Return on assets answers a different finance question, using assets rather than media spending as its denominator.

Build the file from campaign and sales exports

Keep the original campaign identifiers and retain separate columns for reported value and reconciled sales value. You need campaign ID, reporting dates, ad cost, conversion action, reported conversion value, currency, and the attribution settings used for the extract. From the order or CRM export, bring the order identifier, sale date, gross sales amount, discounts, refunds, and campaign reference where available.

Use a distinct spend table when joining order rows. Repeating the whole campaign's spend beside every order and summing the joined file multiplies the denominator. Aggregate order revenue by campaign first, then join that summary to the campaign's spending total.

Write down the time basis. Google defines a conversion window as the period after an ad interaction during which a conversion is recorded. The window is not the same thing as the calendar dates selected for an accounting report. Keep the window fixed when comparing extracts, and record whether the sales file is grouped by interaction date, sale date, or ledger posting date.

For comparisons with another platform, use the separate Facebook Ads ROAS method. Matching the labels alone does not establish that the attribution rules match.

Work the calculation in a spreadsheet

Consider a US office-supply distributor reviewing completed September campaigns. These are illustrative sales values matched to its order register, with refunds assigned back to the original campaign. Both campaigns use the same reporting and attribution basis; all amounts are USD.

Put the following columns in A through F, with the campaign rows in rows 2 and 3:

Campaign Ad spend (USD) Matched gross sales (USD) Refunds (USD) Net attributed sales (USD) Revenue ROAS
Search replenishment 6,000 27,000 1,800 25,200 4.20x
Search new accounts 4,000 12,000 600 11,400 2.85x
Total 10,000 39,000 2,400 36,600 3.66x

In E2, subtract the refunds from the matched sales. In F2, divide by ad spend, then fill both formulas down:

=C2-D2
=IF(B2=0,"",E2/B2)

The blank result for zero spend means the ratio is undefined. It does not mean the campaign produced no revenue. Review such rows separately before ranking campaigns.

For the total in F4:

=IF(SUM(B2:B3)=0,"",SUM(E2:E3)/SUM(B2:B3))

The net calculation is $39,000 minus $2,400, or $36,600. Divide by $10,000 to get 3.66x. Before refunds, the same rows show $39,000 / $10,000 = 3.90x. Show which version appears in the platform export rather than silently replacing it.

Ratios here are displayed to two decimal places, with no rounding before division. The ordinary campaign average would be 3.525x, which rounds to 3.53x; it is not the combined return because spending differs.

Prove the total and bridge to finance

The first check is an identity: campaign revenue must equal campaign spend multiplied by campaign ROAS, using the unrounded ratios. In the table, $6,000 multiplied by 4.20 plus $4,000 multiplied by 2.85 equals $36,600. That matches net attributed sales.

The second check is a revenue bridge. Suppose the same September sales register contains the following mutually exclusive groups after refunds:

Finance sales group Net sales (USD)
Orders matched to the campaigns above 36,600
All other orders in the register 43,400
Sales-register total 80,000

The $36,600 campaign amount plus $43,400 of other sales equals the $80,000 register total. That register must tie to the agreed ledger revenue population, with any posting-date differences listed separately. Google-attributed sales need not equal all company revenue.

Keep unmatched orders and unmatched conversion values visible. Do not spread a reconciliation difference across campaigns merely to make the total close. A missing identifier, duplicate transaction, or late credit memo needs an explanation of its own.

Google supports restating or retracting conversions when their values change. Regardless of whether a platform adjustment has been made, your finance comparison should identify the original transaction and the refund without deducting the same refund twice.

Where it goes wrong

  • Lead values called sales. Assigned values for inquiries can make the arithmetic correct while the revenue label is wrong.
  • Fresh and mature periods compared. Recent campaigns may still receive sales, while older campaigns may already include returns. Use the same maturity rule.
  • Spend duplicated in a join. One campaign cost repeated across multiple orders inflates the denominator. Sum the original spend export as a control.
  • Channels added without deduplication. Two platforms may claim the same order. A cross-channel total needs an agreed allocation rule and an order-level duplicate check.
  • Revenue mistaken for contribution. A revenue ratio contains no product costs, fulfillment expense, or agency fees. Use marketing ROI versus ROAS for the profit question.

Reconcile your own campaign file in Covirage

Bring your campaign export and matched order or CRM file to Covirage. Covirage maps the columns; its tools compute and check spending, attributed sales, refunds, and the reconciliation, while the external AI model explains the results with every figure traced to its rows. Create a free Covirage account and bring a sample of your own export.

See sales insights for the supporting business context.

Covirage is not affiliated with Google.

Questions people ask

Is Google Ads conversion value always revenue?

No. Conversion values can represent sales amounts or assigned business values. Check the conversion action and its value definition before labeling the numerator revenue. A value assigned to a lead should remain labeled lead value until actual sales are matched.

Why does Google Ads revenue differ from accounting revenue?

The reports may use different dates, attribution rules, refund treatment, and transaction scope. Advertising attribution assigns credit for outcomes, while accounting records company sales. Build a bridge using order identifiers and identified adjustments instead of forcing both totals to match.

Should I average campaign ROAS figures?

Calculate the overall figure from total attributed revenue divided by total spend. An ordinary average gives a small campaign the same weight as a large campaign. Keep unrounded campaign figures when checking the result through a spend-weighted average.