Title: Tracking Hippo Server-Side Tracking
Author: trackinghippo
Published: <strong>August 18, 2026</strong>
Last modified: August 18, 2026

---

Search plugins

![](https://ps.w.org/tracking-hippo-server-side-tracking/assets/banner-772x250.png?
rev=3653627)

![](https://ps.w.org/tracking-hippo-server-side-tracking/assets/icon-256x256.png?
rev=3653627)

# Tracking Hippo Server-Side Tracking

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

[Download](https://downloads.wordpress.org/plugin/tracking-hippo-server-side-tracking.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/tracking-hippo-server-side-tracking/#description)
 * [Reviews](https://wordpress.org/plugins/tracking-hippo-server-side-tracking/#reviews)
 *  [Installation](https://wordpress.org/plugins/tracking-hippo-server-side-tracking/#installation)
 * [Development](https://wordpress.org/plugins/tracking-hippo-server-side-tracking/#developers)

 [Support](https://wordpress.org/support/plugin/tracking-hippo-server-side-tracking/)

## Description

Tracking Hippo Server-Side Tracking links your WordPress site to a server-side Google
Tag Manager (sGTM) container hosted on [Tracking Hippo](https://trackinghippo.io).
Server-side tagging moves tracking out of the visitor’s browser and onto your own
first-party server, which improves data quality, page performance and resilience
against ad blockers and browser tracking restrictions.

**Container**

 * Injects the Google Tag Manager web snippet in `<head>`, after `<body>`, in the
   footer — or not at all, if you only want the data layer.
 * **First-party loader** — serves `gtm.js` from your own container domain, with
   an optional custom path, so ad blockers and tracking prevention no longer recognise
   it.
 * GTM environments (`gtm_auth` / `gtm_preview`), a configurable data layer variable
   name, and an optional `<noscript>` fallback.
 * **Cookie keeper** — re-issues the GA cookies from the server so Safari’s seven-
   day cap on script-set cookies stops truncating returning-visitor attribution.
 * Exclude specific user roles, and stop tracking entirely outside production.
 * A built-in health panel warns about a missing container ID, a container on a 
   third-party domain, a duplicate GTM plugin, or WP-Cron being disabled — and a**
   Test connection** button checks your container is live.

**Consent Mode v2**

 * Publishes the `gtag('consent', 'default', …)` command ahead of the container,
   covering all seven signals including `ad_user_data` and `ad_personalization`.
 * Apply the defaults globally, to the EEA and UK, or to a custom region list.
 * `wait_for_update`, `ads_data_redaction` and `url_passthrough` are all configurable,
   and the plugin warns you when a consent plugin is already publishing its own 
   defaults.

**GA4 ecommerce for WooCommerce**

The complete funnel: `view_item_list`, `select_item`, `view_item`, `add_to_cart`,`
remove_from_cart`, `view_cart`, `begin_checkout`, `add_shipping_info`, `add_payment_info`
and `purchase`, plus `login` and `sign_up`.

 * **Works with the Cart and Checkout blocks.** Page events use WooCommerce’s conditional
   tags rather than template hooks, and cart changes are detected from the `wc/store/
   cart` data store — so the block checkout is covered as fully as the classic one.
 * Rich items: `item_brand`, `item_variant`, `item_category` through `item_category5`
   from the real category hierarchy, `discount`, `index`, and `item_list_id` / `
   item_list_name`.
 * **List attribution** carries the listing a product was clicked from into the 
   later `add_to_cart`, so GA4 can credit the right list.
 * Choose whether `item_id` is the SKU or the product ID, add a prefix to match 
   your product feed, and report revenue with or without tax.
 * `{ ecommerce: null }` is pushed before every ecommerce event, as GA4 requires.
 * `purchase` is deduplicated per order, carries `customer_type` (new or returning),
   and can include hashed customer data for Enhanced Conversions.

**Server-side webhooks**

 * Sends `purchase`, `refund` and `order_paid` from your server to your container,
   so conversions survive a browser that blocks every script.
 * Delivery runs on a background cron tick, so checkout is never slowed down, and
   failures retry with exponential backoff.
 * The payload carries the GA cookies, client ID and session ID captured during 
   checkout, so the server event joins the same GA4 session.
 * Optional shared-secret header, configurable timeout, and a log of the last ten
   deliveries.

Works on a plain WordPress site and adds the WooCommerce events automatically when
WooCommerce is active. Compatible with High-Performance Order Storage.

**Links**

 * [Tracking Hippo](https://trackinghippo.io) — [WordPress setup guide](https://trackinghippo.io/for-wordpress)—
   [Modules](https://trackinghippo.io/modules) — [Pricing](https://trackinghippo.io/pricing)
 * [FAQ](https://trackinghippo.io/faq) — [Contact support](https://trackinghippo.io/contact)—
   [Service status](https://status.trackinghippo.io/) — [Give feedback](https://trackinghippo.io/feedback)
 * [Privacy policy](https://trackinghippo.io/privacy) — [Terms of service](https://trackinghippo.io/terms)—
   [Data processing agreement](https://trackinghippo.io/data-processing-agreement)—
   [Cookie policy](https://trackinghippo.io/cookies)

### External services

This plugin connects your site to a server-side Google Tag Manager container. Nothing
is transmitted until you enter a container URL in the settings.

**Your GTM server container** (the domain you configure, hosted by Tracking Hippo
or elsewhere)

 * _Browser requests:_ when the first-party loader is enabled, visitors’ browsers
   download the container script from your container domain instead of googletagmanager.
   com. The request carries the visitor’s IP address, user agent and any analytics
   cookies, exactly as the Google-hosted script would.
 * _Server requests:_ when webhooks are enabled, your server sends order events 
   to the endpoint you configure. Each delivery can contain the order total and 
   line items, the customer’s email, phone, name and billing address, plus the analytics
   identifier, IP address and user agent captured at checkout. Email, phone and 
   name are SHA-256 hashed by default.
 * Both are governed by Tracking Hippo’s [terms of service](https://trackinghippo.io/terms),
   [privacy policy](https://trackinghippo.io/privacy) and [data processing agreement](https://trackinghippo.io/data-processing-agreement).
   If you point the plugin at a container hosted elsewhere, that provider’s terms
   apply instead.

**Google Tag Manager** (googletagmanager.com)

 * Used only as a fallback: with no server container URL configured, the container
   script is loaded from Google, subject to Google’s [terms](https://marketingplatform.google.com/about/analytics/tag-manager/use-policy/)
   and [privacy policy](https://policies.google.com/privacy).

The plugin also stores, on each order, the analytics identifier, IP address and 
user agent captured at checkout, so orders can still be attributed when they are
delivered later. This data is removed with the order, and everything the plugin 
stores is deleted when it is uninstalled. Suggested privacy-policy wording is added
to Tools  Privacy for you to review.

## Screenshots

[⌊The Container tab — server container URL, web container ID, first-party loader
and custom loader path, with the health panel showing live status for the container,
Consent Mode, ecommerce and webhooks.⌉⌊The Container tab — server container URL,
web container ID, first-party loader and custom loader path, with the health panel
showing live status for the container, Consent Mode, ecommerce and webhooks.⌉[

The Container tab — server container URL, web container ID, first-party loader and
custom loader path, with the health panel showing live status for the container,
Consent Mode, ecommerce and webhooks.

[⌊Consent Mode v2 defaults for all seven signals, targeted at the EEA and UK, with
wait_for_update, ads_data_redaction and url_passthrough.⌉⌊Consent Mode v2 defaults
for all seven signals, targeted at the EEA and UK, with wait_for_update, ads_data_redaction
and url_passthrough.⌉[

Consent Mode v2 defaults for all seven signals, targeted at the EEA and UK, with`
wait_for_update`, `ads_data_redaction` and `url_passthrough`.

[⌊The base data layer — page, post, author, search and language context, plus logged-
in customer details, SHA-256 hashing and the WordPress user ID.⌉⌊The base data layer—
page, post, author, search and language context, plus logged-in customer details,
SHA-256 hashing and the WordPress user ID.⌉[

The base data layer — page, post, author, search and language context, plus logged-
in customer details, SHA-256 hashing and the WordPress user ID.

[⌊The complete GA4 ecommerce funnel for WooCommerce, with the item_id source, an
item prefix and the brand taxonomy used for item_brand.⌉⌊The complete GA4 ecommerce
funnel for WooCommerce, with the item_id source, an item prefix and the brand taxonomy
used for item_brand.⌉[

The complete GA4 ecommerce funnel for WooCommerce, with the `item_id` source, an
item prefix and the brand taxonomy used for `item_brand`.

[⌊Server-side webhooks — endpoint, the events to send, which order statuses count
as a purchase, and exactly what the payload carries.⌉⌊Server-side webhooks — endpoint,
the events to send, which order statuses count as a purchase, and exactly what the
payload carries.⌉[

Server-side webhooks — endpoint, the events to send, which order statuses count 
as a purchase, and exactly what the payload carries.

## Installation

 1. Upload the `tracking-hippo-server-side-tracking` folder to `/wp-content/plugins/`,
    or install the ZIP via Plugins  Add New  Upload Plugin.
 2. Activate the plugin.
 3. Open **Tracking Hippo** in the admin menu.
 4. Enter your Tracking Hippo server container URL and your GTM web container ID (`
    GTM-XXXXXXX`), then press **Test connection**.
 5. Work through the Consent, Data Layer, Ecommerce and Webhooks tabs. Each tab saves
    independently.

## FAQ

### Do I need a Tracking Hippo account?

Yes. The plugin connects your site to a server-side GTM container hosted by Tracking
Hippo. Sign up at https://trackinghippo.io.

### Does it work without WooCommerce?

Yes. On a plain WordPress site it loads the container and pushes the page, user 
and account context. The ecommerce events appear automatically once WooCommerce 
is active.

### Does it support the WooCommerce Cart and Checkout blocks?

Yes. Cart and checkout page events are derived from the cart itself rather than 
from classic template hooks, and add/remove events come from the block data store,
so both the classic and the block front-end are covered.

### Will it conflict with GTM4WP or the Stape plugin?

Only one plugin should inject the container, otherwise every event is counted twice.
The health panel detects the conflict; set **Container placement** to “data layer
only” here, or disable the container in the other plugin.

### Should I switch Consent Mode on if I already use a consent banner?

Only if the banner does not publish its own defaults. The defaults have to be sent
exactly once, before the container loads. The plugin warns you when it detects a
consent plugin.

### My webhooks never arrive.

They are delivered on the WP-Cron tick. If `DISABLE_WP_CRON` is set, make sure a
real system cron calls `wp-cron.php`; the health panel flags this.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

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

Contributors

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

[Translate “Tracking Hippo Server-Side Tracking” into your language.](https://translate.wordpress.org/projects/wp-plugins/tracking-hippo-server-side-tracking)

### Interested in development?

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

## Changelog

#### 1.0.0

Initial release.

 * First-party container loading: the GTM web snippet served from your own container
   domain, with an optional custom loader path, configurable placement, GTM environment
   support and a custom data layer variable name.
 * Google Consent Mode v2 defaults for all seven signals, with global, EEA/UK or
   custom region targeting, `wait_for_update`, `ads_data_redaction` and `url_passthrough`.
 * The complete GA4 ecommerce funnel for WooCommerce: `view_item_list`, `select_item`,`
   view_item`, `add_to_cart`, `remove_from_cart`, `view_cart`, `begin_checkout`,`
   add_shipping_info`, `add_payment_info` and `purchase`, plus `login` and `sign_up`.
 * Support for the WooCommerce Cart and Checkout blocks, with cart changes detected
   through the `wc/store/cart` data store.
 * Rich ecommerce items: `item_brand`, `item_variant`, the full `item_category` 
   hierarchy, `discount`, `index`, and list attribution carried through the funnel.
 * Page, post, author, search and language context in the base data layer, plus `
   user_id` and hashed customer data for Enhanced Conversions.
 * Server-side webhooks for `purchase`, `refund` and `order_paid`, delivered on 
   a background cron tick with exponential-backoff retries, a shared-secret header
   and a delivery log.
 * Cookie keeper to restore the full lifetime of first-party analytics cookies under
   Safari’s tracking prevention.
 * Role exclusion, a production-only kill switch, and a health panel that flags 
   duplicate GTM plugins, third-party container domains and a disabled WP-Cron.
 * Compatible with High-Performance Order Storage and the Cart/Checkout blocks.

## Meta

 *  Version **1.0.0**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.9 or higher **
 *  Tested up to **7.0.4**
 *  PHP version ** 7.2 or higher **
 * Tags
 * [ga4](https://wordpress.org/plugins/tags/ga4/)[google tag manager](https://wordpress.org/plugins/tags/google-tag-manager/)
   [gtm](https://wordpress.org/plugins/tags/gtm/)[woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/tracking-hippo-server-side-tracking/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/tracking-hippo-server-side-tracking/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/tracking-hippo-server-side-tracking/reviews/)

## Contributors

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

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/tracking-hippo-server-side-tracking/)