Note: Adtriba Core is a legacy feature that we continue to support but no longer sell. The latest version of this feature is available as Funnel Measurement.
If you are already using Funnel Measurement, find more information here. To upgrade, contact us.
Intelligent Tracking Prevention (ITP) overview
Intelligent Tracking Prevention (ITP) is a privacy feature in Safari. It reduces cross-site tracking. Safari uses a built-in machine learning system to identify domains that can track users across websites. Based on browsing patterns, Safari can limit or block storage mechanisms (such as cookies) for those domains.
Changes introduced in ITP 2.3
Apple released Safari 13 with ITP version 2.3 on March 24, 2020. This update changed how measurement and attribution data is stored:
Previous change (ITP 2.2): Safari removed first-party cookies created through JavaScript after 24 hours if the site was classified as capable of tracking. This reduced the attribution window from seven days to one day.
New approach in ITP 2.3: Sites can keep the seven-day window if they store attribution identifiers in non-cookie browser storage, such as
localStorageorIndexedDB, instead of using only cookies. This gives advertisers and analytics platforms more flexibility while still following Safari privacy rules.
Mitigation strategies for ITP restrictions
Tracking prevention rules differ between browsers. A common way to maintain longer-term tracking is server-side data storage.
A common approach is:
Identify the first-party tracking identifier when a user first visits the site.
Check if the identifier already exists in the browser storage. If not, generate a new one.
Store the identifier on the client and on the server. If the browser deletes the client-side cookie, the server can reissue it on a future visit.
Refresh the cookie expiration date when the user returns so it stays valid for the intended attribution window.
Example (Node.js / Express):
app.get('/', (req, res) => {
const trackingId = req.cookies['tracking_id']; if (trackingId) {
res.cookie(
'tracking_id',
trackingId,
{
domain: 'example.com',
path: '/',
secure: true,
httpOnly: true,
expires: new Date(Date.now() + 1000 * 60 * 60 * 24 * 365 * 2) // 2 years
}
);
} res.render('home');
});When you store identifiers on the server and sync them with client-side cookies, you can reduce data loss from ITP automatic deletion, even if a user returns after more than seven days.
