A campaign with a 500% ROAS looks like a winner on any dashboard. It can still lose money, because revenue says nothing about what is left after product costs, shipping and returns. POAS closes that gap. It tells you how much gross profit each unit of ad spend brings in, and so whether your ads grow the business or only the top line.
This guide covers what POAS is, how to calculate it (with a worked example and a calculator), how it compares with ROAS and ROI, what a good POAS looks like and how to measure it in Google Ads, Meta and GA4. The definitions come from ProfitMetrics, which holds POAS as a trademark, and the setup steps from Google Ads Help, Merchant Center Help and GA4 Help; the examples are ours. At Viralistic we measure what matters to the business: enquiries, their quality and the cost of a new client. For an online store, POAS is the most honest number an ad account can show you.
What is POAS?
POAS stands for profit on ad spend. It is a KPI for paid advertising that divides the gross profit generated by your ads by the cost of those ads. Instead of asking how much a campaign sold, it asks how much of that revenue you keep once the variable costs are paid.
ProfitMetrics, which uses the term as a trademark (POAS®), defines the gross profit in the formula as what remains after variable order costs such as cost of goods sold, shipping, payment fees and packaging. Fixed expenses like rent and salaries stay out (ProfitMetrics on the POAS formula). The logic is simple. The R in ROAS was meant to be return. Because ad platforms never received profit data, that return quietly became revenue. POAS puts profit back into the equation.
You will also see it written as profit over ad spend. Same metric, same maths. And if a search for POAS lands you on a volcano in Costa Rica or an acronym list, you are not alone: in marketing it always means profit divided by ad spend.

Which costs belong in the profit figure?
At its simplest, gross profit is revenue minus the cost of the goods you sold. The more variable costs per order you include, the closer POAS gets to your real result. Fixed costs stay out, because you pay them whether or not you advertise tomorrow.
| Cost | Include in POAS? | Why |
|---|---|---|
| Cost of goods sold (COGS) | Yes | The core of gross profit |
| Discounts and promo codes | Yes | They lower what an order actually earns |
| Shipping and packaging you pay for | Yes | They vary with every order |
| Payment processing fees | Yes | They scale with every transaction |
| Expected returns | Yes, as an average rate | Otherwise POAS looks better than your bank balance |
| VAT or sales tax | No, work net of tax | It is not income to you |
| Ad spend | No | It is the denominator |
| Rent, salaries, software | No | Fixed costs are paid from what is left after ads |
Pick one definition and stick to it. Using product cost only gives a higher POAS than including every variable order cost. Both work, as long as you compare campaigns and periods with the same definition.
How to calculate POAS
You calculate POAS by dividing the gross profit from your ads by your ad spend. The result is a ratio: a POAS of 2 means EUR 2 of gross profit for every euro spent.
POAS = gross profit from ads ÷ ad spend
Some teams express it as a percentage, so 2 becomes 200%. The maths does not change.
Worked example
An online skincare brand spends EUR 4,000 on Google Ads in a month. The campaigns bring in EUR 20,000 in revenue, excluding VAT. The products sold cost EUR 10,000. Shipping, packaging, payment fees and returns add another EUR 2,000.
| Line | Amount |
|---|---|
| Revenue from ads (excl. VAT) | EUR 20,000 |
| Cost of goods sold | EUR 10,000 |
| Gross profit after COGS | EUR 10,000 |
| Variable order costs | EUR 2,000 |
| Gross profit after order costs | EUR 8,000 |
| Ad spend | EUR 4,000 |
ROAS is EUR 20,000 ÷ EUR 4,000 = 5, or 500%. Counting product cost only, POAS is EUR 10,000 ÷ EUR 4,000 = 2.5. Counting all variable order costs, POAS is EUR 8,000 ÷ EUR 4,000 = 2.0. After paying for the ads, EUR 4,000 remains to cover fixed costs and profit. One campaign, three numbers, and only the last one tells you how much room you really have.
Use the calculator below to run your own numbers. The defaults reproduce the worked example.
- ROAS
- 5.00
- Gross profit after order costs
- € 8,000
- POAS
- 2.00
- Left after ad spend
- € 4,000
Your POAS is 1 or higher: the ads pay for themselves and everything above 1 goes towards fixed costs and profit.
POAS vs ROAS: what is the difference?
ROAS divides revenue by ad spend. POAS divides gross profit by ad spend. ROAS tells you how much you sell per unit of budget, POAS how much you earn from it. With one fixed margin you can convert one into the other. Once margins vary by product or by order, the two can point in opposite directions.
The conversion is short: POAS = ROAS × gross margin, with the margin as a share of revenue. It also explains the familiar break-even ROAS of 1 ÷ gross margin. At a 40% margin, break-even ROAS is 2.5, and that is exactly where POAS hits 1. For the full ROAS method, including break-even and target ROAS, read our guide to ROAS.
| ROAS | POAS | ROI | |
|---|---|---|---|
| Numerator | Revenue (conversion value) | Gross profit from ads | Net profit from the investment |
| Denominator | Ad spend | Ad spend | Total investment |
| Break-even | 1 ÷ gross margin, different per business | Always 1 | 0% |
| Shows | Sales volume per unit of budget | The profit contribution of your ads | Return after all costs |
| Data needed | Revenue per conversion | Cost or margin per product or order | All costs and returns |
ROI goes one step further than POAS, because it also counts fixed costs and your team’s time. We compare the three in more depth in ROI.
The gap between ROAS and POAS becomes obvious when three product lines from the skincare brand all hit the same ROAS.
- ROAS
- POAS
| ROAS | POAS | |
|---|---|---|
| Gift sets (18%) | 5.00 | 0.90 |
| Core range (35%) | 5.00 | 1.75 |
| Own label (60%) | 5.00 | 3.00 |
Worked example: POAS = ROAS × margin
On ROAS the three look identical. On POAS the own-label line earns EUR 3 of gross profit per euro of spend, the core range makes a healthy profit and the discounted gift sets lose 10 cents on every euro. If you optimise on revenue, budget flows to whatever sells most easily. That is rarely the same as whatever earns most.
So when is ROAS enough? If your margin is roughly the same across the catalogue, a well-calculated target ROAS gives you the same picture. POAS earns its keep when margins differ a lot, when you run frequent promotions or when shipping costs swing from order to order. We will say it plainly: switching takes setup work, and it only pays off if it changes your decisions.
What POAS does not tell you
POAS inherits the attribution of the platform that reports it. Google Ads and Meta each credit a sale to their own ads, so a POAS of 2 in both accounts can describe the same orders twice. Attributed profit is also not the same as extra profit. A brand campaign with a POAS of 6 mostly collects orders from people who were already on their way to you, which is the question incremental ROAS (iROAS) tries to answer.
Two checks keep POAS honest. Once a month, divide the total gross profit of your store by your total ad spend across all channels. That blended figure resembles MER, the marketing efficiency ratio, but on profit instead of revenue, and it cannot count a sale twice. With larger budgets, add a holdout test: lift studies in Google Ads and Meta compare people who saw your ads with people who did not, and show the profit the ads really added.
What is a good POAS?
A good POAS is above 1, and how far above depends on your fixed costs and your goals. There is no reliable industry benchmark, because every business defines gross profit differently: one counts product cost only, another includes shipping, fees and returns. Compare your POAS with your own target, not with somebody else’s number.
A POAS of exactly 1 is break-even on variable costs. The ads pay for themselves but contribute nothing to rent, salaries or software. Only what sits above 1 keeps the business running.
How to set a target POAS
First decide how much of your revenue you want left after ad spend to cover fixed costs and profit. Your target POAS then follows from one formula, with both values as a share of revenue:
Target POAS = margin ÷ (margin - desired profit after ad spend)
In the worked example, the margin after variable order costs is 40% (EUR 8,000 of EUR 20,000). If the brand wants to keep 20% of revenue after ads, advertising can take at most 20% of revenue. The target POAS is 0.40 ÷ 0.20 = 2.0. That is the same calculation as a target ROAS of 1 ÷ 0.20 = 5, or 500%, expressed in profit instead of revenue. The campaign in the example lands exactly on target.
The chart shows how quickly that target climbs as you ask for more.
| Target POAS | |
|---|---|
| 0% | 1.00 |
| 5% | 1.14 |
| 10% | 1.33 |
| 15% | 1.60 |
| 20% | 2.00 |
| 25% | 2.67 |
Worked example: margin ÷ (margin - desired profit)
The curve gets steep fast. Wanting 25% profit at a 40% margin means a POAS of 2.67, which is hard to sustain at scale. That is not a reason to lower your ambition. It is a reason to work on margin first, because every extra point of margin lowers the bar straight away.
New and returning customers
A POAS below 1 is not always a mistake. If you acquire customers who come back, the first order can earn less than it costs, as long as profit across the whole relationship makes up for it. Do this on purpose: use your real repeat-purchase data, watch your cash flow and agree up front how long you accept the investment. Our articles on customer lifetime value and CAC show how to put a number on both sides.
Judge brand campaigns separately. People who search for your name were already looking for you. Those campaigns usually post a high POAS, but they say little about how well your ads reach new customers.
Where to measure profit on ad spend: Google Ads, Meta and GA4
None of the three platforms has a standard column called POAS. You measure it by sending profit instead of revenue as the conversion value, or by putting profit data next to your ad costs.

| Platform | Where you see POAS | What you need to send |
|---|---|---|
| Google Ads | Conversion value/cost, or gross profit with cart data | Profit as conversion value, or cart data plus COGS in Merchant Center |
| Meta Ads Manager | Purchase ROAS, once the value you send is profit | Profit as value through the Meta pixel or the Conversions API |
| GA4 | A calculated metric you build | A profit parameter on the purchase event |
Google Ads
Google Ads optimises towards whatever conversion value you send, and Google names profit as an option itself. With the Target ROAS bid strategy, “bids are set to maximize conversion value, such as sales revenue or profit margins” (Google Ads Help on conversion values). Send gross profit per order instead of revenue, and the Conversion value/cost column becomes your POAS. Target ROAS then effectively bids towards a target POAS. A target POAS of 2.0 goes into Google Ads as a target ROAS of 200%. For how the auction and bid strategies work, see search engine advertising explained.
Prefer to keep revenue as your conversion value? Google can still report on profit alongside it. With conversions with cart data, every purchase tells Google which products were sold. Combine that with the cost_of_goods_sold attribute in your Merchant Center feed and Google Ads calculates metrics such as gross profit and gross profit margin at campaign, ad group and product level (metrics available with cart data). Products without a cost value in the feed are left out of the profit calculation, so an incomplete feed gives you an incomplete picture.
Meta Ads Manager
Meta reports Purchase ROAS: purchase conversion value divided by amount spent. That value is whatever you pass through the Meta pixel or the Conversions API. Pass gross profit instead of revenue and the column becomes your POAS, while value optimisation starts chasing profit rather than order size. In June 2025 Meta announced a test of profit-based optimisation through the Conversions API; check in Ads Manager whether your account has access before you plan around it.
Google Analytics 4
GA4 has no built-in profit metric. You can send a custom parameter with the profit per order on the purchase event and register it as a custom metric with the currency unit of measurement (GA4 Help on custom metrics). A calculated metric then divides that profit by your ad costs. That lets you compare POAS across channels, including channels that never receive profit data themselves.
One caution on sensitive data. If you print the profit per order in the source code of your thank-you page or in the data layer, anyone with a browser can read your margins. Calculate profit on your server and send it from there.
Switching from ROAS to POAS
If you want campaigns to bid on profit, this order works:
- Start offline. Put POAS next to ROAS per campaign in a spreadsheet for a few weeks; the campaigns where a high ROAS hides a thin margin show up fast.
- Make sure the cost price per product or variant is stored in your store, along with the variable order costs you want to include.
- Calculate the profit per order at checkout, preferably on your server.
- Send that profit as the conversion value to Google Ads and Meta, and keep revenue visible as a secondary conversion or in GA4.
- Convert your target: old target ROAS times your margin. A 500% target ROAS at a 40% margin becomes 200%.
- Give the bidding algorithm a few weeks and judge results over a full conversion cycle.
Step 5 is the one people forget. Leave the old target ROAS in place while conversion values suddenly drop, and the system bids far less and your traffic falls away.
There is a lighter route too. Instead of sending profit as the conversion value, you split your catalogue into margin groups with a custom label in your Merchant Center feed and give each group its own target ROAS, derived from that group’s break-even ROAS. Google lists margin as an example use for these labels, which work in Performance Max, Shopping and Demand Gen campaigns (Merchant Center Help on custom labels). Your revenue reporting stays intact. The steering is coarser than profit per order, though, because within a group Google still treats every euro of revenue as equally valuable.
How to earn more profit per euro of ad spend
You improve POAS by earning more gross profit per order, wasting less budget or getting more orders from the same clicks. In practice the first lever is the best place to start.
Start with how the budget is split. Give high-margin products more room than products you barely earn on, either with profit as the conversion value or with the margin groups described above. Products that stay below a POAS of 1 do not automatically belong in your ads. Sometimes they are worth it as an entry product, but then that is a decision, not an accident.
Then look at the order itself. A higher average order value spreads fixed order costs over more revenue, for instance through bundles or a free-shipping threshold set just above your typical basket. Be careful with discounts, because every promo code comes straight off your margin. And reduce returns with better product information and photography that shows exactly what people will get.
Finally, the website. Every visitor who leaves your landing page without ordering has already been paid for. A faster page, a clearer offer and less friction at checkout raise POAS without adding a cent of budget. We test changes like these with A/B tests, so you know what works rather than guess. Our guide to conversion rate optimisation shows how.
Look beyond the ad account too. A strong organic presence makes every paid click more effective, because people who look you up find a consistent brand they trust. That is why our marketing approach starts with the foundation and adds ads only once the basis is healthy.
Profit on ad spend for service businesses and lead generation
POAS comes from e-commerce, where every order has a known value and a known margin. If you sell services and clients arrive through an enquiry, you do not know what a conversion is worth when it happens. The principle still holds: look at the profit behind an enquiry, not the number of forms.
Value per enquiry = gross profit per new client × share of enquiries that become clients
Say an architecture studio earns an average gross profit of EUR 9,000 on a new project and one in four enquiries becomes a client. Each enquiry is then worth EUR 2,250. If an enquiry from Google Ads costs EUR 450, the POAS per enquiry is EUR 2,250 ÷ EUR 450 = 5. To work out the most you can pay per enquiry, use your CPA.
Real outcomes beat estimates. With an offline conversion import you tell Google Ads afterwards which enquiries became clients and what they were worth. The bidding algorithm then learns which searches lead to good clients, not just to completed forms. This is what we usually steer on at Viralistic: the number of enquiries, their quality and what a new client ultimately costs.
Common mistakes when steering on profit
Most POAS mistakes have nothing to do with the formula. They come from the numbers you feed into it.
| Mistake | What happens | How to avoid it |
|---|---|---|
| Using revenue including VAT | Profit looks higher than it is | Work net of VAT throughout |
| Ignoring returns | POAS is inflated in categories with many returns | Deduct an average return rate per category |
| Changing the profit definition | Periods and campaigns become impossible to compare | Fix one definition and use it everywhere |
| Keeping the old target ROAS after switching | Bids collapse and traffic drops | Convert the target using your margin |
| Exposing profit in the page source | Anyone can read your margins | Send profit server-side |
| Treating a POAS of 1 as profit | Fixed costs stay unpaid | Steer on a target POAS above 1 |
| Judging new customers on their first order only | You choke off growth | Build customer value into your target |
How we help
Marketing at Viralistic starts organic. Before we let your ad budget chase profit, we check whether the foundation holds: a clear story, a fast website that turns visitors into clients and measurement that works. If something is missing there, we tell you, because paid campaigns only make a leak bigger.
When the foundation is healthy and you want to grow with Google Ads or Meta Ads, we set up measurement around what your business earns. For an online store that usually means POAS: profit per order against what the ads cost. For a service business it is enquiries, their quality and the cost of a new client. We test broadly first, review the numbers with you and move budget to what demonstrably works. Where it saves time, we connect your store and your ad accounts with an automation in n8n, and a person checks every step, also when AI helped. Read more about how we approach marketing, or about what to look for in Google Ads management.
Frequently asked questions
What is POAS in marketing?
POAS stands for profit on ad spend. It is the gross profit your ads generate divided by your ad spend. A POAS of 2 means every euro of advertising brought in EUR 2 of gross profit. Where ROAS looks at revenue, POAS shows whether your ads actually make money once product and order costs are paid.
What is the difference between ROAS and POAS?
ROAS divides revenue by ad spend, POAS divides gross profit by ad spend. ROAS tells you how much you sell per unit of budget, POAS how much you earn. Break-even POAS is always 1, while break-even ROAS depends on your margin: 1 divided by gross margin. When margins vary across products, POAS gives the more honest picture.
How do you calculate POAS?
Divide the gross profit from your ads by your ad spend. Gross profit is revenue excluding VAT, minus the cost of goods sold and, ideally, variable order costs such as shipping, payment fees and returns. For example, EUR 8,000 gross profit on EUR 4,000 ad spend gives a POAS of 2.0. Keep the same profit definition so comparisons stay fair.
What POAS should I aim for?
Aim for a POAS that beats your own target POAS, and that target is always above 1. At exactly 1, your ads only pay for themselves and leave nothing for fixed costs. How far above 1 you need to be depends on your margin and the profit you want to keep. There is no universal benchmark, because every business defines profit differently.
Is a POAS of 1 break-even?
Yes, on variable costs. At a POAS of 1, the gross profit from your ads exactly covers what you spent on them. Rent, salaries and software are not covered yet, so a POAS of 1 is not profit for the business. Set a target above 1 that leaves room for fixed costs and the margin you want to keep.
What does a POAS of 2 mean?
A POAS of 2, sometimes written as 2:1, means every euro or dollar of ad spend brought back two in gross profit. After paying for the ads, one euro per euro spent is left for fixed costs and profit. Whether that is enough depends on your target POAS, which follows from your margin and the share of revenue you want to keep.
Is POAS better than ROAS?
POAS is better when your margins differ across products or orders, because it shows profit rather than revenue. If your margin is nearly the same everywhere, a well-calculated target ROAS gives the same answer with less setup. POAS needs cost data per product and a way to send profit to your ad platforms, so it pays off once it changes decisions.
What is the difference between ROAS and iROAS?
ROAS credits all revenue the platform attributes to your ads. iROAS, incremental ROAS, counts only the revenue the ads added, measured with a holdout or lift test against people who did not see them. Brand campaigns often show a high ROAS and a low iROAS. The same logic applies to profit: attributed POAS is not the same as extra profit.
Can you bid on POAS in Google Ads?
Yes, through the conversion value. Send gross profit per conversion instead of revenue and use Target ROAS or Maximize conversion value. Google then bids on profit. A target POAS of 2.0 goes in as a target ROAS of 200%. Convert your old target when you switch, or the algorithm will bid far less than you intend.
Written by
Founder of Viralistic and official n8n Ambassador
Marrallisa leads strategy, design, search and automation for premium brands from Amsterdam. She has trained teams at Volkswagen and speaks at n8n and Anthropic events. Want to talk through your situation? Book a call with her directly.