Imagine pouring budget into a campaign that looks great on paper but costs you money. That’s the trap of ROAS return on ad spend metrics. Enter POAS: profit on ad spend. It cuts through the noise and focuses on actual cash in your pocket. In this article, you’ll learn how to set up POAS in your ad accounts & why it beats ROAS every time.


If you’re having trouble driving profit from your ad campaigns, we use a profit-first PPC Agency model. – ROAS looks good. Profit feels good.

Why POAS Beats ROAS Every Time

The hidden costs ROAS ignores

ROAS divides revenue by ad spend. It ignores the fees and expenses that eat into profit. Here are three sneaky culprits:

  • Payment processing fees. Industry averages hover around 2.9% per transaction.
  • Returns and return processing. Handling a return can cost 10–15% of the order value.
  • Discounts and promotions. Deep discounts can hide in conversion values.

Read more on hidden costs: The Hidden Post-Sale Costs That Secretly Erode Your Profit Margins (and How to Stop Them)

Real-world impact on profit

Consider two campaigns:

Campaign ROAS Profit per £1 spent What’s really happening?
A 500% –£0.20 High ROAS but losses after fees
B 200% £0.30 Lower ROAS but true profit gains

In Campaign A, fees and returns push you into the red, despite a headline-grabbing ROAS. Campaign B may look less impressive—until you see the green.

POAS is about springing actual business growth.

 

Read my war & peice article as to why we’ve made the shift here: POAS – The New Blueprint for Agency Accountability

Prerequisites for POAS Tracking

Before you begin, gather the following:

  • Sales revenue (per transaction)
  • Cost of goods sold (COGS)
  • Shipping costs
  • Platform fees (e.g., marketplace commissions)
  • Payment-processing fees
  • Discounts and promotions

💡 Pro Tip: Map your data sources. You’ll need read access to your CRM/ERP and write access to your ad platform.

Platform quirks:

  • Google Ads: requires offline conversion uploads or a BigQuery connector.
  • Facebook uses the Offline Conversions API.

Struggling with this? Our Analytics service could get you set up quickly.

 

Step-by-Step POAS Setup

1. Define your profit formula

Your foundation is a clear formula:

Profit = Revenue − (COGS + Shipping + Fees + Discounts)

List each cost type in a shared doc. This ensures everyone uses the same formula.

 

2. Import cost data via API or bulk uploads

  • Google Ads: Use Data Transfer to BigQuery, then sync conversions with your profit value. 
  • Facebook: Send profit per order via the Offline Conversions API endpoint.
  • Bulk CSV: Prepare a template with order_id and profit_value columns.

💡 Pro Tip: Automate these imports with a daily script to avoid manual errors.

 

3. Set up custom conversion values

In Google Ads:

  1. Go to Tools & Settings → Conversions.
  2. Edit your purchase action.
  3. Select the Import value per transaction.
  4. Map your profit_value field.

On Facebook:

  1. Configure your custom event for offline conversions.
  2. Map the value parameter to your profit metric.

4. Create a POAS custom column/dashboard

In Google Ads UI:

  1. Click Columns → Modify columns.
  2. Add a custom column with a formula:
    ${conversion_value} * {profit_margin}
  3. Save as “POAS”.

In Data Studio:

  • Build a chart pulling in your profit_value metric next to spend.

5. Validate & QA your numbers

Pick 20 random transactions. Cross-check profit values in the ad UI against your CRM. Any mismatch? Investigate missing costs or mapping errors.

 

Common Pitfalls & How to Avoid Them

  • Missing cost inputs. If you forget discounts or fees, POAS will be inflated.
    QA: Compare upload files against your finance system weekly.
  • Attribution mismatches. Different attribution windows can skew POAS.
    QA: Use consistent windows across platforms.
  • Data latency. Delayed cost data means outdated POAS.
    QA: Monitor timestamps on imported feeds.

“Can I use POAS in Facebook Ads?”

Yes—Facebook allows custom value imports via their Offline Conversions API. You’ll need developer access to set up the event mapping.

“What if my margins fluctuate daily?”

You can send dynamic profit values per order. Automate daily pulls from your ERP to keep POAS accurate.

 

Next Steps & Ongoing Optimisation

  • Automate data imports. Schedule daily or hourly syncs via API.
  • Cross-platform dashboards. Bring Google, Facebook, and other media POAS into one report.
  • Regular audits. Monthly checks catch missing costs before they become blind spots.

Conclusion

Tracking POAS transforms your campaigns from vanity metrics to profit drivers. You’ll see exactly which efforts pad your bottom line and which drain it. Ready to stop guessing and start growing? Audit your POAS setup today.