=== TrackSharp – Server-Side Tracking for WooCommerce === Contributors: kayavanvliet Tags: woocommerce, ga4, google analytics, server-side tracking, conversion tracking Requires at least: 6.1 Tested up to: 6.9 Requires PHP: 7.4 Stable tag: 1.2.2 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Reliable first-party server-side tracking for WooCommerce. Record GA4 purchases even when browser tracking fails. == Description == Most WooCommerce stores lose conversion data without noticing. Browser-based tracking can be blocked or fail to fire due to ad blockers, browser restrictions (ITP), fast checkouts, or users closing the tab too quickly. Orders are completed in WooCommerce, but never arrive in Google Analytics 4. **TrackSharp** adds a reliable, first-party server-side tracking layer so your most important event **Purchase** is still recorded in GA4. No complex Google Tag Manager setups. No server containers. Just install, connect, and verify. = Why TrackSharp? = * **Recover lost revenue data:** Capture purchases missed by browser tracking. * **100% Server-Side:** Send conversions directly from your server to GA4. * **No GTM server container required:** Avoid complex setups and additional server hosting costs. * **Plug & Play:** Built specifically for WooCommerce. = ✅ Free Features (Included) = * **GA4 Server-Side Purchase Tracking** Sends Purchase events via the Measurement Protocol, triggered securely from the WooCommerce order flow. * **WooCommerce Order Stitching** Links orders to GA4 sessions using first-party identifiers captured during checkout. * **Dashboard & Events Log** View sent events, order IDs, revenue, and delivery status. Export logs as CSV for auditing. * **Setup Wizard** Connect GA4 using your Measurement ID and API Secret in minutes. * **Consent-Aware by Default** Respects the WP Consent API and works with popular consent plugins automatically. * **First-Party Collector Endpoint** Optional endpoint (`/wp-json/tracksharp/v1/p`) for logging and advanced setups. *Note: Besides Purchase, TrackSharp also sends key ecommerce events to GA4 via the first-party collector (view_item, add_to_cart, begin_checkout, etc).* = 🚀 Optional: TrackSharp Pro = If you advertise on Meta or Google Ads, TrackSharp Pro adds full ad-platform attribution to fix your ROAS: * **Meta Conversions API (CAPI)** Server-side events with secure SHA-256 hashed user data for maximal Match Quality. * **Google Ads Attribution** Captures and passes `gclid`, `gbraid`, and `wbraid` parameters so Google Ads gets the credit it deserves. * **Enhanced Conversions** Improves GA4 and Google Ads matching for Smart Bidding by sending hashed customer data. * **Priority Support** Direct access to the developers. TrackSharp Pro is optional — the free version works standalone with GA4. 👉 **Learn more at [TrackSharp.nl](https://tracksharp.nl)** == How It Works == 1. A customer checks out in WooCommerce. 2. TrackSharp captures first-party session and GA identifiers during checkout. 3. When the order is paid, a server-side Purchase event is sent to GA4. 4. Use TrackSharp → Dashboard and TrackSharp → Events to verify delivery. == Consent & Privacy == * If the WP Consent API is present, TrackSharp only sends GA4 events when the configured consent category is granted (default: `statistics` or `statistics-anonymous`). * If no WP Consent API / CMP is present, TrackSharp uses a configurable fallback behavior (default: grant immediately). == What Data Is Stored == * Custom table: `{$wpdb->prefix}ws_events` (event audit log) * Order meta: session ID, GA client ID, consent snapshot * Cookie: `ws_session_id` (first-party session ID) == Installation == 1. Install and activate the plugin. 2. Go to TrackSharp → Setup Wizard. 3. Enter your GA4 Measurement ID and Measurement Protocol API Secret. 4. (Recommended) Use a CMP that integrates with the WP Consent API. 5. Place a test order and review TrackSharp → Events. == Frequently Asked Questions == = Does this replace my GA4 browser tags? = No. TrackSharp adds server-side tracking for purchases (and optionally other ecommerce events). If you are already sending a browser `purchase` event (for example via GTM), make sure you avoid double counting in GA4: * disable the browser purchase tag, or * configure deduplication using the same `event_id`. = How does GA4 deduplication work? = GA4 can deduplicate browser and Measurement Protocol events when they share the same `event_name` and `event_id` and are associated with the same user/session. TrackSharp uses deterministic `event_id` values for server-side Purchase events based on the WooCommerce order ID. = Does this work without WooCommerce? = No. TrackSharp is built specifically for WooCommerce orders. = Is it GDPR compliant? = TrackSharp integrates with the WP Consent API and can be configured to respect consent categories. You are responsible for your legal basis and privacy disclosures. == Screenshots == 1. Dashboard – overview of server-tracked orders and revenue 2. Events Log – filters, status indicators, and CSV export 3. Settings – GA4 credentials and consent configuration 4. Setup Wizard – guided setup and testing tools == Changelog == = 1.2.2 = * Initial WordPress.org release * GA4 server-side Purchase tracking (Measurement Protocol) * Dashboard + Events Log * WP Consent API integration and setup wizard == Upgrade Notice == = 1.2.2 = Initial WordPress.org release. == Third Party Services == = Google Analytics 4 (Measurement Protocol) = TrackSharp sends server-side events to Google Analytics 4 when configured. * Service: https://www.google-analytics.com * Terms: https://policies.google.com/terms * Privacy Policy: https://policies.google.com/privacy = Meta (Facebook) Conversions API (Pro only) = When using TrackSharp Pro, purchase events can be sent to Meta via the Conversions API. * Service: https://graph.facebook.com * Terms: https://www.facebook.com/terms.php * Privacy Policy: https://www.facebook.com/privacy/policy = Freemius = TrackSharp uses Freemius for optional upgrades, licensing, and updates. * Service: https://freemius.com * Terms: https://freemius.com/terms/ * Privacy Policy: https://freemius.com/privacy/