Intelligent Tracking Prevention (ITP) Explained: The Safari Problem
8 min read
What’s wild is how consistently data disappears from our dashboards, yet almost nobody questions the infrastructure causing the leakage. Every time a user converts after eight days, they become an anonymous ghost in your analytics.
Simul Sarker
Founder & Product Designer of DataCops
Last Updated
May 17, 2026
Open Google Analytics right now and look at your channel breakdown. See how much "Direct" traffic you have from Safari? That number is a lie, and Apple wrote it.
Roughly a third of your visitors use Safari. For most of them, your analytics cannot remember they were ever there before. So GA4 shrugs and files them under Direct. That inflated Direct bucket is not a quirk. It is Intelligent Tracking Prevention doing exactly what Apple built it to do.
I have spent years cleaning up analytics setups that Safari quietly broke, and the same misunderstanding shows up every time. People think ITP is a cookie problem with a server-side fix. It is not. ITP is a data-quality problem. It does not just block tracking. It corrupts the meaning of the data you still collect.
This is not another "what is ITP" explainer that ends with "use server-side and you are fine." This is the post about why your Safari data is wrong in ways server-side alone does not repair, and why the wrong signal flows downstream into the ad platforms making your bidding decisions. The architectural answer is first-party collection with the data sorted clean at the source, which is what DataCops is built to do.
Quick stuff people keep asking
What is Intelligent Tracking Prevention in Safari? ITP is a machine-learning classifier built into Safari. It watches domains, decides which ones look like cross-site trackers, and restricts their storage and cookies. It has shipped since 2017 and has only tightened with every Safari release since.
How does ITP affect Google Analytics data? It caps the cookies GA relies on to recognize returning visitors. When a returning Safari user shows up with no usable cookie, GA4 treats them as brand new and, with no referrer, files the session under Direct. Returning visitors get miscounted as new. Real sources get hidden behind Direct.
Does ITP block first-party cookies? It does not block them outright, but it limits them. Cookies set client-side by JavaScript get capped at 7 days, sometimes 24 hours when a link carries tracking parameters. First-party cookies set server-side by your own domain survive far longer. The how of setting the cookie matters more than the domain it sits on.
How long do cookies last in Safari with ITP? Client-side JavaScript cookies: 7 days, dropped to 24 hours if the visitor arrived on a link decorated with something like fbclid or gclid. Server-set first-party cookies last much longer. That gap is the whole story.
How do I fix Safari ITP attribution loss? First-party server-side collection recovers a lot of the lost continuity. But "fix" is too strong if you stop there, because it does not address the bot and blocked-traffic contamination sitting alongside the ITP gap. Recover the signal and clean it.
Does server-side tracking bypass Safari ITP? It is far more resilient to it. Cookies set server-side from your own first-party domain are not treated the same as third-party JavaScript trackers, so they persist longer. Resilient, not invisible. Anyone claiming a hard bypass is overselling.
What is the difference between ITP 2.1 and ITP 2.2? 2.1 capped client-side cookies at 7 days. 2.2 cut that to 24 hours when the inbound link is decorated with tracking parameters, which is most paid ad clicks. 2.2 is why your paid Safari traffic loses its identity within a day.
Why does Safari show more direct traffic than Chrome? Because Chrome still lets your analytics remember the visitor across visits and Safari does not. Returning Safari users arrive looking anonymous, GA4 cannot tie them to their original source, and the session falls into Direct. Same humans, different browser, completely different story in your dashboard.
The gap: ITP does not delete your data, it falsifies it
Most coverage frames ITP as subtraction. Cookies blocked, sessions lost, a gap in the chart. If that were all, you could mentally add a correction factor and move on.
The real damage is not subtraction. It is corruption. ITP keeps reporting numbers. The numbers are just wrong, and they are wrong in a confident, specific direction.
Three corruptions, all live in your account right now.
Direct traffic inflates. Returning Safari visitors come back with no usable cookie, no referrer, and GA4 files them under Direct. Your highest-intent audience, the people who already know you, gets relabeled as no-source. You under-credit the channels that actually drove them.
Returning visitors get double-counted as new. With cookies gone every 7 days, the same Safari human is a fresh "new user" on visit two, visit three, visit four. Your new-vs-returning split is fiction. Your "new user acquisition cost" is calculated against people you already acquired.
Conversion paths collapse. A Safari user clicks an ad Monday, the fbclid-decorated link gives them a 24-hour cookie, they come back Thursday to buy. By Thursday the cookie is gone. The conversion lands as Direct, or unattributed, or stitched to the wrong touch. The ad gets no credit. You see a campaign that "does not convert" and you cut it.
That last one is a Layer 4 problem, and it is the same shape as bot contamination even though the cause is different. With bots, fake traffic dilutes your real signal. With ITP, real human conversions get mislabeled and misrouted. Either way, the signal that reaches your decisions, and the signal that reaches Meta and Google through your conversion feed, no longer matches reality.
Here is the part that makes it expensive. That corrupted signal does not just sit in a report. It trains things. When mislabeled Safari conversions flow into Meta or Google through your pixel and CAPI, the ad algorithms learn from them. They see conversions credited to the wrong source, or not credited at all, and they optimize accordingly. They steer budget toward the channels that look like they work in a Safari-distorted dataset, not the channels that actually work. You are not just measuring wrong. You are teaching your bidding to spend wrong.
And Safari is not a rounding error. It is about a third of your traffic, heavily skewed toward iPhone owners, who skew toward exactly the higher-income, higher-intent buyers you most want to attribute correctly. ITP corrupts your best segment hardest.
Why server-side alone is half a fix
Server-side, first-party collection genuinely helps. Cookies set server-side from your own domain survive far longer than ITP's 7-day and 24-hour caps. Visitor continuity comes back. Direct traffic deflates toward the truth. This is real and you should do it.
But server-side collection by itself just gives you a longer, more reliable pipe. It does not check what flows through the pipe. Your recovered Safari sessions still sit in the same dataset as bot traffic and ad-blocked gaps from other browsers. You have fixed continuity and left contamination untouched.
The architectural fix is two moves, not one. Collect first-party so ITP cannot quietly erase your real humans. Then sort the data at the source: anonymous session analytics in one tier, flowing unconditionally and legally, and identifiable, consented events in another. Bot traffic gets filtered at ingestion using a 361.8B-plus IP reputation database before any of it becomes a "conversion" you report or send onward.
That is DataCops. First-party architecture on your own subdomain, two-tier data separation, bot filtering at ingestion, CAPI to Meta, Google, TikTok, and LinkedIn from one clean pipeline. Two honest limits: SOC 2 Type II is in progress, and DataCops is a newer brand than the legacy analytics names. Decide with that on the table.
Decision guide
GA4 shows a big Direct bucket and you cannot explain it. That is ITP relabeling returning Safari users. Move to first-party server-side collection.
Your "new user" count looks too high. Safari is recycling the same humans every 7 days. Your acquisition cost is inflated against people you already had.
A paid campaign looks dead on Safari traffic. Check before you cut it. ITP 2.2 likely killed the conversion's attribution, not the conversion.
You already run server-side and assume Safari is solved. Continuity is solved. Contamination is not. Audit for bots and blocked traffic next.
You are picking an analytics tool purely on dashboards. Ask where collection happens and whether the data is filtered before it ships. That decides accuracy. The dashboard is paint.
You are optimizing against a browser that is lying to you
The mistake is treating GA4 as ground truth and Safari as a small gap you can ignore. Safari is a third of your audience, it is your highest-value third, and ITP is actively rewriting what that third did before the data ever reaches you.
You are not missing some Safari data. You are acting on Safari data that is confidently wrong, and you are passing that wrong signal to the ad platforms that decide where your money goes.
So pull up GA4 and look at your Direct channel one more time. How much of that bucket is genuinely people who typed your URL, and how much is Apple quietly erasing the real reason they came? Until you can answer that, every channel decision you make is built on a number Safari made up.