linkutm Logo

How Safari Blocks Google Analytics (And What Actually Works in 2026)

Bhargav Dhameliya
Bhargav Dhameliya
May 27, 2026
5 min read
block google analytics safari featured

Have you ever pulled your GA4 numbers, noticed Safari traffic looking strangely shallow, and wondered if Apple is silently chewing through your reports? Yes. It is. And it has been since 2017.

I run linkutm, so I stare at GA4 reports across hundreds of customer properties. Safari shows up wrong in almost every one of them. Sessions short. Users inflated. Sources collapsed into Direct. Campaigns half-attributed.

Here is exactly what Safari does to your Google Analytics 4 data, why it happens, and the fixes I actually trust right now.

Safari Intelligent Tracking Prevention timeline from 2017 ITP 1.0 launch through 2023 Safari 17 Link Tracking Protection, showing six key milestones that affect Google Analytics tracking

The Short Answer Up Top

Safari does not block Google Analytics outright. Your gtag.js snippet still loads. Pageviews still fire. What Safari blocks is the identity layer underneath GA4.

The mechanism, in one paragraph: Safari’s Intelligent Tracking Prevention (ITP) caps the lifetime of any first-party cookie set by JavaScript at 7 days. Cookies set through query-string link decoration get capped at 24 hours. Third-party cookies are blocked outright since Safari 14. iCloud Private Relay hides the IP for some users. And Link Tracking Protection in iOS 17+ strips tracking parameters from URLs in Private Browsing.

The result: GA4 thinks the same Safari user is a brand new visitor every 7 days. Cross-domain journeys break after 24 hours. And referrer data quietly drops in too many cases to count.

Real talk, this is not a bug. This is the design.

Why I Care About This (And Why You Should)

Look, Safari is not a niche browser. StatCounter put global Safari share at around 18% in 2024. In the US it is closer to 24%. On US mobile traffic, I have seen ecommerce properties where Safari is 40-45% of visits.

If you cut a marketing decision based on GA4 reports without understanding what Safari did to those reports, you are optimizing on a distorted picture. That is the part that bugs me.

Here’s the thing. Most marketing teams I talk to do not know this is happening. They assume GA4 is “the truth” because it is the platform of record. Then they pause a campaign that looks weak, when actually it was strong but Safari turned half its conversions into Direct.

What Safari Actually Blocks in GA4

I want to be specific because vague answers send people down the wrong rabbit hole. Here is the exact list of things Safari does to GA4 measurement.

The seven-day cookie cap. Safari ITP 2.1 (released March 2019) capped any cookie set via document.cookie to 7 days. GA4’s _ga cookie holds the client_id that identifies a returning user. After 7 days of no Safari visits, that cookie is gone. Same human, new client ID, counted as a brand new user.

The 24-hour link decoration cap. ITP 2.2 (April 2019) tightened the screw. If your URL includes query parameters from a known “tracker” domain (Safari maintains a list), the JS-set cookie expires in 24 hours. GA4’s cross-domain tracking uses the _gl parameter for exactly this purpose. After 24 hours, the journey across your subdomains splits into two users.

Blocked third-party cookies. Safari 14 (September 2020) blocked all third-party cookies by default. GA4 mostly uses first-party cookies, so this hits less than Universal Analytics did. But any GA4 setup using DoubleClick signals, audience sync, or third-party Google services takes the hit.

Private Relay IP masking. iCloud+ subscribers using Safari can route through Apple’s Private Relay, which hides their real IP from the destination server. GA4’s geographic data goes vague. City-level reports get fuzzier.

Referrer stripping. Safari aggressively reduces document.referrer for cross-site navigation. If a user lands on your site from a partner without UTM tags, GA4 cannot see where they came from. Source/medium becomes (direct) / (none).

Link Tracking Protection. Safari 17 (September 2023) added an opt-in feature in Private Browsing that strips known tracking parameters (gclid, fbclid, dclid, mc_eid) from URLs as they navigate. UTM parameters are not yet on that list, which is the only reason UTM tracking still works on Safari in 2026.

One honest limitation: I cannot give you exact percentages of impact because GA4 itself cannot tell. The whole point of these protections is that Apple does not surface them. Most teams I work with see 10-30% of their Safari client IDs rotate every week.

Comparison table of browser tracking restrictions across Safari Chrome Firefox and Brave showing third-party cookie policy first-party cookie lifetime link decoration cap IP masking and query parameter stripping behavior

Five Ways Safari Distorts Your GA4 Reports

Now the practical part. Here is how those mechanics show up in actual reports.

1. Inflated New User Counts

Because the _ga cookie expires after 7 days of Safari inactivity, GA4 keeps treating the same person as new. I have seen Safari segments report “new users” at 70-80% when the desktop equivalent is 35-45%. That is not your acquisition working. That is cookie rotation.

2. Crushed Session Counts Per User

Sessions tied to short-lived client IDs cannot stitch back together. A user who visited on a Tuesday and again the next Wednesday should count as two sessions for one user. On Safari, they count as two users with one session each. Engagement-rate denominators get warped.

3. Broken Cross-Domain Journeys

If your funnel crosses domains (say yourbrand.comapp.yourbrand.com), GA4 uses _gl link decoration to carry the client ID across. That decoration cookie lives 24 hours on Safari. Any user with more than a day between the visit and the conversion gets split into two users. Funnel reports look like garbage.

4. Direct Traffic Bloat

Safari’s referrer stripping plus the in-app browser problem (Twitter, LinkedIn, Mail in-app webviews) push more traffic into (direct) / (none). If your Direct traffic is unusually high and you have audited UTMs properly, this is the cause. The GA4 source/medium not set guide walks through how to isolate it.

5. Underweighted Awareness Channels

Last-click campaign attribution is bad enough at giving credit to top-of-funnel work. Add Safari to it and the awareness channel that introduced the customer 10 days ago shows up as Direct, because the original client_id and referrer both rotated out. Performance marketing teams cut awareness budgets based on this. Then pipeline craters.

Side-by-side 14-day timeline comparing Chrome and Safari client ID persistence showing the same user counted as 1 returning user in Chrome but 2 different new users in Safari due to 7-day cookie expiration

How Safari Stacks Up Against Other Browsers

I get asked all the time whether Firefox and Brave are doing the same thing. Short answer: yes, but Safari is the leader. Here is the practical hierarchy.

  • Safari: ITP, 7-day JS cookies, 24-hour link decoration, Private Relay, link tracking protection in Private Browsing.
  • Brave: Aggressive ad and tracker blocking by default. Strips known tracking parameters at the URL layer. GA4 often fully blocked without user action.
  • Firefox: Enhanced Tracking Protection blocks known cross-site trackers and limits cookie scope. Less aggressive on first-party JS cookies than Safari.
  • Chrome: Third-party cookies deprecated in 2025 with user-choice (not full block). First-party cookies untouched.

The pattern is clear. Anyone running a browser other than Chrome is feeding GA4 partial data. The shift to first-party data is not a marketing fad. It is the structural response to this.

Three Diagnostic Checks to Run This Week

Before throwing more tools at the problem, confirm Safari is the cause. These three checks take 15 minutes total.

Check 1: Compare new-user rate by browser. Open GA4 > Reports > Tech > Browser. Add a comparison segment for “Returning users”. Look at the percentage of new users by browser. If Safari shows 25+ percentage points higher than Chrome, ITP cookie rotation is doing it.

Check 2: Audit Direct traffic share by device. Same Tech > Browser report, but filter to Direct / (none). If Safari mobile contributes 2x its expected share of Direct traffic, referrer stripping is the cause. Pair this against the unassigned traffic diagnostic to rule out the other causes first.

Check 3: Test cross-domain _gl decoration manually. In Safari, click a link from your main domain to a tracked subdomain. Then wait 25 hours. Click again. In GA4 DebugView, you will see two different client_id values for the same human. That confirms the 24-hour decoration cap.

If any of those three light up, Safari is distorting your data. You now know what you are fighting.

GA4 Browser report interface showing Safari row with inflated 78 percent new user rate compared to Chrome 43 percent revealing cookie rotation distorting user counts not actual acquisition gains

What Actually Fixes It (And What Does Not)

I have tried most of the workarounds floating around. Some work. Some are theater. Here is what holds up in 2026.

Server-side tagging works, with caveats

Server-side Google Tag Manager (sGTM) sets the GA4 cookie via a HTTP Set-Cookie response header from your own subdomain. That bypasses the 7-day JS cookie cap because the cookie is set server-side, not via document.cookie. Lifetime returns to whatever you set (typically 2 years).

The caveat: setup is non-trivial. You need to run a tagging server (Cloud Run, Stape, or self-hosted), point a subdomain like metrics.yourbrand.com at it, and route your GA4 traffic through it. It costs money. Roughly $40-150/month for most teams I have helped.

This is what I would do first if Safari is more than 25% of your traffic.

First-party tagged links work everywhere

This is the cheapest fix. Tag every campaign link with proper UTM parameters. UTMs are first-party query parameters that Safari currently does not strip. When the cookie identity layer fails, the UTM data still gives GA4 the source.

This is the lane linkutm lives in. Generate a tagged URL once, enforce naming conventions across your team, and Safari traffic still reports the right source/medium even when client IDs rotate. It does not fix the user identity problem, but it fixes the attribution problem, which is usually what matters.

Measurement Protocol works for conversions

If your goal is to make sure conversions count even when the browser side fails, send conversion events to GA4 directly via the Measurement Protocol from your server. The browser cookie can rotate all it wants. The conversion still lands.

The catch: you need your backend to know the GA4 client_id at conversion time, which means either capturing it on form submit or stitching at the user level. It is more engineering than most teams want.

Enhanced Conversions and Conversion APIs work for ad platforms

For Google Ads, Enhanced Conversions sends hashed user data server-to-server. Meta CAPI does the same for Meta. These do not fix GA4 directly. They fix the ad platform’s own attribution, which often matters more for budget decisions.

Privacy-respecting analytics work as a backup

Tools like Plausible, Fathom, and Matomo do not depend on cookies. They count visits via stateless server-side logging. They do not give you GA4’s depth, but they give you a stable second source. I run one of these on most properties just to sanity-check GA4 numbers.

The full first-party measurement stack is what I would build if starting fresh today.

First-party measurement stack diagram showing 4 layers UTM tagged links server-side GTM Measurement Protocol and backup analytics tool feeding into GA4 to survive Safari ITP cookie restrictions and tracking prevention

What I Stopped Bothering With

Some things look like fixes and are not. Cutting them from your roadmap is its own win.

  • Setting _ga cookie via custom JS to a longer expiry. Safari resets it back to 7 days on next visit. You cannot bypass ITP at the JS layer.
  • Forcing cross-domain tracking through hash fragments. This used to work pre-ITP 2.2 and is now flagged as evasion behavior.
  • Asking users to disable tracking prevention. Nobody does this. Stop pretending it is a strategy.
  • Bouncing traffic through a redirect chain to refresh cookies. Adds latency, hurts CTR, and Safari has gotten better at detecting this pattern.

Honest Limitations

None of the fixes above gives you back perfect Safari measurement. Server-side tagging extends cookie life but does not bring back referrer data Safari already dropped. UTM tagging fixes source attribution but not user identity. The Measurement Protocol fixes conversion counts but creates engineering overhead.

The honest target is to get your Safari data trustworthy enough to make directional decisions. Perfect attribution on Apple devices is gone. It is not coming back.

Frequently Asked Questions

Does Safari block Google Analytics?

Safari does not block the Google Analytics script itself. The gtag.js file loads and events fire. What Safari blocks is the cookie-based identity layer GA4 depends on. Cookies set via JavaScript get capped at 7 days. Cross-domain link decoration cookies get capped at 24 hours. Third-party cookies are blocked outright.

Why does Safari traffic show as Direct in GA4?

Safari aggressively strips document.referrer on cross-site navigation, especially from in-app browsers and Apple Mail. Without a referrer and without UTM parameters on the link, GA4 has no source signal and bins the visit under (direct) / (none). Tagging every campaign link with UTM parameters is the most reliable fix.

How long do GA4 cookies last in Safari?

The GA4 _ga cookie lasts 7 days when set via JavaScript on Safari. The _gl cross-domain decoration cookie lasts 24 hours. Both restrictions come from Safari’s Intelligent Tracking Prevention (ITP), introduced in 2017 and tightened in 2019. Server-side cookies set via HTTP response headers can persist longer.

Does Private Relay break Google Analytics?

Private Relay does not break GA4 outright. It hides the user’s real IP address, which fuzzes city-level geographic data and can affect IP-based bot detection. Browser fingerprinting and cookie tracking continue to work for users on Private Relay. It is an annoyance, not a showstopper.

Is server-side tracking necessary to track Safari users?

Server-side tracking is the most reliable way to extend GA4 cookie lifetime on Safari beyond 7 days, but it is not strictly necessary. For most teams, consistent UTM tagging and Measurement Protocol conversion events solve the practical attribution problem at a fraction of the cost. Server-side becomes worth it when Safari is over 25% of your traffic.

What percentage of GA4 data does Safari distort?

Direct measurement is not possible because the distortion is the design. Based on properties I have audited, Safari client IDs rotate at a rate where 10-30% of weekly active Safari users count as multiple “new” users in the same month. Cross-domain journeys break for roughly half of Safari users with multi-day sessions. Direct traffic share is typically 1.5-2x what it should be on Safari mobile.

Pick One Fix and Ship It

You do not need to do all of this. Start with the one that matches your situation.

If Safari is under 20% of your traffic and you have shaky UTM hygiene, fix the UTMs first. Build every campaign URL through the UTM builder and lock in naming rules. That alone usually cleans 60% of the noise.

If Safari is 25%+ and you have budget, set up server-side GTM next quarter. The cookie lifetime extension pays for itself in cleaner returning-user data within a month.

If Safari is your majority traffic and you are running paid acquisition, add Enhanced Conversions and Meta CAPI on top so your ad platforms can still optimize against real conversion signal.

The mistake is assuming GA4 alone tells the truth on Apple devices. It does not. Build the layers that make the truth knowable.

Bhargav Dhameliya

About Bhargav Dhameliya

Share this article

Ready to track your campaigns better?

Join thousands of marketers who use linkutm to build, track, and manage their marketing campaigns with ease.

Get Started for Free