A third of the traffic supports no decision
Put back on the real scale, Incapto's GA4 view had a 19% hole of traffic it never measured, plus 11% with no known origin: close to a third of real traffic that could not inform a budget decision.
Platform · Shopify
On Incapto's Shopify store, GA4 did not record 29% of visits over 48 days, and the visitors it missed browsed twice as deep. Sealmetrics installs as a Shopify app and a theme app embed on any plan, confirms every purchase server-side through Shopify's webhook, and recorded 96% of Incapto's real online-store orders.
Any plan with app embeds · no cookies · purchases by webhook · EU-hosted in Dublin
Quick answer
Sealmetrics for Shopify is a cookieless analytics integration in two parts: the Sealmetrics Pixel app, which connects the store by OAuth and registers Shopify's orders/create webhook, and a theme app embed that loads the tracker and fires product, cart and checkout events. It works on any Shopify plan that allows app embeds. Because purchases arrive server-side from the webhook, they do not depend on a thank-you page loading or on the shopper accepting cookies, and nothing is stored on the shopper's device. On Incapto's Shopify store, measured side by side with GA4 for 48 days, Sealmetrics recorded 96% of real online-store orders and 97% of revenue, while GA4 did not record 29% of visits. Order IDs are not stored, so reconciliation with Shopify is done on totals and channels, not order by order.
What it captures
Once the app embed is active and the webhook is registered, the funnel flows on its own. The purchase is the one event that never depends on the browser.
| Event | Source | What it carries | Note |
|---|---|---|---|
| pageview | Tracker (t.js) | The page, its channel and landing page | Every page load |
| view_product | App embed, on /products/ pages | Product name, SKU, price, currency, product ID | Read from the product's structured data; re-fires on SPA navigation |
| add_to_cart | App embed, intercepting /cart/add | Product, SKU, price, quantity, currency | One event per line item |
| begin_checkout | App embed, on checkout submit, checkout links or Buy Now | Cart URL | Once per checkout attempt |
| purchase | Shopify orders/create webhook, server-side | Revenue, currency, line items | Nothing has to load on Shopify's hosted checkout |
Product, cart and checkout steps are events that build the funnel; the purchase is the conversion that carries revenue. How events and purchases are modelled beyond Shopify is covered in conversion tracking without cookies.
What GA4 misses on Shopify
Shopify records every order it takes. What it cannot tell you is which traffic produced them, and GA4 only sees the visitors who accepted the banner.
Put back on the real scale, Incapto's GA4 view had a 19% hole of traffic it never measured, plus 11% with no known origin: close to a third of real traffic that could not inform a budget decision.
The visits GA4 did not record averaged 3.3 pages each, against 1.6 for the visits it did record. The loss is concentrated in the most engaged traffic, not spread evenly.
GA4 put paid campaigns at 50% of Incapto's traffic; measured without consent loss they were 62%. Organic social showed 133% more traffic in Sealmetrics than in GA4.
Install on Shopify
One install path for every Shopify plan that allows app embeds, with no Plus or Standard distinction. The last two steps are what make the comparison with Shopify fair; the reasoning is the same as in one number for marketing and finance.
In the Sealmetrics dashboard, open Settings → Integrations → Shopify, select the site, enter your Shopify domain and click Connect Shopify. Authorise the Sealmetrics Pixel app; the conversion webhook is registered automatically.
Copy your Account ID from the connected Shopify card. In Shopify, open the theme editor, go to App embeds, enable Sealmetrics Analytics, paste the Account ID and save. The embed does nothing while the field is empty.
Load the store and confirm the Last hit timestamp moves in the Overview report. Then place a real test order, note its time and amount, and confirm the purchase appears as a conversion.
Compare Sealmetrics with Shopify's Online Store orders only, in the same timezone and currency. Leave out point-of-sale, draft and marketplace orders, and orders that were cancelled, refunded or never paid.
Leave GA4 and the ad pixels in place and compare over a full commercial cycle. Incapto's comparison covered 48 days before looking at the channel mix.
What stays, what changes
Each tool keeps the job it does well. Sealmetrics takes the one GA4 cannot do on consent-shaped data: telling you which channels produced the orders.
Stays: the merchandising view.
Which products, collections and discount codes sell. Sealmetrics does not replace it and reconciles against its orders.
One number for marketing and financeCan stay, for Google Ads.
Many teams keep it as the Google Ads conduit while budget decisions move to the measured base.
GA4 migration planStay for bidding, behind consent.
Sealmetrics does not send conversions to ad platforms, so the platforms keep their own consent-gated setup.
Campaign revenue attributionBecomes the channel view.
Revenue by channel, campaign and creative on every recorded session, checked against Shopify's orders.
Complete dataMeasured on Shopify
“Consent Mode left us with a structural blind spot: we knew there was traffic we were not seeing, but we had no way to size it.”
Rosa Tomàs · B2C Acquisition Manager · Incapto
Incapto sells specialty coffee on Shopify. It ran GA4 and Sealmetrics on the same store for the same days, reconciled both against Shopify's orders first, and only then compared traffic and channels.
of real Online Store orders recorded, and 97% of revenue
of real visits that appeared in no GA4 report
gap in paid campaigns' share of traffic, 50% in GA4 against 62%
What it does not do
These limits come with the design, and with Shopify itself. The same pattern for WordPress stores is on Sealmetrics for WooCommerce.
Order IDs are not stored, so you compare totals and channels with Shopify, never row by row.
The embed listens to Shopify's standard /cart/add requests. Heavily customised themes that bypass them may not report add_to_cart.
Orders placed while the webhook was not registered — after a reinstall or a scope change — are not recovered. Reconnect from the dashboard.
Point-of-sale, draft and marketplace orders have no web session, so they have no channel to attribute.
No multi-touch model and no view-through; a returning visit through another channel takes the credit.
Product, collection and discount reporting stay in Shopify, where the merchandising team already works.
Common Shopify questions
On any Shopify plan that allows app embeds, with no Plus or Standard distinction. You connect the Sealmetrics Pixel app from the Sealmetrics dashboard, enable the Sealmetrics Analytics app embed in your theme and paste your Account ID. The install and the events are the same on every plan.
At the aggregate level, against Shopify's own Online Store orders for the same period. In Incapto's 48-day parallel run, Sealmetrics recorded 96% of real orders and 97% of revenue. Order IDs are not stored, by design, so the comparison is on totals and channels rather than a row-by-row join.
On Shopify, purchases come from the orders/create webhook, so a thank-you page that fails to load is not the cause. Check that the store shows Connected, that the Shopify figure only includes Online Store orders that were paid and not cancelled or refunded, that both tools use the same timezone and currency, and place a test order to follow it end to end.
Yes. The purchase is confirmed server-side: when an order is placed, Shopify sends the orders/create webhook to Sealmetrics with revenue, currency and line items. Nothing has to load on the checkout pages, and the embed only needs to see the funnel up to begin_checkout.
No. Shopify Analytics stays as the merchandising view: which products, collections and discount codes are selling. Sealmetrics answers a different question on overlapping data, which channels and campaigns produced the revenue.
Nothing has to change. GA4 keeps running, including for Google Ads, and Sealmetrics installs alongside it. Run both over a full commercial cycle; Incapto's comparison covered 48 days. Most teams then move budget decisions to Sealmetrics and keep GA4 as the Google Ads conduit.
Stores that install the public app are billed through Shopify Managed Pricing, and the plan is approved and managed in Shopify Admin; uninstalling the app stops billing. Stores on a custom app are billed by Sealmetrics directly. Check the current plans in Shopify Admin or on the pricing page.
The app subscribes to Shopify's mandatory compliance webhooks (customer data request, customer redact and shop redact), sets no cookies and does not store order IDs externally. Whether your store needs consent for analytics still depends on your configuration and your national authority's criteria.
Shopify walkthrough
Book 30 minutes with the founder. We walk through connecting Sealmetrics to your Shopify store, how to check a test order and how to compare Sealmetrics with your Shopify orders.