← All resources Product

Profit tracking: bid on profit, not revenue

Google Ads and Meta optimise for the conversion value you send them. For most shops that is revenue, so bidding treats a €100 order with a 10% margin the same as a €100 order with a 60% margin. Profit tracking sends the profit of every order instead, so your campaigns chase the orders that actually earn money. That is bidding on POAS (profit on ad spend) rather than ROAS.

How it works

Every purchase passes your tagging server before it reaches your server container. When profit tracking is on, the tagging server looks up the cost price of each item in the order, calculates the profit and adds it to the event as mb_profit. In your server container that is plain event data: use {{ed - mb_profit}} as the conversion value in your Google Ads and Meta tags.

The calculation

Per purchase, from the items in the event:

  1. Revenue excl. VAT. The item prices as your event sends them, after discounts, without VAT when your prices include it. Shipping the customer pays counts too if you choose so.
  2. Minus cost prices. Each item's cost price times its quantity. Items without one use your fallback margin.
  3. Minus order costs. A fixed cost per order (picking, packing), your shipping cost per order, and the payment fee as a percentage plus a fixed amount.
  4. Minus expected returns. An optional return rate lowers the profit of every order by that share.

An order that makes a loss sends mb_profit as 0, because Google Ads and Meta do not accept a negative conversion value. The dashboard still shows the real number.

Where the cost prices come from

Measurebase matches on every identifier a product has: product ID, variant ID, SKU and GTIN. Whichever one your events use as item_id, it finds the cost price. When your events send the product ID and the variants of that product have different cost prices, the product counts with their average.

Fallback margins

Not every product has a cost price: gift cards, new arrivals, bundles. Set a fallback margin, globally or per item_category, and those items count with that margin instead of disappearing from the profit. Without a fallback, an item without a cost price adds no profit.

Setting it up

  1. Add your cost prices. In the dashboard, open your domain, then Advanced tracking, Profit tracking. Choose a feed, a file or your shop.
  2. Set your order costs. VAT, shipping cost, payment fee, fixed cost per order and fallback margins. Try a sample order to check the result.
  3. Switch it on. From then on every purchase carries mb_profit.
  4. Use it in your tags. Tick Bid on profit (POAS) in the GTM template builder, and the Google Ads, Meta, TikTok and Snapchat purchase tags use {{ed - mb_profit}} as their value. In an existing container, create an Event Data variable for mb_profit and use it as the conversion value of those tags.

Before you switch your bidding

Profit is lower than revenue, so the values your campaigns learn from drop. A target ROAS set for revenue is too high for profit: lower it in line with your margin, or start with a separate conversion action and move your bidding over once it has collected data. Give Smart Bidding a few weeks to adjust.

Checking that it works

Profit in GA4

mb_profit also reaches GA4 with the purchase. Register it as a custom metric and GA4 reports profit next to revenue. If you'd rather keep your margins out of GA4, exclude the parameter in your GA4 tag in the server container.

Frequently asked questions

Can Google or Meta see my cost prices?

No. Only the profit of each order leaves your tagging server, as the conversion value.

Which plans include profit tracking?

Every plan, including Starter.

What about orders that are returned later?

Set an expected return rate and every order counts with that share already taken off. Adjusting individual orders after a return is not part of profit tracking yet.

My shop runs in more than one currency. Does that work?

Cost prices are kept in one currency. Purchases in another currency are not converted: they count as unmatched in the coverage, so you can see how much revenue that concerns.

Continue reading

Ready to move your tagging to Europe?

Start free, no credit card required. Live in about 15 minutes.

Start free