Intelligent Tracking Prevention
Intelligent Tracking Prevention (ITP) is Safari's privacy protection that blocks third-party cookies and limits how long some first-party cookies last.
What is Intelligent Tracking Prevention?
Intelligent Tracking Prevention, or ITP, is a privacy feature built into WebKit, the engine behind Safari on Mac and every browser on iPhone and iPad. Apple launched it in 2017 and has tightened it in many releases since.
ITP aims to stop cross-site tracking. It blocks third-party cookies by default and applies limits to first-party storage in situations it associates with tracking.
How ITP affects marketing data
The best-known effect is on cookie lifetime. Cookies set by JavaScript in the browser can be capped to a short lifetime, and the cap can be shorter when a visitor arrives from a link that carries tracking parameters. A returning visitor may look like a new one, and a conversion a week after the ad click may lose its link to that click.
Apple has also added link tracking protection that removes known click ID parameters from URLs in some contexts, such as Private Browsing. The practical result is fewer attributed conversions and more conversions credited to direct traffic.
Working with ITP
The durable responses are the ones that rely less on long-lived browser cookies. Capture click IDs on the first page view and store them server-side. Send conversions from your server with hashed email or phone so platforms can match them without a cookie. Serve tracking through your own domain so requests aren't treated as third-party.
None of this is a way around a visitor's privacy choices. It's about not losing measurement for visitors who did nothing to opt out.
How TracerKit handles it
TracerKit's first-party proxy serves third-party scripts through your own domain. Its server-side forwarding sends conversions to Meta, Google Ads, GA4 and TikTok with the click ids captured on the landing hit; Meta, Google Ads and TikTok also receive hashed email and phone, so attribution doesn't depend only on a browser cookie surviving.
See how TracerKit handles this: First-party proxy
Take a look →