iOS 17 Link Tracking Protection (LTP) Update – A Practical Guide

“iOS tracking update again, what do we have to deal with now?”

That is a question a weary marketer might ask, who is being bombarded with constantly changing and harder-to-grasp technology that is affecting the same “simple” reports we are so used to. Expiring first-party cookies, deprecated third-party cookies, faulty attribution, and now URL parameters. What’s next?

I think we all agree that user privacy and consent-based tracking are very important features of the Internet. However, these updates tend to evoke emotions from marketers such as uncertainty or even anger when they have to deal with yet another failing report.

Instead of expressing any heartfelt feelings we might have regarding this change, let us go through a series of questions that can serve as a framework to assess this iOS update (and possibly the next).

As always, taking a pragmatic approach and evaluating the impact on our own circumstances will serve us better than letting a single piece of information on the Internet tell us if the issue at hand is good or bad (oh, the irony).

Here is a short list of questions I’ve gathered that we will use as north stars to take a look at the context of the iOS 17 link tracking protection update:

Which parameters are impacted?

You can check Cory Underwood’s great article for all the parameters that are affected by the change.

Here is a summary of the impacted parameters at the time of writing:

iOS17 Link Tracking Protection: Impacted URL Parameters
iOS 17 LTP impacted URL parameters researched by Cory Underwood

Keep an eye out, because it wouldn’t be too surprising if this list would expand in the near future!

Under what circumstances are link parameters impacted?


This update affects users who:

  • have upgraded their OS to iOS17 AND
  • are in Private Browsing mode in Safari OR
  • opt-in in default browsing mode OR
  • use Apple’s native Mail or Messages apps

The exact number of impacted users will vary greatly as time passes and based on individual circumstances.

Which one of those parameters are used at my company?


For most companies gclid, fbclid and possibly an email vendor’s parameter are the highest volume sources of traffic that might be impacted.

You will have to investigate your own accounts to see which parameters are in use.

If you take a look in your Google Ads account and “auto-tagging” is enabled, you can be sure that gclid is appended to your landing pages (if there are no redirects that might interfere with that).

If you have any activity on Facebook, fbclid will be appended to any URL that was clicked on the platform.

You can check the other parameters in your analytics tool by checking the URL-s that contain a question mark or if you have access to raw data (like GA4-BigQuery), you can even count the number of parameters there are and how many page_views they have.

What percentage of my traffic is affected?

You can create a GA4 exploration or a Looker Studio dashboard to see how iOS17 traffic changes over time (feel free to use any other tool).

A few examples:

Looker Studio iOS traffic ratios
How much of your traffic is iOS (17)?
Looker Studio iOS traffic time series
How is the iOS17 adoption trending for your users?
Free Looker Studio Dashboard
Apply our free Looker Studio Dashboard to your own Google Analytics 4 Property to determine how much iOS 17 traffic you have both in absolute and relative terms. Click here for the Looker Studio template.

By default, any click ID is supposed to represent an interaction that can be tied (by the vendor that provided it) to an exact user.

It’s important to note that these link parameters only function if a vendor-specific JavaScript code is also loaded on the page that knows what to do with the parameters. After the parameters are sent and processed, the vendor is able to stitch the hit to a user in its backend.

What do Google, Meta and others gain with the link parameters?

They serve as an additional identification method besides 1st and 3rd party cookies to tie clicks and conversions to users, which helps them populate advertising reports and gives them more data for audience profiling.

They are often set as 1st party cookies (e.g. Conversion Linker tag in GTM) when the landing page loads certain scripts that save them or can even be sent with the regular page view event.

And what do the advertisers gain from it?

The gclid parameter, for example, serves the purpose of “auto-tagging” which – based on the documentation – enables you to:

  • Track conversions on your website on all browsers
  • Import conversion data into Google Ads from Google Analytics, as well as other external sources, such as your Customer Relation Management (CRM) system
  • Import Google Ads campaign and cost data into Google Analytics reports
  • Import Google Analytics site engagement metrics, such as bounce rate and average session duration, into Google Ads reporting

The fbclid has a much less detailed documentation, but we can safely assume that it is utilized as a way to identify a user (and an interaction) and tie a conversion to a click that happened beforehand.

And here is the interesting part in the documentation:
“If the _fbc browser cookie is not available, […],it is still possible to send the fbc event parameter if an fbclid query parameter is in the URL of the current page request”

This basically means that users can be identified even without the use of cookies.
Do with this information what you will!

What can I do to mitigate or circumvent the effects?

It’s important to understand that Digital Analytics data never was accurate and it never will be. Once you’ve accepted this fact and convinced your stakeholders, it becomes easier to work with what you’ve got.

Mitigation and circumvention of these (and previous) privacy matters is sometimes possible, however, it’s a cat-and-mouse game between Browsers and AdTech with you in the middle. Every adjustment you make will require you to actively monitor if it still works, so there is a “technical debt” to take into account.

Let’s assume it’s worth it to you and you want to minimize the effect of iOS 17 on your data, what can you do?

Mitigating GCLID data loss

Importing Google Ads data into Google Analytics reports

If you use UTM-s for your analytics platform (as it’s an industry standard), you could simply create a Google Ads tracking template that sets the campaign and ad group names as they are. Or you could even just add manual UTM-s to the ad landing pages.

The downside to this method is that you will have to manually insert the campaign and ad group names to the template or URL-s, which can become very tedious.

Our preferred approach is that we add campaign ID, ad group ID, ad ID etc. to the landing page URL as dynamic parameters. The benefit of doing this is that the URL parameters will only contain numbers, which is URL-friendly (no spaces or weird characters) and Google will automatically fill in the ID-s for the whole account (if we add the template at the account-level).

A very simplistic account-level tracking template could look like this:
{lpurl}?utm_source=google&utm_medium=cpc&campaignid={campaignid}&adgroupid={adgroupid}&adid={creative}

Adding a tracking template to the Google Ads account to complement the auto-tagging does not interfere with the use of gclid. They can absolutely be used side by side.

Previously in UA you could control whether it was possible for manual UTM-s to override auto-tagging, but now with GA4 if gclid is present, it will be used no matter what. So adding manual UTM-s (utm_source,utm_medium – not campaignid) is a way to fill in gaps where gclid might be dropped.

As the next step, we usually parse these parameters from the URL and send them as GA4 event parameters instead of letting them pollute the page_location dimension.

GA4 page_view event tag setup with ID parameters in GTM
GA4 page_view tag setup with ID parameters

If you use the BigQuery export (or any other data warehouse), you can stitch the ID-s to readable values and you can create reports using those.

Or, if you want to use the GA4 interface for reporting and you use server-side GTM, you can map campaignid, adgroupid etc. values to a Firestore collection and enrich the hit on the fly!

Check the ValueTrack parameters to see the available dimensions, and feel free to include any that add value to your implementation!

Importing offline conversion data into Google Ads

If you use GCLID to upload offline conversions, you could still capture gclid as a ValueTrack parameter. Instead of the URL containing “?gclid={gclid}”, it would contain “?whatever={gclid}”. You can then process it in your system however you like.

Ideally, you would send it as a GA4 event parameter the same way we did the others (campaignid,adgroupid,adid).
Note: please do respect the user’s consent choices when you utilize this workaround

Enhanced Conversions

If you haven’t yet and you have the legal basis to do so, you can use Enhanced Conversions to provide hashed user data to fill some gaps in your conversion tracking.


Overall data loss mitigation

The best way to not feel the impact of these changes is to not rely on them too much in the first place.
Sounds easier than it is!

Marketing Data Warehouse


If your single source of truth is the data you see in GA4’s or the advertising platform’s interface, it might be worthwhile to invest in a marketing data warehouse.

There are a lot of limitations already when it comes to tracking events and users.

If you don’t want to add more barriers to it by relying on UI capabilities (especially with GA4), then building your own marketing data infrastructure might just be your best bet. The fact that GA4 allows for a direct export to BigQuery already unlocks an important building block for this project.

Other means of performance analysis

Other ways of evaluating performance marketing data can be powerful tools in the toolbox, but remember: when it comes to online marketing data analysis – there is no silver bullet.

There is no method that will solve all your woes, but assessing the data from different angles can definitely help in gaining insights.

Some of these tools could be attribution modelling, media mix modelling (MMM) or any other modelling (incrementality, econometrics) you have the resources to do.

There are quite a few open-source solutions on GitHub that you can implement for advanced attribution modelling or MMM. These can be a great starting point for diving into the next level of analysis.

Here are a few to check out:

https://github.com/DP6/Marketing-Attribution-Models

https://github.com/facebookexperimental/Robyn

https://github.com/google/lightweight_mmm

Summary

We wandered off a bit from the initial topic, but I hope I could give you a few ideas to chew on when it comes to iOS updates or dealing with similar situations.

If you have any questions or suggestions about this topic, feel free to connect with me on Linkedin or contact us if you need help with setting up a marketing data warehouse or with tackling any analytics problems!