Skip to main content
Shopify (Basic · Plus · Hydrogen)For every Shopify variant: Basic · Advanced · Plus · Hydrogen

Get your Shopify tracking to 95%+ accuracy guaranteed in writing.

Whether you run Shopify Basic, Advanced, Plus, or a headless Hydrogen storefront — every iOS user, every ad-blocker user, every cookie-banner click is invisible to Meta and Google. They keep optimizing for the wrong audience. You keep paying for clicks that look unprofitable on paper but were actually your best customers. We rebuild Shopify tracking server-side — one done-for-you stack that covers every variant — so the math finally works.

Free30 minutesNo obligation

Shopify · what breaks

Why your Shopify conversion data is broken

  1. 01

    iOS 14.5 & ad blockers eat a significant share of pixel fires

    Browser-side pixels are blocked, throttled, or stripped. Your ad platforms optimize on a fraction of real conversions and waste budget on the wrong audiences.

  2. 02

    Shopify's native pixels miss customer data

    The default Shopify integrations don't pass hashed email, phone, address, or first-party order data — exactly the signals Meta and Google need to match conversions.

  3. 03

    Your CAPI deduplication is wrong

    Most stores send both browser and server events but use mismatched event_id values. Meta double-counts or drops events. Reported ROAS becomes meaningless.

  4. 04

    GA4 is full of (not set), bots, and ghost traffic

    Without a hardened sGTM and proper UTM hygiene, GA4 attribution is noise. You can't trust the numbers you're optimizing against.

Shopify · the fix

What changes after the setup — Shopify

  • The conversions your browser tags never sent

    Blocked, expired and never-fired events reach the platforms from your server instead — then we reconcile the result against your backend until it holds above 95%.

  • 8+ Meta Event Match Quality

    We hash and pass email, phone, name, city, state, zip, country, fbc, fbp, IP, and user-agent on every Purchase, AddToCart, and InitiateCheckout.

  • Cleaner GA4, trustworthy ROAS

    First-party server tracking means fewer (not set), better channel grouping, accurate session attribution, and ROAS you can actually act on.

  • GDPR-safe Consent Mode v2

    Granted/denied signals wired into Shopify's consent API so you stay legal in the EU/UK while still recovering modeled conversions.

Shopify · architecture

How a Shopify order should reach the ad platforms

Shopify's checkout is not your page. Since checkout extensibility replaced checkout.liquid, you cannot drop arbitrary script into it, which is exactly where most legacy Shopify tracking used to live and quietly stopped working.

  1. 1

    Click identifiers captured at first touch

    gclid, gbraid, wbraid, fbclid, ttclid and msclkid are read from the landing URL and written to a first-party cookie in the theme, before any redirect to a Markets subfolder or a currency switch can strip them.

  2. 2

    The browser sends the fast, fragile copy

    The Customer Events API — Shopify's replacement for script tags in checkout — emits checkout_started, payment_info_submitted and checkout_completed from a sandboxed worker. It is the only supported browser-side hook inside checkout, and it is what a modern Shopify build listens to.

  3. 3

    The order itself is the source of truth

    The order in Shopify Admin is the truth. Not the thank-you page, which a customer can close, refresh, or never reach when a payment provider like Shop Pay or PayPal redirects them somewhere unexpected.

  4. 4

    A server container sends the authoritative event

    The orders/create webhook or the Customer Events server pixel feeds a GTM server container on your own subdomain, which forwards the purchase with the Shopify order ID as the deduplication key.

  5. 5

    Customer identity raises match quality

    The order carries email, phone, first and last name, city, province and zip. Hashed and sent server-side, these are what move Meta's Purchase match quality out of the low 5s that a browser-only Shopify setup typically produces.

Shopify · events

The event set we build on Shopify, and where each one comes from

Shopify emits its own Customer Events names; we map them to each platform's standard events rather than sending custom names, because custom events do not qualify for catalog and optimization features.

view_itemproduct_viewed fires from the Customer Events API on a product pageitem_id, value, currency, event_idBrowser + server, deduped
add_to_cartproduct_added_to_cart fires, carrying the variant IDitem_id, quantity, value, currency, event_idBrowser + server, deduped
begin_checkoutcheckout_started fires as the customer enters Shopify checkoutvalue, currency, num_items, event_idBrowser + server, deduped
add_payment_infopayment_info_submitted fires inside checkoutvalue, currency, payment_type, event_idBrowser + server, deduped
purchaseThe orders/create webhook fires — not when the thank-you page rendersorder_id, value, currency, items[], hashed email/phone/name/address, event_idServer authoritative
refundA refund is issued in Shopify Admin, days or weeks laterorder_id, value, currencyServer only
subscription_startedA subscription app records its first successful chargeorder_id, value, currency, plan, event_idServer authoritative

Shopify · normal or broken

What is normal on Shopify, and what is actually broken

Shopify stores generate a specific set of false alarms, mostly because the platform reports on its own basis and the ad platforms report on theirs.

Normal, not a fault

  • Shopify Analytics and GA4 disagree

    Shopify counts sessions its own way and attributes to last non-direct click by default. Two tools with different models returning different numbers is expected, not a fault.

  • Draft orders and POS sales missing from ad platform data

    Those orders never had a web session. They belong in your Shopify totals and not in your ad platform conversions.

  • Ad platforms report more conversions than you have orders

    Meta credits a 7-day click and 1-day view; Google credits on click date. Two platforms can each claim the same sale. Compare each one to your order records separately and never add them together.

  • Recent days always look worse than they finish

    Conversions are credited back to the date of the click, so yesterday's return on ad spend is understated and will keep improving for several days. This is attribution working, not data arriving late.

Actually broken

  • Purchase count roughly double the order count

    Almost always a theme-hardcoded pixel plus a Shopify channel app plus a container tag, all firing for the same order. Shopify makes it unusually easy to install three paths without noticing.

  • Conversions stopped after migrating off checkout.liquid

    Script tags in checkout no longer run. Anything that lived there — a hardcoded Purchase pixel, a partner snippet — is now silently dead and the account has been optimizing blind since the migration.

  • Variant IDs sent as item IDs while the Merchant Center feed uses parent IDs

    Per-product reporting and dynamic remarketing both break, and neither surfaces an error anywhere.

  • Purchases missing for customers who paid with Shop Pay or PayPal

    The redirect back can be interrupted. If the browser event is the only path, those orders never reach the ad platforms at all.

Shopify · prove

How we prove the Shopify build is correct

The tag firing proves the tag fires. These prove the numbers are right.

Source of truth

Shopify order records

  • checkout_completed and the orders/create webhook both confirmed firing, with the Shopify order ID present on both.
  • A test order placed through Shop Pay specifically, confirming the purchase still lands when the redirect is interrupted.
  • Item IDs matched against the Merchant Center feed, so per-product reporting and dynamic remarketing resolve.
  • Purchase count within a few percent of shopify order records for a fully closed week, matched on order ID rather than on totals.
  • No order ID appearing twice in any platform's event log.
  • Deduplication confirmed at every destination that supports it.
  • Test and staff orders excluded, with the exclusion confirmed active rather than merely configured.
  • The same reconciliation repeated 30 days later, because a setup that works once and then drifts is the harder failure to catch.

Shopify · free audit

What we check in the free audit

  • iOS 14.5 & ad blockers eat a significant share of pixel fires
  • Shopify's native pixels miss customer data
  • Your CAPI deduplication is wrong
  • GA4 is full of (not set), bots, and ghost traffic

Checked against

Shopify order records

Get my free conversion tracking audit

Free30 minutesNo obligation

Shopify · when not to buy

When a Shopify rebuild is not what you need

We would rather say this now than three weeks into an engagement.

  • You are on Shopify Basic spending under about $2,000 a month on ads. Shopify's built-in Meta and Google channel apps, configured correctly, will get you most of the way at no cost.
  • Your Meta Purchase match quality is already 8 or above and deduplication is confirmed. Some Shopify channel installs genuinely do this right — check before you buy anything.
  • You are about to replatform or migrate to Hydrogen. Rebuild after the move; almost everything would need doing twice.

Shopify · what we deliver

What you get — Shopify

  • Server-side GTM container

    Hosted on your own subdomain (e.g. data.yourstore.com) with Stape or self-hosted Cloud Run. Full ownership, no per-request fees beyond hosting.

  • Meta CAPI gateway with dedup

    Browser + server hybrid with matching event_id, deterministic event_time, and full advanced matching parameters. EMQ verified live.

  • Google Enhanced Conversions

    Hashed customer data passed via gtag/CAPI for both Google Ads and GA4. Smart Bidding gets the signal it needs.

  • TikTok Events API + Pinterest CAPI

    Same dedup discipline applied to TikTok and Pinterest if you run those channels. Optional add-on.

  • Shopify checkout.liquid + Pixel API

    Migrated to Shopify's new checkout extensibility (Customer Events API) — future-proof for Shopify's 2025 deprecations.

  • QA report + maintenance handoff

    Live-fire test report, EMQ screenshots, GA4 DebugView walkthrough, and a Notion runbook so your team can maintain it.

Written guarantee

95%+ tracking accuracy

Measured against Shopify order records. Miss it and we keep working at no cost.

Get my free conversion tracking audit

Pricing

Pick the package that fits your ad spend

Browser-side starter

$400One-time fee · lifetime ownership

Foundation pixel install for your Shopify store. Honest disclosure: this is a starting point only. If you spend $1K+/month on paid media you should be on the 1st-party server-side tier — rather than quote you a recovery percentage, we'll show you how to measure your own gap: compare what the platforms reported against the orders in your backend for the same week. That ratio is the entire argument, and it's yours to check — see trackingconsulting.com/measurement-accuracy-methodology.

  • One-time fee · zero monthly · zero SaaS lock-in
  • Shopify dataLayer (clean spec)
  • GA4 e-commerce events
  • Meta Pixel · Google Ads tag
  • TikTok Pixel · Microsoft UET
  • Consent Mode v2 banner integration
  • QA test orders + 7-day support
  • No CAPI · no iOS recovery
Lock in the one-time price

1st-party server-side

Recommended

$800One-time fee · most popular

The done-for-you package every Shopify store running paid ads should start with. We build the entire 1st-party server-side stack on your subdomain — Meta, Google, TikTok, Microsoft, LinkedIn all fed from the server. Recovers the conversions iOS, Safari ITP, ad blockers and cookie deprecation hide today. You don't lift a finger. Built in 2–4 days · accurate data in 7 days.

  • One-time fee · save vs SaaS subscriptions over 5 years
  • Fully recovered + built in 2–4 days · accurate data in 7 days
  • Everything in browser-side starter
  • 1st-party server-side GTM (your subdomain)
  • Meta CAPI · full advanced matching · 8+ EMQ
  • Google Enhanced Conversions (Web + Leads)
  • TikTok Events API · Microsoft UET server
  • Deterministic browser ↔ server deduplication
  • Live EMQ verification + screenshots
  • Notion runbook + 30-day support · zero recurring
Lock in the one-time price

Full 1st-party stack

$1,800One-time fee · lifetime ownership

Every paid-media channel running 1st-party server-side, end-to-end. For Shopify brands spending $30K+/month who can no longer afford attribution leaks. Pay once. Own everything. Includes Pinterest + Snap + Reddit + LinkedIn CAPI, Klaviyo identity stitching, BigQuery + Looker Studio.

  • One-time fee · save 6-figure SaaS subscriptions over 5 years
  • Everything in 1st-party server-side tier
  • Pinterest · Snapchat · Reddit · LinkedIn · X CAPIs
  • Klaviyo identity stitching (if used)
  • BigQuery export (server logs + GA4)
  • Looker Studio attribution dashboard (branded)
  • Multi-region / multi-currency / EU residency
  • GDPR-audit-ready Consent Mode v2 wiring
  • 60-day support · optional retainer · no lock-in
Lock in the one-time price

FAQ

Shopify questions, answered

All of them. The server container and CAPI gateway run on your own infrastructure, completely independent of your Shopify plan. We adjust the implementation per variant: Basic/Advanced use Customer Events API (Web Pixel), Plus stores get checkout.liquid customizations + Markets-aware routing, and Hydrogen storefronts get a typed React/Oxygen dataLayer module that runs at the edge.

Free · 30 min

Get your free Shopify tracking audit

Free30 minutesNo obligation