---
title: "Magento Server-Side Tracking and Profit | Product Metrics"
description: "Server-side tracking for Magento and OpenMage. Every order reaches Google Ads and Meta from your own domain, through every ad blocker, with its profit for POAS bidding."
canonical: "https://www.productmetrics.io/platforms/magento"
pageType: integration
language: en
publisher: "Product Metrics"
dateModified: 2026-10-22
---

> Content index: https://www.productmetrics.io/llms.txt

# Server-side tracking for Magento, built for POAS bidding on Google Ads and Meta.

Install the Product Metrics module for your Magento line: 2.4, 2.0, or 1.9 and OpenMage. Every order then reaches Google Ads and Meta from your own domain, confirmed from Magento, with its revenue, profit, customer type and lifetime value.

- Every ad blocker
- Your own store domain
- Included in Pro

## What every Magento order sends

Order #1042:

| Signal | Value |
| --- | --- |
| Revenue | €139.99 |
| Profit | €50.91 |
| Customer | New |
| Lifetime value | €420 |

- Sent from yourstore.com/…
- Through every ad blocker
- Google Ads: Received
- Meta: Received
- POAS bidding on both

_Illustrative data_

## A browser tag or Product Metrics on Magento. What reaches Google Ads and Meta.

A browser tag and Product Metrics on Magento compared:

| What counts | A browser tag / GTM | Product Metrics on Magento |
| --- | --- | --- |
| Ad blockers | ✗ Blocked, also behind Google tag gateway or server-side GTM | ✓ Gets through every ad blocker |
| Safari ITP | — Tags load, cookies cut to 7 days | ✓ First-party cookie lasts 30 days |
| Where it runs | — In the visitor’s browser | ✓ Server-side, from your own domain |
| Purchases | — As the browser reports them | ✓ Confirmed from the Magento order; refunds adjust |
| Profit | — Order value only | ✓ From the item cost on each Magento order |
| New customers | — Not marked by default | ✓ Marked new or returning, with lifetime value |
| POAS bidding | ✗ Not without profit in the conversion | ✓ On Google Ads and Meta |

- [See the ad blocker test](https://www.productmetrics.io/ad-blocker-conversion-tracking)

## What it adds to your Magento store. Profit, every purchase, new customers.

- **Bid on profit with POAS.** Each order reaches Google Ads and Meta with its profit, so both can bid on POAS. It works on ROAS right away; connect margins to switch to POAS.
- **Every purchase counts.** Full Signal Tracking gets through every ad blocker. It runs on a unique endpoint on your own domain that auto-rotates if it is ever blocked.
- **Win new customers.** Each purchase is marked new or returning, with its lifetime value, so Google Ads and Meta can tell first orders apart and bid for new customers.

- [POAS vs ROAS](https://www.productmetrics.io/blog/poas-vs-roas)
- [How Full Signal Tracking works](https://www.productmetrics.io/server-side-tracking)
- [MER and nCAC calculator](https://www.productmetrics.io/mer-calculator)

## Trusted by ecommerce teams running Google Shopping at

- DocHorse
- Rajapack
- Soundimports
- FDX.com
- beterwitgoed.nl
- snackje.nl

- 1M+ products analysed
- €750K+ monthly Shopping spend under management
- Founder's work nominated at the Dutch Search Awards: Best Measurement Campaign 2023 · Best Use of Data 2024

## Same ROAS, different profit. POAS shows which product pays.

POAS = ROAS × contribution margin %. At a POAS of 1 a product breaks even; above 1 it earns more than its ads cost.

| Product | ROAS | Contribution margin | POAS | After €100 of ads |
| --- | --- | --- | --- | --- |
| Product A | 4 | 40% | 1.6 | Earns €60 |
| Product B | 4 | 20% | 0.8 | Loses €20 |

_Illustrative data_

- [Work out your POAS](https://www.productmetrics.io/poas-calculator)

## Live in 5 easy steps. One for 2.4, 2.0, or 1.9 and OpenMage.

1. **Install the Product Metrics module.** From the Adobe Commerce Marketplace, as a ZIP or with Composer. Install the one module that matches your Magento line, then run setup, compile and refresh the cache.
2. **Save your configuration file.** Product Metrics generates one configuration file per store view. Save it on the server where the module expects it.
3. **Run Magento cron.** Cron sends order changes to Product Metrics every two minutes, so keep it running.
4. **Allow the script in your CSP.** If your store sets a Content Security Policy, allow its own script path.
5. **Pick your purchase conversion action.** Connect Google Ads in Workspace → Tracking and choose where purchases land.

- **Who does it.** A developer or admin with shell access to the Magento server.

- [Analyse your products for free](https://app.productmetrics.io/): Log in with Google, no credit card

## How it runs on Magento. What runs where.

Product Metrics on Magento:

|  | Magento |
| --- | --- |
| Install | Module from the Adobe Commerce Marketplace, as a ZIP or with Composer, plus a configuration file and Magento cron |
| Tracking endpoint | Script and collector on random paths on your own domain, served by the module |
| Consent | Cookiebot, OneTrust, Usercentrics, Osano or your own setConsent call |
| Orders and refunds | Change notices sent by cron, then a separately signed read of the order; credit memos included |
| Cost price | The item cost stored on the Magento order |
| New customers | The first paid order per store view, by customer account or guest email |
| Versions | Tested on Magento 2.4.7-p8, 2.0.18, 1.9.4.5 and OpenMage 20.15.0 |

### Your endpoint is a random path on your own domain. No tracking names in the URL.

The module serves the Product Metrics script and collector from your own domain, each on a random path with no words like “track”, “collect” or “analytics” in it. An adblocker sees a request to your own shop.

The script tag in the page head carries no customer data; the script itself is never cached. The order success block isn’t cached either.

- [Adblocker benchmark](https://www.productmetrics.io/ad-blocker-conversion-tracking): which blockers stop the standard Google tags, tested with the real extensions

### Consent comes from your consent tool. Denied until the visitor agrees.

Pick Cookiebot, OneTrust, Usercentrics or Osano, or call ProductMetrics.setConsent from your own banner. The choices reach Google Ads as Consent Mode v2 signals; until the visitor chooses, everything stays denied.

Magento’s built-in cookie restriction notice on its own doesn’t count as consent.

### Orders come from Magento, not from the browser. Credit memos make a new revision.

When an order changes, the module notes only its ID. Cron sends that notice, signed, to Product Metrics, which then reads the order back from your store through a separately signed request: totals, tax, discounts, shipping, refunds and lines, with configurable products resolved to the child product.

A credit memo creates a new revision of the order, and a cancelled order is marked cancelled. Cron also re-checks orders, so a missed notice is picked up.

### Magento’s order cost becomes profit per order. A profit report Magento doesn’t give you.

Magento stores a cost on each order item. Product Metrics reads it with the order, so profit uses the cost the order was placed with, and each purchase reaches Google Ads and Meta with its profit.

Product Segmentation works on ROAS straight away. Connect margins to switch it to POAS.

- [Break-even ROAS calculator](https://www.productmetrics.io/break-even-roas-calculator): the return each product needs from its price and costs

### New customers are marked before Google Ads and Meta see them. Per store view.

The module checks for an earlier paid order in the same store view, by customer account or by guest email. The first paid order makes a new customer; every later one is returning. Cancelled orders don’t count.

Each purchase reaches Google Ads and Meta marked new or returning, with its revenue, profit and lifetime value. In Google Ads, that is eight conversion actions Product Metrics creates and manages for you:

- Product Metrics - New Customer
- New Customer Profit
- Returning Customer
- Returning Customer Profit
- Revenue
- Profit
- Revenue LTV
- Profit LTV

Product Metrics shows nCAC, what you pay for a new customer, per product and as an average, so you can increase priority on products that bring in first orders.

- [MER and nCAC calculator](https://www.productmetrics.io/mer-calculator): work out nCAC from your own totals

### Magento and Google Shopping: keep your feed, add the signal. Product Metrics is not a feed tool.

Getting Magento products into Google Shopping takes a feed extension that sends them to Merchant Center. Keep the one you use.

Product Metrics works on top of it. Product Segmentation segments your products by clicks and return and writes the labels you approve to Merchant Center, so your Shopping and Performance Max campaigns can increase or lower each product’s priority. Full Signal Tracking sends every Magento order back to Google Ads with its profit.

- [Product Segmentation](https://www.productmetrics.io/product-segmentation): products segmented by clicks and return, written to Merchant Center labels

### Requirements and limits. What to check before you install.

- Magento 2.4, 2.0, or 1.9 and OpenMage. Tested on 2.4.7-p8 (PHP 8.2), 2.0.18 (PHP 5.6), 1.9.4.5 (PHP 5.6) and OpenMage 20.15.0 (PHP 8.2).
- One module per Magento installation, and one installation per store view.
- Shell access to save the configuration file, and Magento cron running.
- A Content Security Policy that allows the store’s own script path.
- Order cost is read when the order currency matches the base currency.
- Refunded orders are sent without a profit figure, because Magento doesn’t record what happened to the returned items.

## Questions about Magento. Short answers.

### Does it send Magento orders to Meta too?

Yes. Full Signal Tracking sends revenue, profit, new and returning customers and lifetime value to Google Ads and Meta, so POAS bidding works on both.

### Do I need margin data to start?

No. It works on ROAS right away; connect margins to switch to POAS. Full Signal Tracking is included in the Pro subscription.

### Which Magento versions does Product Metrics support?

Magento 2.4, Magento 2.0, and Magento 1.9 with OpenMage, each with its own module. It is tested on 2.4.7-p8, 2.0.18, 1.9.4.5 and OpenMage 20.15.0.

### Does it replace my Magento Google Shopping feed extension?

No. Keep your feed extension for products in Merchant Center. Product Metrics adds product segments as Merchant Center labels, and server-side purchases with profit and new customers.

### Does the module need an admin user or API token?

No. It has no admin screen and uses no Magento API token. Requests between your store and Product Metrics are signed.

### Will Google Ads count orders twice next to my current tag?

The Magento order number is sent as the transaction ID. Google Ads deduplicates matching IDs within the same conversion action. If your existing tag uses a separate purchase action, choose which purchase action is primary for bidding and keep the other secondary; the ID alone does not deduplicate across actions.

### Is Product Metrics an attribution tool?

No. It sends every confirmed purchase to Google Ads and Meta, with consent, so their bidding learns from all of them. It doesn’t share credit across channels.

### Does it get through adblockers?

Yes. Full Signal Tracking runs on a unique endpoint on your own domain, and if that endpoint is ever blocked, it auto-rotates to a fresh one. Consent still decides what is sent.

## Product Metrics on other platforms. Same tracking, each platform’s own setup.

- [Shopify](https://www.productmetrics.io/platforms/shopify): Install the app from the Shopify App Store. Orders go to Google Ads and Meta from your own store domain, with profit from the costs you keep in Shopify.
- [WooCommerce](https://www.productmetrics.io/platforms/woocommerce): Install a WordPress plugin and paste a token. Orders go to Google Ads and Meta from your own domain, with profit from your WooCommerce costs.
- [Lightspeed](https://www.productmetrics.io/platforms/lightspeed): Connect your Lightspeed eCom shop. Orders go to Google Ads and Meta from your own shop domain, with profit from the cost prices in Lightspeed.
- [Shopware 6](https://www.productmetrics.io/platforms/shopware): Install the Shopware 6 plugin and paste a token. Orders go to Google Ads and Meta from your own domain, with profit from your Shopware purchase prices.

## Related pages.

- [Full Signal Tracking](https://www.productmetrics.io/server-side-tracking): how server-side, auto-rotating tracking works on every platform
- [Adblocker benchmark](https://www.productmetrics.io/ad-blocker-conversion-tracking): which blockers stop the standard Google tags, tested with the real extensions
- [Product Segmentation](https://www.productmetrics.io/product-segmentation): products segmented by clicks and return, written to Merchant Center labels
- [Break-even ROAS calculator](https://www.productmetrics.io/break-even-roas-calculator): the return each product needs from its price and costs

## See your products’ profit in Google Ads. Start with a free analysis.

- [Analyse your products for free](https://app.productmetrics.io/): Free analysis, no credit card
- [Find your hidden profit](https://www.productmetrics.io/pricing#calculator): 30-second estimate · no login
- [Book a demo](https://cal.com/berend-vrakking/demo): a video call with Berend, then a demo account

---

Published by Product Metrics (Berend Vrakking, founder).

HTML version: https://www.productmetrics.io/platforms/magento
