Detect private mode thanks to iOS 17

When Apple announced iOS 17 this year, there was an outcry among many marketers. The main reason for this was the announced “Link Tracking Protection (LTP)”, which is intended to automatically remove tracking parameters from URLs. The big misunderstanding was mainly due to the fact that many assumptions, including UTM parameters, would be removed. After a quick check, I was able to give the all-clear (see LinkedIn: Apple is ending performance marketing?!” > Bullshit!).

It turned out that only automatically added click IDs are removed from well-known ad networks, including gclid (Google), fbclid (Meta), mc_eid (Mailchimg) and others – something that is already done by some desktop browsers (e.g. Brave ) and browser plugins (e.g. Ghostery).

However, this article is not intended to be about LTP per se – if you need more information about this, you are welcome to read the article “Link Tracking and iOS 17: What marketers need to know”.

Much more interesting is a side effect created by LTP – you can now determine (with a trick) who is visiting you in private mode!

Who uses private mode please?

That was exactly the question I asked myself in 2020 in my article “Does private mode kill cookies (3/7)”. Back then, it wasn’t possible to measure how many people were using private mode – my conservative projection at the time gave a rate of 8%.

Since LTP is activated in addition to Mail and Message and only in Safari Private mode, there is a (temporary?) conceptual gap that can be used to measure the private mode share.

The key: “ValueTrack” parameters

Basically the whole thing is very simple. The Click-Id parameters are automatically added by most ad networks – this is probably why Apple automatically removes them. However, in some ad networks, including Google and Bing, you can also use a variable to bind the click ID to your own query parameter, for example in Google with {gclid}, i.e. “&myClickId={gclid}” (see “Set up tracking with ValueTrack parameters“). As a result, the click ID is appended twice in normal mode, once as “&gclid=XYZ” and once as “&myClickId=XYZ”.

Since Apple only uses a very simple rule to remove the click IDs, as soon as LTP takes effect, only the gclid is removed. However, the individually defined Click-Id parameter remains present. You can take advantage of this by checking whether both or only one parameter is present. If only “myClickId” is present, the gclid has been removed – if both are there, nothing has been removed.

Of course, there are a few additional conditions that must be met for the measurement to be valid:

  1. It only works on iOS 17 and Safari (other versions may not be taken into account in the measurement)
  2. Auto-tagging must be activated in the selected ad network (e.g. Google).
  3. All links in the ad network must be expanded with the individual Click ID parameter.

Test it yourself

If you want to test it yourself – I have created a small detector. There is also a small FAQ why it works and what Apple would have to do to close this (small) privacy gap.

Visit iOS Private Mode Detector >

Interested in numbers?

By the way, my little measurement on our website showed a private mode rate of around 12%! That means 12% of iOS users who cause additional problems with online attribution (see “Flying blind through online attribution”).

Author: Eugen

CTO & Co-Founder of