Skip to main content
TRACKLAYER · E-COMMERCE

Server-side conversion tracking for DTC stores that need their numbers to match Stripe.

iOS 14, ITP 2.x, uBlock, and consent banners drop 30-50% of pixel-tracked purchases. TrackLayer routes order.created, checkout.completed, and refund.created server-side to Meta CAPI, Google Ads Enhanced Conversions, TikTok Events API, and Klaviyo — with deduplication against the browser pixel, EMQ confidence intervals, anomaly auto-pause on delivery drift, LTV RFM, and audit chain integrity so revenue values match your books.
14-day trial · no card · works on every store platform
STORE PLATFORM TRACKLAYER AD + LIFECYCLE CHANNELS ────────────── ────────── ─────────────────────── Shopify orders/create → purchase → Meta CAPI · Google Enhanced · TikTok · Klaviyo · GA4 BigCommerce orders/created → purchase → Meta CAPI · Google Enhanced · Pinterest · Klaviyo WooCommerce status_completed → purchase → Meta CAPI · Google Enhanced · Klaviyo · Snap store/checkout.started → initiate_checkout → Meta CAPI · TikTok InitiateCheckout store/cart.abandoned → cart_abandoned → Klaviyo flow · Meta retarget audience store/refund.created → refund_issued → Meta CAPI (negative) · Google Refund event
// PICK YOUR STACK

Already on a specific platform? Jump to the deeper guide.

This page is the umbrella story for every DTC store. The deeper integration guides cover platform-specific webhook setup, app-bridge install, and known caveats per store.
SHOPIFY

Shopify Plus + Standard. Hydrogen + Liquid storefronts. Order, checkout, refund webhooks. Native app-bridge install.

BIGCOMMERCE

BigCommerce Stencil + headless. Webhook scopes, multi-storefront merchants, B2B Edition catalog events.

WOOCOMMERCE

WordPress + WooCommerce. WP-CLI install, action hooks (woocommerce_order_status_completed), Stripe and PayPal.

CUSTOM STORE

Headless React, Next Commerce, MedusaJS, or roll-your-own. Direct REST + JS SDK with HMAC verification.

// THE PROBLEM

The pixel sees about half of what Stripe sees.

Every DTC store with $50k+/mo in spend hits the same wall: the Meta pixel claims 800 purchases this week, Stripe shows 1,420, and Google Ads shows 612. There is no single source of truth — and the optimization algos are bidding off the smallest, most biased number.

iOS 14 + ITP 2.x burned the pixel.

Safari blocks third-party cookies outright. iOS 14 ATT means 70-80% of users opt out of the IDFA. The Facebook pixel's match quality (EMQ) on iOS dropped from 8.2 to 4.1. Meta keeps optimizing — but on a noisier signal that systematically under-reports your best customers.

Ad-blockers + consent banners eat the rest.

uBlock Origin and 1Blocker silently drop the Meta pixel for ~22% of visitors. GDPR consent banners gate it for another 15-30% in EU traffic. Whatever survives is then dedup'd against the consent state your store passed to the pixel — which is wrong half the time.

Enhanced Conversions only fixes Google.

Google's Enhanced Conversions sends server-side data — but only to Google. You still need Meta CAPI, TikTok Events API, Pinterest Conversions API, Klaviyo events, and Snap Pixel CAPI. Building one server-side path per platform is a 4-8 week eng project that also breaks on every API version bump.

§ 01

Store webhook → TrackLayer → every paid + lifecycle channel.

One webhook URL in your store admin. One canonical event taxonomy. Idempotent on event_id, deduplicated against the browser pixel via fbp/fbc/gclid/ttclid carry-through.
STEP 01

Connect your store

Shopify: install the app, no code. BigCommerce: paste API token. WooCommerce: WP-CLI plugin install. Custom: HMAC-signed POST to /v1/integrations/store/events. We verify every payload.

STEP 02

Translate to taxonomy

order.created → purchase. checkout.started → initiate_checkout. cart.abandoned → cart_abandoned. refund.created → refund_issued. product.viewed → view_content. One event name per signal across every store backend.

STEP 03

Enrich

SHA-256 hashed email + phone for CAPI. Browser-side fbp / fbc / gclid / ttclid captured by the TrackLayer pixel and carried through. Currency, line items, tax, shipping, customer LTV pulled from the store object.

STEP 04

Fan out

Meta CAPI Purchase, Google Ads Enhanced Conversions, TikTok Events API Purchase, Pinterest CAPI, Snap CAPI, Klaviyo placed_order, GA4 Measurement Protocol. Idempotent + retried 3× on 5xx via Cloudflare Queues.

§ 02

One inbound order. Six outbound platform events.

Below: a Shopify orders/create webhook arrives. TrackLayer normalizes, hashes, dedups against the pixel's event_id, and fans out. Same shape for BigCommerce orders/created and WooCommerce woocommerce_order_status_completed.
SHOPIFY · ORDERS/CREATE INBOUND
POST /v1/integrations/shopify/orders?merchant_id=northfield_42
X-Shopify-Hmac-SHA256: q3m...
X-Shopify-Topic: orders/create
Content-Type: application/json

{
  "id": 5723180556318,
  "order_number": 11842,
  "currency": "USD",
  "total_price": "189.00",
  "subtotal_price": "172.00",
  "total_tax": "13.00",
  "customer": {
    "id": 7129834729,
    "email": "buyer@northfield.co",
    "phone": "+15125550199"
  },
  "line_items": [
    { "product_id": 8821, "quantity": 1, "price": "172.00" }
  ],
  "client_details": {
    "browser_ip": "203.0.113.42",
    "user_agent": "Mozilla/5.0..."
  }
}
Shopify POSTs this to the merchant's TrackLayer endpoint. X-Shopify-Hmac-SHA256 is verified per merchant.
META CAPI · OUTBOUND
POST https://graph.facebook.com/v22.0/123456/events
Authorization: Bearer <merchant_meta_token>

{
  "data": [{
    "event_name": "Purchase",
    "event_time": 1776954960,
    "event_id": "shopify_5723180556318",
    "action_source": "website",
    "user_data": {
      "em": ["9c2edcec5b3..."],
      "ph": ["a4f7..."],
      "fbp": "fb.1.1776954900.1234567890",
      "fbc": "fb.1.1776954820.IwAR2...",
      "client_ip_address": "203.0.113.42",
      "client_user_agent": "Mozilla/5.0..."
    },
    "custom_data": {
      "currency": "USD",
      "value": 189.00,
      "content_ids": ["8821"],
      "content_type": "product"
    }
  }]
}
Translated to Purchase with hashed identifiers, fbp/fbc carried through, dedup vs browser pixel via event_id.
§ 03

Three DTC scenarios where the spreadsheet changes.

Real merchant traffic, real ad spend, real ROAS deltas. Numbers are representative of stores doing $80k-1M/mo in net revenue.
Apparel · $180k/mo · Shopify
northfield.co
BEFORE

Meta pixel reported 412 purchases in March. Stripe showed 698. Meta optimized for the iOS-friendly cohort and was bidding 60% under the real CPA, then surfacing the wrong creative as the 'winner'.

AFTER

Wired Shopify orders/create through TrackLayer to Meta CAPI. Reported purchases reconciled to 671 (96% match to Stripe). Meta started preferring the high-AOV iOS cohort. Net ROAS up 27% on a flat budget.

Meta-attributed purchases412 → 671+63%
Skincare · $420k/mo · BigCommerce
halcyonlabs.io
BEFORE

Klaviyo placed_order events were firing from the browser only. Mobile Safari + ad-blockers killed ~28% of them, so the 'cart abandon → 1h email' flow excluded customers who actually purchased.

AFTER

TrackLayer fans BigCommerce orders/created to Klaviyo server-side. Abandon flow now correctly excludes 100% of purchasers. False sends down 2,400/mo. Klaviyo-attributed revenue up €18k/mo.

False abandon emails / mo2,400 → 0−100%
Home goods · $95k/mo · WooCommerce
glasshouse.co
BEFORE

TikTok Events API integration kept breaking on every WordPress plugin update. Half their TikTok ad spend ($14k/mo) had no purchase signal at all; campaigns were bidding on click-through, not conversion.

AFTER

Replaced the WP plugin with the TrackLayer WP-CLI install. TikTok PURCHASE events now fire reliably with hashed email + ttclid. TikTok ROAS visible for the first time; campaigns scaled from $14k to $34k/mo at a 2.4× ROAS.

TikTok ROASblind → 2.4×scaled 2.4×
// HOW IT COMPARES

Other tools vs TrackLayer for e-commerce.

BASED ON PUBLIC DOCS · 04·2026
CAPABILITYTRACKLAYERStape.ioElevarGTM Server-side
Shopify orders/create webhook → CAPImanual GTM tagsneeds server container
BigCommerce / WooCommerce / custom supportShopify-only
Pixel ↔ server dedup via event_idautomaticmanual configmanual config
Refunds → ad platform refund signalmanual
TikTok + Pinterest + Snap CAPI includedPinterest onlyneeds adapters
Klaviyo placed_order server-side
Hosted infra (no GCP / AWS to manage)you run GCP
Price at 100k orders/mo$79 Starter≈ $200 Pro≈ $250 Plus≈ $300 GCP+ops
TRACKLAYER
Shopify orders/create webhook → CAPI
BigCommerce / WooCommerce / custom support
Pixel ↔ server dedup via event_id
automatic
Refunds → ad platform refund signal
TikTok + Pinterest + Snap CAPI included
Klaviyo placed_order server-side
Hosted infra (no GCP / AWS to manage)
Price at 100k orders/mo
$79 Starter
Stape.io
Shopify orders/create webhook → CAPI
manual GTM tags
BigCommerce / WooCommerce / custom support
Pixel ↔ server dedup via event_id
manual config
Refunds → ad platform refund signal
TikTok + Pinterest + Snap CAPI included
Klaviyo placed_order server-side
Hosted infra (no GCP / AWS to manage)
Price at 100k orders/mo
≈ $200 Pro
Elevar
Shopify orders/create webhook → CAPI
BigCommerce / WooCommerce / custom support
Shopify-only
Pixel ↔ server dedup via event_id
Refunds → ad platform refund signal
TikTok + Pinterest + Snap CAPI included
Pinterest only
Klaviyo placed_order server-side
Hosted infra (no GCP / AWS to manage)
Price at 100k orders/mo
≈ $250 Plus
GTM Server-side
Shopify orders/create webhook → CAPI
needs server container
BigCommerce / WooCommerce / custom support
Pixel ↔ server dedup via event_id
manual config
Refunds → ad platform refund signal
manual
TikTok + Pinterest + Snap CAPI included
needs adapters
Klaviyo placed_order server-side
Hosted infra (no GCP / AWS to manage)
you run GCP
Price at 100k orders/mo
≈ $300 GCP+ops
PLAN COMPATIBILITY

Starter ships everything most stores need.

Meta + Google + TikTok + Klaviyo on Starter. Pinterest, Snap, multi-store MCC mode, and refund attribution unlock on Growth. Enterprise stores doing $5M+/yr in ad spend get VPC deploy and custom SLAs on Business.
Starter$79

Meta CAPI + Google Enhanced Conversions + TikTok Events API + Klaviyo. Up to 50k orders/mo.

Growth$199

Adds Pinterest CAPI, Snap CAPI, refund attribution, multi-store MCC. 200k orders/mo.

Business$499

Custom event taxonomy, sub-account isolation, dedicated CSM, 1M orders/mo.

Enterprisecustom

VPC deploy, SLA, custom platform adapters, audit logs in your SIEM. Unlimited.

BUILT FOR E-COMMERCE

EMQ confidence + anomaly auto-pause + LTV.

Monitor Event Match Quality with confidence intervals per destination, auto-pause campaigns when delivery anomalies spike, and surface customer LTV by cohort.

EMQ confidence intervals

Per-destination match quality with statistical confidence bands.

Anomaly auto-pause

Pause Meta/Google/TikTok spend automatically when signal drops.

LTV RFM

Cohort-level lifetime value by recency, frequency, monetization.

// GET STARTED

Match Stripe in under an hour.

Install the app or paste the webhook URL. Pixel + server-side run side by side, dedup'd, from minute one. Cancel any time.
$79/MO · 50K ORDERS · META + GOOGLE + TIKTOK + KLAVIYO · NO CARD
// FAQ

Common e-commerce questions.

Do I keep the Meta pixel installed?
Yes. The pixel still fires browser-side. TrackLayer fires server-side too, with a matching event_id, so Meta deduplicates them. You get full coverage on the users iOS / ITP / ad-blockers don't drop, and Meta keeps the user-agent + cookie context the pixel is good at.
What about consent — does this break GDPR / CCPA?
TrackLayer reads the consent state your store already enforces. If a user denies tracking, no event fires. We pass consent_mode_v2 to Google, hashed identifiers only when allowed, and respect the IAB TCF v2.2 string per region. Audit logs in /docs/compliance/eu.
Will my Stripe / Shopify / Klaviyo numbers reconcile?
That's the point. Stripe is the source of truth for revenue; Shopify is the source for orders; Klaviyo is the source for engagement. TrackLayer carries currency, value, and quantity through unchanged so the row counts match. Most merchants reconcile to within 0.5% of Stripe within 7 days.
What happens on refunds?
TrackLayer listens for refund.created (Shopify), refund_issued (BigCommerce), or refunded (WooCommerce) and fires Meta CAPI with a negative value, Google Ads with a Refund event, and Klaviyo with a refunded_order. Your ROAS reflects net revenue, not gross.
Do I need a developer to install this?
Shopify and BigCommerce: no. Install the app, paste your platform tokens, done. WooCommerce: one WP-CLI command. Custom stores: a 30-line POST handler in your existing order-completion webhook. The whole installation typically takes 20-90 minutes.
How does this compare to running my own GTM server-side container?
GTM SS works, but: you run the GCP project, you maintain the tags, you debug the version drift, and you eat the GCP bill (~$70-200/mo for any real volume). TrackLayer is a hosted version of the same idea, with adapters for the platforms GTM tags don't cover (TikTok, Pinterest, Snap, Klaviyo, etc.).
Can I run this alongside Stape, Elevar, or my agency's existing setup?
Yes — but it's usually redundant. TrackLayer covers what those tools cover plus the platforms they don't (TikTok / Pinterest / Snap / Klaviyo at parity). Most merchants migrate fully within 30 days because dedup across two server-side systems is not fun. Talk to us before you double up.

We use essential cookies to keep the site secure and functional. Analytics and third-party tags run only with your consent. See our Cookie Policy.

We use essential cookies to keep the site secure and functional. Analytics and third-party tags run only with your consent. See our Cookie Policy.