Title: Tagioo Server-Side Tracking for WooCommerce
Author: sifatul92
Published: <strong>October 28, 2026</strong>
Last modified: October 28, 2026

---

Search plugins

![](https://ps.w.org/tagioo-for-woocommerce/assets/banner-772x250.png?rev=3771442)

![](https://ps.w.org/tagioo-for-woocommerce/assets/icon-256x256.png?rev=3771442)

# Tagioo Server-Side Tracking for WooCommerce

 By [sifatul92](https://profiles.wordpress.org/sifatul92/)

[Download](https://downloads.wordpress.org/plugin/tagioo-for-woocommerce.2.7.0.zip)

 * [Details](https://wordpress.org/plugins/tagioo-for-woocommerce/#description)
 * [Reviews](https://wordpress.org/plugins/tagioo-for-woocommerce/#reviews)
 *  [Installation](https://wordpress.org/plugins/tagioo-for-woocommerce/#installation)
 * [Development](https://wordpress.org/plugins/tagioo-for-woocommerce/#developers)

 [Support](https://wordpress.org/support/plugin/tagioo-for-woocommerce/)

## Description

Ad blockers, Safari’s tracking limits and closed browser tabs stop many purchases
from ever reaching GA4, Meta or TikTok. **Tagioo Server-Side Tracking for WooCommerce
sends every paid order from your WordPress server to your own server-side Google
Tag Manager (sGTM) container**, so the sale is recorded even when the browser pixel
never fires.

It also gives your Google Tag Manager web container a complete GA4 ecommerce dataLayer,
so you don’t need a separate GTM plugin.

#### What it does

 * **Server-side purchase hit.** When an order is paid (or reaches Processing, for
   cash on delivery and bank transfer), the plugin sends a GA4 purchase event from
   your server to your sGTM container. It runs in the background, so checkout is
   never slowed down, and it tries again if your sGTM server is briefly unavailable.
 * **GA4 ecommerce dataLayer.** Pushes `view_item`, `view_item_list`, `search`, `
   add_to_cart`, `remove_from_cart`, `view_cart`, `begin_checkout`, `add_shipping_info`,`
   add_payment_info` and `purchase` with items, value and currency. Works with the
   classic checkout and the Cart and Checkout Blocks, including AJAX add to cart
   and quantity changes.
 * **Customer data for better matching.** Purchase events include the billing email,
   phone number (in international format), name and address, so your server tags
   can hash them and send them to Meta and TikTok. Logged-in shoppers’ details are
   added to earlier events too.
 * **No double counting.** Browser and server events share an `event_id` (the WooCommerce
   order ID for purchases), which Meta and TikTok use to deduplicate them.
 * **Longer-lasting Meta identifiers.** Turns the `fbclid` from an ad click into
   the `_fbc` cookie on the landing page, keeps `_fbp` and `_fbc` as first-party
   cookies set by your server, and saves them on the order.
 * **Google Tag Manager snippet.** Adds your GTM container to every page. Turn it
   off if your theme or another plugin already loads GTM.
 * **Cookie consent (optional).** Show Tagioo’s Accept / Reject banner with Google
   Consent Mode v2, or read the shopper’s choice from CookieYes, Complianz, Cookiebot,
   OneTrust or the WP Consent API. The choice is sent with the server-side purchase
   hit so your sGTM tags can respect it.
 * **Custom Loader (optional).** Loads `gtm.js` from your sGTM domain instead of
   googletagmanager.com, for servers set up to serve it (Tagioo-hosted servers are).
 * Compatible with WooCommerce High-Performance Order Storage (HPOS).

#### What you need

 * WooCommerce.
 * A Google Tag Manager web container whose tags (for example GA4, Meta Pixel and
   TikTok Pixel) use the dataLayer events above.
 * A server-side GTM container on your own subdomain, such as `sgtm.yourstore.com`,
   with a GA4 client and the server tags you want (for example GA4, Meta Conversions
   API and TikTok Events API). You can host it yourself or use [Tagioo](https://tagioo.com),
   which sets up both containers for you.
 * Your GA4 Measurement ID and a GA4 Measurement Protocol API secret.

Every feature in the plugin is free. Nothing is locked behind a licence or account,
and it works with any server-side GTM container, not only Tagioo’s.

### External services

This plugin connects to the following services. Nothing is sent until you enter 
the matching setting on WooCommerce  Tagioo.

#### Google Tag Manager

When a GTM Container ID is set and “Inject GTM snippet” is on, every front-end page
loads `https://www.googletagmanager.com/gtm.js` (and the `ns.html` noscript iframe)
from Google. Google receives the visitor’s IP address, user agent and the page URL,
and the tags you configure inside GTM decide what else is sent. If cookie consent
is set to “Wait for consent”, GTM loads only after the visitor accepts.
 Google 
Terms of Service: https://policies.google.com/terms Google Privacy Policy: https://
policies.google.com/privacy

#### Your server-side GTM container (sGTM domain)

When an sGTM domain, GA4 Measurement ID and API secret are set and “Server-side 
purchase hit” is on, the plugin sends one request per paid order from your server
to `<your sGTM domain>/g/collect`. The request contains the order number and ID,
total, tax, shipping, currency, coupon codes, line items, and the customer’s billing
email, phone, first and last name, city, state, postcode and country, customer ID,
IP address, user agent, Meta `_fbp`/`_fbc` values and (when consent is enabled) 
the shopper’s marketing consent. Your sGTM container then forwards this data to 
the destinations you configure there, such as Google Analytics 4, the Meta Conversions
API or the TikTok Events API.
 The sGTM domain is chosen by you. If it is hosted
by Tagioo, the Tagioo terms and privacy policy apply: Tagioo Terms: https://tagioo.
com/terms Tagioo Privacy Policy: https://tagioo.com/privacy

#### Custom Loader

When “Custom Loader” is on, `gtm.js` and `ns.html` are loaded from `<your sGTM domain
>/tagioo-loader/` instead of googletagmanager.com. The request goes to your sGTM
domain, which passes it on to Google Tag Manager. The same Google and Tagioo terms
above apply.

#### Destinations configured in your containers

Data forwarded by your GTM or sGTM containers is governed by those services’ own
terms, for example:
 Meta: https://www.facebook.com/legal/terms and https://www.
facebook.com/privacy/policy TikTok: https://ads.tiktok.com/i18n/official/policy/
terms and https://www.tiktok.com/legal/privacy-policy

### Privacy

The plugin sets these cookies on the store’s own domain:

 * `_fbp`, `_fbc` — Meta browser and click identifiers (90 days). With the Tagioo
   consent banner they are only set after the shopper accepts.
 * `tagioo_consent` — the shopper’s choice in the Tagioo consent banner (180 days).
 * `tagioo_q` — a short-lived flag (10 minutes) that tells the page an add/remove-
   to-cart event is waiting to be sent.

It saves the shopper’s `_fbp`, `_fbc`, IP address, user agent and consent choice
as order meta so the server-side purchase hit can send them later.

You are responsible for telling shoppers about this tracking in your privacy policy
and for choosing the cookie consent option your store needs.

## Screenshots

[⌊Settings: GTM container, Custom Loader and cookie consent options.⌉⌊Settings: 
GTM container, Custom Loader and cookie consent options.⌉[

Settings: GTM container, Custom Loader and cookie consent options.

[⌊Server-side GTM settings and the ecommerce events to send to the dataLayer.⌉⌊Server-
side GTM settings and the ecommerce events to send to the dataLayer.⌉[

Server-side GTM settings and the ecommerce events to send to the dataLayer.

[⌊The optional Tagioo cookie consent banner on a WooCommerce store.⌉⌊The optional
Tagioo cookie consent banner on a WooCommerce store.⌉[

The optional Tagioo cookie consent banner on a WooCommerce store.

## Installation

 1. Make sure WooCommerce is installed and active.
 2. In WordPress, go to **Plugins  Add New Plugin**, search for “Tagioo Server-Side
    Tracking”, click **Install Now**, then **Activate**.
 3. Go to **WooCommerce  Tagioo**.
 4. **GTM:** enter your GTM container ID (`GTM-XXXXXXX`). If your theme or another 
    plugin already adds GTM, untick **Inject GTM snippet** so it doesn’t load twice.
 5. **Server-side GTM:** enter your sGTM domain (for example `https://sgtm.yourstore.
    com`), your GA4 Measurement ID (`G-XXXXXXXXXX`) and a GA4 Measurement Protocol 
    API secret. To create the secret, go to GA4  Admin  Data streams  your web stream
    Measurement Protocol API secrets  Create. The server-side purchase hit only runs
    when all three are filled in.
 6. **Events:** all events are on by default. Untick any you don’t want.
 7. **Cookie consent:** leave it **Off**, choose **Show Tagioo consent banner**, or
    choose **Use my own cookie banner plugin** if your store already has one.
 8. Click **Save Settings**.

#### Check that it works

 1. Open a product page with GTM Preview mode (Tag Assistant) running. You should see
    a `view_item` event with the product’s name, price and currency.
 2. Place a test order and make sure it is paid or Processing. Within a few minutes
    the purchase should appear in GA4 Realtime, and in Meta Events Manager as a server
    event if your sGTM container sends to Meta.
 3. If it doesn’t, check **WooCommerce  Status  Logs** for entries with the source `
    tagioo`.

The server-side purchase hit is sent by WP-Cron, which runs when your site gets 
visits. On a store with very little traffic, a real server cron job makes the hit
arrive sooner.

## FAQ

### Do I need a Tagioo account?

No. The plugin works with any server-side GTM container you control. Tagioo is one
way to host one.

### Will purchases be counted twice?

No. The browser purchase event and the server-side hit share the same `event_id`(
the WooCommerce order ID), which Meta and TikTok use to keep only one of them. Make
sure your browser pixel tags in GTM pass the `event_id` from the dataLayer. Both
hits also carry the same GA4 `transaction_id`.

### Does it work with the Checkout Block?

Yes. Events fire on both the classic shortcode checkout and the Cart and Checkout
Blocks.

### Can I change or skip the server-side hit?

Yes. Use the `tagioo_server_purchase_params` filter. Return modified parameters,
or `false` to skip the hit for an order.

### Where do I see errors from the server-side hit?

The plugin tries each purchase up to five times, waiting a little longer each time(
1, 2, 3 and 4 minutes). Failed attempts are logged in WooCommerce  Status  Logs 
under the source `tagioo`.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Tagioo Server-Side Tracking for WooCommerce” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ sifatul92 ](https://profiles.wordpress.org/sifatul92/)

[Translate “Tagioo Server-Side Tracking for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/tagioo-for-woocommerce)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/tagioo-for-woocommerce/),
check out the [SVN repository](https://plugins.svn.wordpress.org/tagioo-for-woocommerce/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/tagioo-for-woocommerce/)
by [RSS](https://plugins.trac.wordpress.org/log/tagioo-for-woocommerce/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.7.0

 * Renamed to Tagioo Server-Side Tracking for WooCommerce.
 * Inline scripts and styles now use the WordPress script and style APIs.
 * Escaping and input sanitizing hardened throughout.
 * Phone numbers sent for ad matching now get the right country code for every country(
   WooCommerce’s calling-code table), including Bangladesh (+880), North America
   and the Caribbean (+1), Russia and Kazakhstan (+7) and Italian landlines. The
   store’s base country is used when an order has no billing country.
 * Server-side hit errors now go to WooCommerce  Status  Logs.

#### 2.6.0

 * Optional cookie consent: Tagioo banner with Google Consent Mode v2, or read an
   existing banner plugin.
 * Optional “wait for consent” GTM loading.

#### 2.5.0

 * Added `view_item_list`, `search`, `view_cart`, `remove_from_cart`, `add_shipping_info`
   and `add_payment_info` events.

## Meta

 *  Version **2.7.0**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 8.0 or higher **
 * Tags
 * [Conversions API](https://wordpress.org/plugins/tags/conversions-api/)[ga4](https://wordpress.org/plugins/tags/ga4/)
   [google tag manager](https://wordpress.org/plugins/tags/google-tag-manager/)[Server Side Tracking](https://wordpress.org/plugins/tags/server-side-tracking/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/tagioo-for-woocommerce/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/tagioo-for-woocommerce/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/tagioo-for-woocommerce/reviews/)

## Contributors

 *   [ sifatul92 ](https://profiles.wordpress.org/sifatul92/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/tagioo-for-woocommerce/)