GA4 says you sold 1,847 yesterday. Shopify says 2,612.
The gap between platform-truth and analytics-truth is 30 to 50% on most stores. Ad-blockers, Safari ITP, consent banners, and the user who closes the tab three seconds after the thank-you page. Tag Trust ships the missing purchase events server-side and reconciles the count back in the dashboard. Today we cover Shopify, WooCommerce, and Magento. More platforms in flight.
# server-side relay · per-order reconciliation · no GA4 secret leaves your platform
# where_the_purchases_go_to_die
Three quiet failures, one missing 30-50% of revenue.
The client-side pixel fires once, in the user’s browser, on the thank-you page. If the browser doesn’t cooperate, the event never reaches GA4 or Meta. Three categories of browser don’t cooperate: ad-blocker users (15-25% of traffic), Safari with ITP (default-on for every iPhone owner), and consent-banner declines (5-15% in the EU). Add up the overlap and you’re losing about a third of conversion data on a typical store.
how it goes wrong
Meta optimises against two-thirds of the truth.
Your CMO stares at GA4 showing 18,000 purchases. Shopify admin shows 27,000 orders. The gap isn’t small. The Meta Ads optimisation algorithm bid on the 18,000 it could see, ignored the 9,000 it couldn’t, and lowered ROAS on the campaigns that actually worked. The data was never broken; it just never arrived.
Ad-blockers strip the GA4 / Meta script entirely
Safari ITP caps cookie life to 7 days, breaking attribution
EU consent banner declines block the script before it loads
Tab closed before pixel fires (mobile checkouts)
what TagDrishti actually does
Server-side relay from inside your platform.
Install the platform-native plugin or extension. When an order completes, your platform fires the standard client-side pixel AND posts the same purchase event to GA4 / Meta server-side, signed with your own credentials. Browser cooperation no longer matters. The reconciliation dashboard shows orders shipped vs. GA4 received vs. server-side recovered, side by side, so you know the gap is closed.
Server-side delivery from your platform’s order hook
GA4 + Meta dedup on shared event_id (no double counts)
Per-order reconciliation: did this order land on both pipes?
GA4 secret stays in your platform admin, never on TagDrishti
# platforms_shipping_today
Three platforms today. The big shelf is in flight.
Each integration is platform-native (custom Shopify app, Magento module, WordPress plugin). Same engine under all three.
Shipping
Shopify Meta CAPI.
Custom Shopify app delivers Purchase events server-side via the Meta Conversions API. Encrypted access_token at rest, per-order Meta dedup on shared event_id, EMQ-input audit so you see exactly which match parameters reached Graph.
HMAC-verified webhook from Shopify Admin
Graph API call with full customer_information payload
WordPress plugin hooks woocommerce_thankyou and posts to GA4 Measurement Protocol with the same purchase payload your client-side dataLayer would have sent. Plus a fire-and-forget log post to TagDrishti for reconciliation.
Activate in Plugins, paste relay token in Settings
No GA4 secret leaves WordPress
Multi-site networks supported (one token per site)
Compatible with WooCommerce Subscriptions + Bookings
Magento 2 extension fires GA4 MP from the order_place event. Configured under Stores → Configuration → Sales → TagDrishti. Encrypted scope-config storage for the GA4 api_secret — standard Magento admin, no extra vault.
Same pattern, different platform. Drop a note from the trial dashboard if you need one of these next.
BigCommerceQ3 2026
Wix StoresQ3 2026
SquarespaceQ3 2026
Salesforce Commerce CloudQ4 2026
Adobe Commerce CloudQ4 2026
PrestaShopQ4 2026
OpenCart2027
Custom storefrontAPI on request
# what_lands_in_the_dashboard
One number per platform. Then the audit trail.
The headline tile answers “is the gap closing?” The ledger and audit drill in when an order comes up short.
Headline reconciliation tile.
Orders shipped (Shopify / Woo / Magento admin) vs. GA4 received vs. server-side recovered, on a 7 / 30 / 90 day window. The number you show your CFO.
all 3 platforms
Per-order delivery ledger.
Every server-side relay attempt: order ID, value, currency, status code, error message if it failed. RFC 4180 CSV export. Filter by status, virtualised so it scrolls smoothly at 50K rows.
audit-ready
Per-order audit drill-in.
Type any order number. The audit panel shows server-side relay attempts AND client-side pixel fires for that order, with a verdict: double-fired (no worry), server-only (Tag Trust win), client-only (relay broken), neither.
new this month
Multi-channel cross-platform view.
If you run Shopify in the US and Magento in EMEA, the dashboard layers both side by side. One revenue number, two pipes, honest reconciliation.
multi-store
Operator config UI.
Issue and rotate relay tokens from /dashboard/integrations. No more ops SQL on prospect onboarding. Token shown once, hashed at rest, rotated on every save.
self-serve
Slack + email alerts.
Failure-rate spike, sustained 4xx from GA4, sudden delivery-volume drop. The same alerting engine the rest of TagDrishti uses, scoped to the e-commerce surfaces.
all plans
14 days · your store · no card
Run reconciliation on last week’s orders.
Connect the platform plugin, paste the relay token, and within an hour the dashboard is showing you orders that GA4 missed. 14 days free. No card. No sales call.