If you have compared sessions or visitors in Cooee against the same dates in Shopify, you have probably seen two numbers that do not match. This is expected, and this page explains exactly why.
The short version: Cooee and Shopify measure sessions in different places, using different rules, and they treat automated (bot) traffic differently. A large wave of bot traffic across the web, which merchants began reporting around October 2025, has made that difference much more visible than it used to be.
What always matches
Before the differences, the important part.
Orders, revenue, and purchases in Cooee reconcile exactly with Shopify.
Everything that happens after a real customer completes a real purchase is read directly from Shopify. If those numbers ever disagree, that is a bug and we want to hear about it immediately.
The differences described on this page are confined to top-of-funnel counts — sessions and visitors. That is not a coincidence: automated traffic browses, but it never buys. So it inflates the top of the funnel and never reaches the bottom.
Why the counts differ
There are four separate reasons. Most stores are affected by more than one.
1. Where the measurement happens
Shopify counts sessions on its own servers — it sees the page request itself. Cooee counts sessions in the visitor's browser, through our SDK.
This is the root difference, and the rest follow from it. Browser-based measurement sees things server-side measurement does not, and vice versa. Google Analytics, Meta Pixel, and effectively every other analytics tool on your store are browser-based, exactly like Cooee.
2. Bot and automated traffic
Shopify classifies traffic as human or bot and excludes traffic it identifies as bot from its standard analytics reports.
Browser-based tools have a much harder job here, because well-built bots run real browsers and look like real visitors from inside the page. We filter a great deal of this (see what we have done, below), but we do not catch all of it, and neither does any other browser-based analytics tool.
Bot filtering is a major reason for the gap, and usually the dominant one during a bot spike. How much of the gap it accounts for varies a great deal by store, though — on some stores Shopify's own bot count is low and steady and a gap remains. The reasons below contribute independently, and reason 4 in particular can be substantial.
3. Session boundary rules
The two systems decide when one session ends and the next begins differently.
The clearest example: Shopify starts a new session at midnight, even for a visitor who is browsing continuously across that boundary. Cooee treats that as one continuous session. This particular difference makes Shopify's number higher, not ours — it is a genuine methodological difference rather than an error on either side.
4. Visitors who cannot be recognised on return
When someone browses in incognito or private mode, blocks cookies and local storage, or clears them between visits, no browser-based tool can tell that this is the same person coming back. Each visit is counted as a new visitor.
This affects Cooee, Google Analytics, and every other browser-based tool equally. Shopify, measuring server-side, has additional signals available to it.
It also matters more than it sounds, for two reasons. Automated traffic behaves this way by default — a bot typically arrives with no stored history, so every visit registers as a brand-new visitor. And anything on your store that clears or partitions browser storage between page loads — a consent or cookie-banner change, a domain or path change, certain page-prefetching setups — has the same effect on real visitors, across every browser-based tool at once.
If your Cooee and Google Analytics numbers both jumped on the same day while Shopify stayed flat, a change of this kind is worth checking before anything else.
The bot traffic wave
Merchants across the web began reporting a large, sustained increase in automated traffic from around October 2025, and it grew through 2026. Much of it comes from cloud hosting providers and — more awkwardly — from residential and mobile IP addresses that are genuinely hard to distinguish from real customers.
This is not specific to Cooee, and not specific to your store. It has been widely reported by Google Analytics users, by Shopify merchants, and in the technical press.
What it looks like in your reports:
Sessions rise while add-to-carts, checkouts, and orders stay flat
Conversion rate appears to fall, because the denominator grew and the numerator did not
Sudden multi-day spikes that match no campaign, and that end as abruptly as they began
Landing pages with substantial session counts and almost no downstream activity
If your conversion rate dropped without any other explanation, this is the first thing to check.
One practical consequence worth knowing: if you compare this year against a period before late 2025, some of the change you are looking at is this traffic rather than a real shift in customer behaviour.
Why Google Analytics shows the same pattern
Because GA4 is browser-based, exactly like Cooee. It is subject to the same limitation for the same reason, and GA4 users have reported this wave extensively.
If Cooee and GA4 broadly agree with each other but both sit above Shopify, that is the browser-versus-server difference at work, not a malfunction in either tool. A gap that is unusually large, or that appears suddenly on one day, is still worth raising with us.
What we have done
Reducing this traffic has been a significant engineering effort for us. Without publishing detail that would help bot operators evade it, our filtering includes:
Network reputation filtering — traffic from networks and hosting providers with known automated-traffic reputation is identified and excluded
IP reputation data — matched against continuously updated blocklists
Automated-browser detection — our SDK identifies common automation and headless browser signatures and declines to record a session
Edge blocking — the worst-offending sources are blocked before they reach us at all
Retrospective cleanup — when we identify a bot source, we remove its traffic from historical reports rather than leaving it in place
Where this stands today
This work removed a large volume of automated traffic, and it has not eliminated the gap. The hard remaining category — industry-wide, not just for us — is bots operating from residential and mobile IP addresses, where network reputation is genuinely indistinguishable from a real customer on their phone.
We would rather describe that limit accurately than claim a solved problem. We continue to monitor it, and the guidance below is how to work with your data as it stands.
Which number should you use?
This is the practical question, so here is a direct answer.
What you are doing | Use |
Reporting headline session counts or conversion rate | Shopify |
Reconciling orders or revenue | Either — they match |
Comparing A/B test variants | Cooee |
Comparing segments, cohorts, or audiences | Cooee |
Ranking landing pages against each other | Cooee |
Reading funnel shape and where drop-off happens | Cooee |
Tracking a metric's trend over time | Cooee, consistently |
The reasoning: bot traffic inflates the denominator broadly across your store, so it has limited effect on relative measurements. If variant B beats variant A by 12% in Cooee, that finding holds — both variants were exposed to the same traffic mix. This is what Cooee is built for.
Where an absolute number matters — the conversion rate you report to your board — prefer Shopify's, because its server-side bot filtering makes it the cleaner baseline. We would rather tell you this plainly than have you discover it in a board meeting.
Be aware, too, that during a heavy bot wave no top-of-funnel number on any platform is perfectly clean. Trends and comparisons are the reliable ground.
How to check your own store
If you want to understand what you are seeing:
1. Check Shopify's own bot classification. Shopify exposes a human-vs-bot breakdown in its analytics. In Shopify's analytics query editor, run these two (adjusting the dates):
FROM sessions SHOW sessions WHERE human_or_bot_session = 'bot' TIMESERIES day SINCE 2026-08-01 UNTIL 2026-08-31
FROM sessions SHOW sessions WHERE human_or_bot_session = 'human' TIMESERIES day SINCE 2026-08-01 UNTIL 2026-08-31
If Shopify's bot count spikes on the same days your Cooee sessions spiked, you have your explanation. If Shopify's bot count stays flat and a sizeable gap remains, please get in touch — that combination is worth us looking at directly.
2. Look at whether the extra sessions do anything. Genuine traffic adds to cart and reaches checkout at some rate. If a spike in sessions produced no increase in add-to-carts, it was almost certainly not human.
3. Compare day by day, not just as a total. A single range figure hides the shape. Bot traffic usually arrives as a burst over a few days, and you will only see that pattern if you look at each day separately.
4. Check whether the pattern is store-wide or on specific landing pages. Bot traffic often concentrates on a handful of paths.
Still not adding up?
Some gaps may be genuinely our bug, and we would rather investigate one that turns out to be expected behaviour than have you assume it is.
One check tells us a great deal: if you have Google Analytics or another analytics tool on your store, compare all of them together.
If Cooee and GA4 both sit above Shopify, that is consistent with the browser-versus-server difference described on this page. But if the gap is large, or it appeared suddenly on a particular day, still tell us — a sudden change usually has a specific cause on your store, and we would rather look at it than assume.
If GA4 matches Shopify and only Cooee is the outlier, that points to a problem on our side. Please tell us — that one we want to investigate.
When you get in touch, please include:
Your store name
A single date where the gap is clearest
The Cooee report and the Shopify report you compared, with a screenshot of each
Your GA4 or other analytics figures for the same date, if you have them
We will come back to you with what the underlying data actually shows.
