ROAS explained

What is ROAS? The meaning of return on ad spend

In marketing, ROAS means return on ad spend: the revenue your ads brought in divided by what those ads cost. A ROAS of 4.0x means $4 of revenue for every $1 of ad spend. Whether that is good depends on your margin, so read ROAS next to your break-even ROAS and the profit left after costs.

What does ROAS mean in marketing?

ROAS stands for return on ad spend. It tells you how much revenue your advertising is associated with for every unit of currency you spend on it: the revenue from your ads divided by the cost of those ads.

A ROAS of 4.0x, also written 4:1 or 400%, means the ads brought in $4 of revenue for every $1 they cost. That is revenue, not profit. ROAS on its own says nothing about product costs, shipping, payment fees or refunds, which is why the same ROAS can be a profit for one store and a loss for another.

The revenue in a ROAS also depends on who measures it. An ad platform counts the revenue it credits to its own ads under its own attribution settings, while your store counts every order once. Before you compare two ROAS figures, check which revenue each one uses.

The ROAS formula, with a worked example

ROAS = revenue from ads ÷ ad spend. Use the same date range and the same currency for both numbers.

Illustrative example: a campaign costs $1,000 over a month, and the orders credited to it add up to $5,000. Its ROAS is $5,000 ÷ $1,000 = 5.0x. For every $1 of ad spend, the campaign brought in $5 of revenue.

To show ROAS as a percentage, multiply by 100: 5.0x is 500%. Google Ads asks for target ROAS as a percentage, so a goal of 5.0x is entered as 500%.

ROAS as a multiple and as a percentage (illustrative)
Ad spendRevenue from adsROASAs a percentage
$1,000$8000.8x80%
$1,000$2,0002.0x200%
$1,000$5,0005.0x500%
$2,500$6,0002.4x240%

What is a good ROAS? It depends on your margin

There is no single good ROAS for every store. A ROAS is good for you when it is above your break-even ROAS: the point where the ad cost uses up exactly the profit your orders leave before advertising.

Break-even ROAS = 1 ÷ margin before ad spend. Margin before ad spend is the share of revenue left after refunds, taxes (sales tax or VAT), product costs, payment fees and shipping. The thinner that margin, the higher the ROAS your ads have to reach.

Worked example, not a customer result: $5,000 of revenue with $250 of refunds, $2,000 of product costs, $200 of payment fees, $350 of shipping and no sales tax or VAT leaves $2,200 before ad spend, a 44% margin. Break-even ROAS is $5,000 ÷ $2,200, about 2.27x. If $1,000 of ads brought in those orders, the 5.0x ROAS is well above break-even, and $1,200 remains after the ad cost.

Margin is not the only thing that moves the ROAS to aim for. Customers who buy again can make a first order near break-even worth it, which that order's ROAS does not show. A launch or a test can run close to break-even for a while, while a campaign that has to earn money needs a target above it, with room for the costs the formula leaves out, such as rent, salaries and software.

Break-even ROAS by margin before ad spend (illustrative)
Margin before ad spendBreak-even ROASA campaign at 3.0x ROAS
50%2.0xAbove break-even: profit after the ad cost
40%2.5xAbove break-even: profit after the ad cost
33.3%3.0xExactly at break-even
25%4.0xBelow break-even: a loss after the ad cost
20%5.0xBelow break-even: a loss after the ad cost

ROAS in Meta Ads and Google Ads reports

Ad platforms work out ROAS from the conversion value they credit to their own ads. Meta's website purchase ROAS divides the conversion value of website purchases, recorded by the Meta Pixel or the Conversions API and attributed to your ads, by the amount spent. Meta notes that it may use statistical modeling when purchase data is partial or missing. In Google Ads, the Conv. value / cost column divides total conversion value by the total cost of your ad interactions.

Each platform credits purchases under its own rules. Meta uses the attribution setting of each ad set, for example 7-day click and 1-day view, so a purchase can count after someone saw an ad without clicking it. Google Ads gives each conversion action a conversion window, 30 days after a click by default. Its Conversions column counts a conversion on the date of the ad click, not the purchase, and data-driven attribution is the default for most conversion actions.

So two networks can both claim one order, and adding up the revenue each one reports can overstate what your ads earned together. The value inside each network's ROAS is the value sent with each purchase: WeProfit sends the order's checkout total, after discounts and with shipping and tax, in the order's own currency. A purchase that WeProfit's delivery log marks as sent was accepted by the network, which is not the same as the network crediting it to an ad.

ROAS vs POAS vs MER

Three ratios answer three different questions. ROAS asks how much revenue each unit of ad spend is associated with. POAS, profit on ad spend, asks how much profit before advertising each unit of ad spend leaves. MER, the marketing efficiency ratio, asks how much total store revenue you made per unit of total ad spend, across every channel, with each order counted once.

POAS and break-even ROAS mark the same point. POAS = margin before ad spend × ROAS, so a campaign exactly at its break-even ROAS has a POAS of 1.0x. In the example above, a 44% margin and a 5.0x ROAS give a POAS of 2.2x.

The three ratios side by side (illustrative)
RatioFormulaExample
ROASRevenue from ads ÷ ad spend$5,000 ÷ $1,000 = 5.0x
POAS(Revenue − refunds − taxes − product costs − payment fees − shipping) ÷ ad spend$2,200 ÷ $1,000 = 2.2x
MERTotal store revenue ÷ total ad spend$40,000 ÷ $10,000 = 4.0x for a whole store in one month

Where ROAS misleads

ROAS is quick to read, which makes it easy to trust too much. Check these before you move budget.

  • Margins. Two campaigns with the same 5.0x ROAS can leave $1,200 of profit or a $500 loss, depending on product costs, refunds, payment fees and shipping. The ROAS vs POAS guide works through both.
  • Overlapping credit. Meta, Google Ads and the other networks each count the orders they credit to their own ads, so their figures can overlap. Compare them with your store's orders, not with each other.
  • View-through credit. Depending on the attribution setting, a network can credit a purchase to an ad that was seen but not clicked. Google Ads keeps view-through conversions out of its main Conversions column.
  • The revenue definition. The value WeProfit sends with each purchase includes shipping and tax, and refunds are never sent to Meta, Google Ads or the other ad networks: only Google Analytics 4 receives them. Your own ROAS may use revenue after refunds or without tax.
  • Dates. The Google Ads Conversions column files a conversion under the date of the ad click, while WeProfit and Shopify count an order on the day it was placed, so a daily ROAS can still move after the day is over.
  • First orders only. ROAS on a first purchase leaves out what those customers buy later, so it can undervalue ads that bring in repeat buyers.
  • Small numbers. A few orders can swing ROAS a long way. Read it over a period with enough orders to mean something.

How WeProfit shows ROAS

WeProfit puts ROAS next to the costs behind it. On the Overview, the POAS card divides profit before ad spend by ad spend. Hover How POAS is computed to see Profit before ad spend, Ad spend, ROAS (revenue / spend) and Break-even POAS at 1.00x. The card turns red below 1.00x and shows No ad spend in this period when there was none.

On the Attribution page, Profit by channel & campaign gives every channel and campaign row its own break-even ROAS: revenue ÷ profit before ad spend. The Break-even column compares it with the row's ROAS, in green when the ROAS is at or above break-even and in red when it is below. A row whose profit before ad spend is zero or negative reads Loses per sale, and spend without matching orders reads No matched orders.

Each order counts once, in the one channel WeProfit linked it to and at most one campaign, so the channel rows add up to your store's profit and loss. This ROAS uses the order revenue WeProfit recorded, not the conversion value a network reports. Ad spend is stored per day and campaign, so ROAS and POAS go down to campaign level, not to ad sets or ads.

Spend from connected Meta, Google Ads and TikTok ad accounts syncs every hour. For any network, you can also add spend by hand, as a daily schedule or through the developer API.

Related platform documentation

A LITTLE MORE CLARITY

Good questions.
Clear answers.

Have something else in mind?

Talk to our team

A ROAS of 3, written 3.0x or 300%, means $3 of revenue for every $1 of ad spend. Whether it makes money depends on your margin before ad spend: at 33.3% it is exactly break-even, at 50% it leaves a profit after the ad cost, and at 25% it loses money. Divide 1 by your margin to find your own break-even ROAS.

Give your ads better conversion data.

All 10 networks included. Plans from $19/month per store.

Start your 14-day free trial