---
title: "WooCommerce and WordPress Server-Side Tracking"
description: "Server-side tracking for WooCommerce. 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/woocommerce"
pageType: integration
language: en
publisher: "Product Metrics"
dateModified: 2026-10-22
---

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

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

Install the Product Metrics plugin and paste a one-time token. Every WooCommerce order then reaches Google Ads and Meta from your own domain, confirmed from the order in WooCommerce, with its revenue, profit, customer type and lifetime value.

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

## What every WooCommerce 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 WooCommerce. What reaches Google Ads and Meta.

A browser tag and Product Metrics on WooCommerce compared:

| What counts | A browser tag / GTM | Product Metrics on WooCommerce |
| --- | --- | --- |
| 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 WooCommerce order; refunds adjust |
| Profit | — Order value only | ✓ From WooCommerce cost of goods, or a product field you choose |
| 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 WooCommerce 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. No Cloudflare or DNS changes.

1. **Install the Product Metrics plugin.** Get it from the WooCommerce.com Marketplace or download it in Workspace → Ecommerce Platforms, then upload and activate it in WordPress.
2. **Paste your setup token.** Create a one-time setup token in Product Metrics and paste it into the plugin settings.
3. **Confirm paid statuses and cost source.** Processing and Completed count as paid by default. Choose WooCommerce cost of goods or your own cost field.
4. **Send your initial orders.** Click “Send initial orders” to send the paid orders of the last 30 days.
5. **Pick your purchase conversion action.** Connect Google Ads in Workspace → Tracking and choose where purchases land.

- **Who does it.** A WordPress administrator who can manage WooCommerce.

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

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

Product Metrics on WooCommerce:

|  | WooCommerce |
| --- | --- |
| Install | WordPress plugin from the WooCommerce.com Marketplace or your Product Metrics workspace, plus a one-time setup token |
| Tracking endpoint | A WordPress REST route with a random name on your own domain, signed and relayed server-to-server |
| Consent | Cookiebot, OneTrust, Usercentrics or Osano, as Consent Mode v2 signals |
| Orders and refunds | WooCommerce webhooks for created and updated orders, then a signed read including refunds |
| Cost price | WooCommerce cost of goods, or a product field you choose |
| New customers | The customer account, or the billing email for guest orders |
| Versions | PHP 8.1+, WordPress 6.4+; built and tested on WooCommerce 10.1.2 and WordPress 6.8.2 |

### Your endpoint is a route on your own WordPress site. Signed and relayed from your server.

The plugin adds a WordPress REST route with a random name on your own domain. The browser sends events there, and your WordPress server signs them and relays them to Product Metrics. To an adblocker it is a request to your own shop.

There is no server container to host and no DNS record to change.

- [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 in Product Metrics. Their analytics and marketing choices reach Google Ads as Consent Mode v2 signals. Until the visitor chooses, everything stays denied.

The email address is hashed before it is sent, and only when the visitor allowed it.

### Orders come from WooCommerce, not from the browser. Refunds included.

The plugin registers WooCommerce’s own webhooks for created and updated orders. Product Metrics then reads the full order through a signed request: totals, line items with SKU and cost, shipping, fees, coupons, tax and refunds. That read is what reaches Google Ads and Meta.

Processing and Completed count as paid by default, and you can change which statuses do. A refund becomes an adjustment to the same order. Stores on WooCommerce’s High-Performance Order Storage and on the older order storage both work.

### WooCommerce cost of goods becomes profit per order. Or any cost field you already use.

Since version 10.3, WooCommerce can store a cost of goods on each product. Turn it on and Product Metrics reads it on every order line. Already keep cost in a product field from another plugin? Enter that field’s name instead.

The cost is recorded as the order is read, so later cost changes don’t rewrite past 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. Guests included.

Product Metrics pages through the customer’s earlier orders: by customer account, or by billing email for guest orders. The first paid order makes a new customer; every later one is returning.

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

### WooCommerce Google Ads conversion tracking. Without the thank-you page tag.

Most WooCommerce stores send the purchase to Google Ads from the thank-you page, with the Google tag added by a plugin or Google Tag Manager. When an adblocker stops that tag, the conversion is lost, and Smart Bidding learns from fewer orders.

With Product Metrics, each purchase is confirmed from the WooCommerce order and sent from our server to Google Ads, with Enhanced Conversions and Consent Mode v2. It runs next to your current tag.

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

- PHP 8.1 or later and WordPress 6.4 or later. Built and tested on WooCommerce 10.1.2 with WordPress 6.8.2.
- WordPress at the root of an HTTPS domain, not in a subdirectory.
- WP-Cron running, so the plugin can publish its settings.
- WooCommerce cost of goods turned on (WooCommerce 10.3 or later), or a product field that holds your cost.
- After you change your consent tool, clear your full-page cache.

## Questions about WooCommerce. Short answers.

### Does it send WooCommerce 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.

### How do I add Google Ads conversion tracking to WordPress?

With Product Metrics you install one plugin, paste a token and pick your purchase conversion action in Workspace → Tracking. Purchases then go to Google Ads from our server, confirmed from the WooCommerce order. No code in your theme.

### Does it work with WordPress caching plugins?

Tracking events go to the plugin’s own route, not to a cached page. After you change your consent tool, clear your full-page cache so every page loads the new setting.

### Does it support High-Performance Order Storage (HPOS)?

Yes. Orders are read the same way from HPOS and from the older order storage.

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

The WooCommerce order ID 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 this a Google Shopping feed plugin?

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

### 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.
- [Magento](https://www.productmetrics.io/platforms/magento): Install the module for your Magento version, OpenMage included. Orders go to Google Ads and Meta from your own domain, with profit from your Magento 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/woocommerce
