Product Documentation / Human Tracking

Human Tracking

Server-side GA4 (Measurement Protocol) tracking for WooCommerce — adblocker-proof, with a delivery log, EU data region and Consent Mode v2.

WordPressWooCommercev1.3.0WordPress.org: pending review

What it does

Human Tracking sends e-commerce events (purchase, refund) directly from your server to Google Analytics 4 via the Measurement Protocol. Data reaches GA4 even when the shopper's browser blocks tracking.

Key features

  • Full tracker — browser events (gtag.js) and server events (MP) share transaction_id and event_id, so GA4 deduplicates automatically.
  • Server-side purchase & refund — full and partial refunds.
  • Consent Mode v2, server-side too — consent object in the MP payload; detects WP Consent API, Complianz, CookieYes and Borlabs; developer filter human_tracking_consent_state.
  • EU data region — optional routing through region1.google-analytics.com.
  • Delivery log — a full table with the HTTP status of every send to GA4.
  • "Rescued transactions" dashboard — orders delivered server-side when the browser did not confirm.
  • Attribution — captures UTM / gclid / fbclid / referrer and attaches them to server-side events.
  • Lead-gen — tracks form submissions (Contact Form 7, WPForms, Elementor) as generate_lead — works beyond WooCommerce.
  • Background queue — Action Scheduler / wp-cron; never slows the customer page.

Requirements

  • WordPress 6.0 or newer (tested up to 7.0)
  • PHP 8.0+
  • WooCommerce (for purchase/refund tracking; the gtag.js and lead layers work on any WordPress site)
  • A GA4 property with a Measurement ID (G-XXXX) and a Measurement Protocol API Secret

Installation

  1. Upload the human-tracking folder to /wp-content/plugins/.
  2. Activate the plugin in the WordPress admin.
  3. Enter your Measurement ID (G-XXXX) and API Secret (GA4 → Admin → Data Streams → Measurement Protocol).

How deduplication works

Browser and server events share the same transaction_id and event_id. GA4 keeps one and drops the duplicate, so a purchase confirmed both in the browser and on the server is counted once.

In Basic Consent Mode (default) no events are sent until the visitor grants analytics consent.
← Back to all products