Budget drifts to the channels that lose least
At Incapto, GA4 put paid campaigns at 50% of traffic; measured without consent loss they were 62%. Direct lost least, so in GA4 it looked more important than it was.
Pillar · Complete data
In Europe, consent banners, ad blockers and browser restrictions remove a large and uneven share of your traffic before GA4 records it. On one Shopify store measured side by side for 48 days, GA4 did not record 29% of visits. Sealmetrics measures without cookies, so the traffic your budget depends on is in the report — and the total can be checked against real orders.
Measured, not modelled · no cookies · last click per session · EU-hosted in Dublin
Quick answer
Complete data is analytics whose totals you can check against something that really happened — orders, bookings, revenue — instead of a model filling the gaps. GA4 does not reflect reality in Europe because it only records visitors who accept the consent banner, are not running an ad blocker and keep their cookies long enough; Consent Mode then estimates part of what is missing. The loss is large and uneven by channel. Measured on a real store, with GA4 and Sealmetrics running side by side on Incapto's Shopify site for 48 days, GA4 did not record 29% of visits or 45% of pageviews, while Sealmetrics recorded 96% of the real orders. How much GA4 misses depends on the store and the channel, so it has to be measured on each site. Sealmetrics measures without cookies or personal data and attributes revenue to the last click of each session. It does not identify people or reconstruct journeys across visits.
Where the traffic goes
GA4 is accurate about the visitors it can see. The problem is who it cannot see, and that nothing on the dashboard says how many they were.
| Loss | What happens | What GA4 does about it | What changes without cookies |
|---|---|---|---|
| Consent rejection | Visitors who decline the banner are not recorded. Rejection ranges widely by sector, brand and banner design. | Consent Mode estimates part of the missing activity | Nothing is stored on the device, so the analytics can run where the regulator's exemption criteria are met |
| Ad blockers | Requests to known tracking domains are blocked, more often on desktop and in tech-literate audiences | The visit is lost | Served from your own subdomain, the tracker is far less likely to match a blocklist |
| Browser restrictions (Safari ITP) | Script-set cookies expire in days, so returning visitors lose their original source | Later visits land in direct or unassigned | No cookie to expire; each session keeps the source it arrived with |
| Sampling and thresholds | Large explorations are sampled and small rows can be withheld | Estimates or hides the row | Every recorded event is counted, with no sampling |
How the losses stack is worked through in why GA4 doesn't see part of your traffic; each vector is defined under data loss in analytics, Intelligent Tracking Prevention and GA4's sampling problem. How big each loss is depends on the site, which is why the rest of this page uses measured figures.
What incomplete data costs
If the loss were even, GA4 would simply be smaller. It is not even, so it is wrong — in the direction that moves budget.
At Incapto, GA4 put paid campaigns at 50% of traffic; measured without consent loss they were 62%. Direct lost least, so in GA4 it looked more important than it was.
At Palladium Hotel Group, 40% of inbound traffic had no source or medium and 35% of GA4 bookings had no channel. At Incapto, 14 of every 100 GA4 visits had no usable origin, against 0.3% in Sealmetrics.
The marketing report, the order system and finance drift apart, and the review becomes an argument about data. That problem has its own page: one number for marketing and finance.
Measure your own gap
This is the method behind the Incapto figures, and it works on any store. The data loss calculator gives an estimate before you start; the parallel run replaces the estimate with a measurement.
Install Sealmetrics on the same site and leave GA4 exactly as it is. Both tools measure the same days; nothing is switched off.
Before comparing traffic, check each tool against the orders your store actually took. Incapto's reconciliation used Shopify's online-store orders: Sealmetrics recorded 96% of them and 97% of revenue.
With the base verified, compare the totals. At Incapto, GA4 recorded 157,844 visits against 222,345 in Sealmetrics, and 256,005 pageviews against 468,427.
The loss is uneven. At Incapto, Sealmetrics saw 11% more direct traffic than GA4, 37% to 52% more from paid campaigns, 62% more from organic search and 133% more from organic social.
Count the visits with no channel you can act on. At Incapto that was 14% of GA4 visits against 0.3% in Sealmetrics — traffic that exists but supports no decision.
What changes, by role
Complete data is not a dashboard feature. It changes the argument each role can make.
Allocate budget on the real channel mix.
Channel revenue on every recorded session, not only the visitors who consented, so paid and organic are judged on the same base.
Analytics for CMOsAttribution that matches what the store recorded.
Revenue per channel checked against the order total, with the purchase confirmed server-side on Shopify.
Analytics for eCommerceData you can audit, without sampling or modelling.
A 1.1 KB tracker, full-resolution BigQuery export, REST API and MCP server over the same dataset.
Analytics for CTOsMeasurement that does not start with a consent problem.
No cookies, no personal data in the dataset and processing in Dublin. Whether consent is needed still depends on your configuration.
Consentless analyticsMeasured in practice
“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 knew exactly how many orders its Shopify store had taken. What it could not establish was how much of the traffic behind them reached GA4. Running both tools on the same days settled it — and the channels being under-credited were the ones bringing new customers in.
of real visits never reached GA4 over 48 days on Shopify
more traffic measured than with Google Analytics on the same site
of inbound traffic had no source or medium in the previous stack
What complete data does not mean
The trade-off is deliberate: aggregate measurement instead of individual tracking. Attribution is last click within each session, and revenue attribution is covered in depth under revenue attribution without cookies.
29% was one store, Incapto, over 48 days. Sector, audience and banner design move the number, so measure yours.
Pages without the tracker, filtered bots and orders with no web visit stay outside. The Incapto figures are checked against orders, not presented as 100%.
No returning-visitor recognition, no cohorts of people and no journeys across sessions. For product analytics inside a logged-in app, use a tool built for it.
No multi-touch model and no view-through. Earlier influence belongs in a marketing-mix model.
The default tracker loads from t.sealmetrics.com. Serving it from your own subdomain is what keeps it off third-party blocklists.
Whether a deployment needs consent depends on its configuration and your regulator's criteria. Ad pixels keep their own consent requirement.
Common questions
Because GA4 only records visitors who accept the consent banner, do not block its script and keep their cookies. Consent Mode estimates part of the rest, but estimates are not measurement. When Incapto ran GA4 and Sealmetrics side by side on its Shopify store for 48 days, GA4 did not record 29% of visits and 45% of pageviews.
It depends on the site, and it is uneven by channel. On one measured Shopify store the gap was 29% of visits; Dreamplace Hotels measures roughly 30% more traffic with Sealmetrics than with Google Analytics. In our experience with clients, between 40% and 60% of traffic doesn't accept cookies, and of those who do, 40% don't accept on the first pageview. There is no universal figure for the rest: measure it on your own site.
Consent Mode is a modelling layer. When visitors reject cookies, Google estimates what they probably did based on the visitors who did consent. That is useful for a ballpark, but it is not a measurement, and it cannot tell you which channels the missing visitors came from. Complete data measures the traffic that actually arrived.
Analytics whose totals can be checked against something that really happened. Operationally: no consent gate on the analytics, no cookie to expire, no sampling and no statistical gap-filling, with revenue attributed to the last click of each session. At Incapto that check was against Shopify's orders, where Sealmetrics recorded 96% of them and 97% of revenue.
Run the data loss calculator for an estimate, then measure: keep GA4, add Sealmetrics for at least 30 days and compare both against the orders your store recorded. There is no benchmark to compare against: the gap depends on the store and the channel. If your measured gap is below 10%, you probably do not need to switch.
The opposite. Complete capture is possible because the architecture stores nothing on the device and keeps no personal data: no cookies, no identifiers, no stored IP addresses. Privacy is the constraint that forces the measurement to be aggregate, and aggregate measurement is what lets it run without a consent dialog where the regulator's criteria are met.
Exclusively in Dublin, Ireland. The dashboard, the BigQuery export, the API and the MCP server all read the same EU-resident dataset.
Measure the gap
Book a 30-minute walkthrough with the founder. We run the data loss calculator on your site and reconcile the result against your CRM or your store's orders.