InBalance Petfood

How we shifted InBalance Petfood's Google Ads from ROAS to POAS and turned the margin headroom into a Germany launch
InBalance_Petfood

The situation: the numbers were good, we wanted them better

We have been running Google Ads for InBalance Petfood since December 2023. The numbers were good: healthy ROAS, steady growth, all campaign types in place. But ‘good’ is not where we stop.

Around that time we heard about ProfitMetrics, a tool that was still relatively new on the market. ProfitMetrics measures the actual margin per order rather than the revenue, and feeds that signal back into Google Ads. For a petfood brand with large margin differences between products, that sounded like exactly the step that could push the account further.

We installed it to test. We have not looked back to ROAS since.

Client Details

CLIENT NAME

InBalance Petfood

INDUSTRY

E-commerce

SERVICES

Google Ads · Tracking & Analytics · Reporting

TIMELINE

2023 – current

The approach: measure first, bid second, in three phases

We moved the account from ROAS to POAS in deliberate stages. No big bang, no account freeze. A clear order of operations.

Phase 1: Install ProfitMetrics

ProfitMetrics shows the actual margin per order, not just the top-line revenue. A solid tracking setup is the precondition for that: without reliable data you are bidding on noise. We chose it because it was one of the earliest profit tools on the market, and its Google Ads integration had been live long enough to trust.

The setup:

  • Margins per SKU imported into ProfitMetrics
  • PM Gross Profit and PM Revenue conversion actions live in Google Ads
  • POAS set as secondary goal first, so we could validate the signal before betting the budget on it

Phase 2: Move POAS to primary and restructure the campaigns

A few weeks in, the POAS data gave us a clearer picture of what the account was actually doing. Performance Max, the campaign type Google actively pushes, was not delivering the strongest POAS for InBalance. The reason was structural: Performance Max bids at the campaign level and mixes high- and low-margin SKUs together. Standard Shopping lets you bid per product group.

What we changed:

  • POAS moved to primary goal across all campaigns
  • Performance Max pulled back where the margin did not justify it, replaced by Standard Shopping
  • A custom script added to split Shopping into branded and non-branded, so each could be bid on separately
  • A dedicated new-customer campaign added, fed with customer lifetime value signals on top of the POAS data

Phase 3: Reinvest the headroom in Germany

Once the Dutch account ran comfortably on POAS, there was margin to spare. The choice was to spend more in the Netherlands at diminishing returns, or to use that headroom to open a second market.

We launched in Germany with a clean set: Branding, Standard Shopping and Performance Max. Small budgets, POAS bidding from day one, scale only when the numbers carry it.

7,65

POAS

10

MER

86%

RETURNING ORDERS

Why POAS moves the budget toward profit

POAS stands for Profit on Ad Spend: it measures the actual gross profit per order instead of the revenue. A premium bag of food and a bag of filler at the same price return completely different profit.

Take two 40-euro orders. One is a premium bag of food with a 15-euro margin. The other is a mix of lower-margin products with a 5-euro margin. On ROAS bidding those conversions are identical. On POAS bidding the algorithm keeps bidding on the first and pulls back on the second.

That difference reshapes the campaign structure. Performance Max bids at the campaign level and mixes high- and low-margin products together, which showed up directly in the POAS data. Standard Shopping with a branded and non-branded split lets the algorithm bid on the actual margin per product group, not on the top-line revenue.

And we do not stop at the first order. In petfood the profit sits in the repeat purchase: 86% of all orders come from returning customers. A new customer earns back its acquisition cost in gross profit within a year, and keeps ordering after that. So we feed customer lifetime value into the POAS signal for the new-customer campaigns, which keeps them running on a first-order POAS that looks thin on paper but pays back many times over the customer’s life.

The result: a profitable account with room to grow

The Google Ads account has been running structurally profitable since the POAS migration: a POAS of 7.65 and a blended MER of 10, meaning 10 euro of revenue for every euro of ad spend across the whole account. The campaign mix looks different than it did a year ago. Performance Max has been replaced in most places by Standard Shopping with a branded and non-branded split, and a dedicated new-customer campaign runs on POAS and LTV signals alongside the evergreen campaigns.

With that profit headroom in the Netherlands, InBalance has been live in Germany since 2025. Branding, Standard Shopping and Performance Max run there on the same POAS logic, started small, scaling as the numbers carry it.

A POAS of 7.65 is profitable, but it is also a sign that growth is being left on the table: the account is under-invested. The next move is to deliberately bring POAS down on the non-brand campaigns and put that headroom into new customers, fed by the LTV signal. The brake sits at account level: as long as the blended MER stays above the profitability floor, every euro that lowers POAS brings in new customers who keep ordering for years.

We can only steer this because we measure profit and customer value, not revenue. The numbers tell us exactly how far we can let POAS fall before growth starts to cost us profit.

Want results like this?

Book a free audit and we’ll show you exactly where your campaigns are leaving money on the table.