{# DE + SK hreflang odebráno 2026-05-24 — viz core/settings.py LANGUAGES. cross_lang_alternates is set False by views whose CS/EN versions live on DIFFERENT paths (KB articles/categories, blog posts) — there the naive same-path alternate would point at a non-existent URL, so we emit only the self-canonical instead of a wrong reciprocal. #} Skip to content
TROUBLESHOOTING

Cookies expire too soon: returning customers counted as new

Returning customers are counted as new and attribution falls apart after a few days. The cause is Safari ITP capping client-side cookies. How to extend their lifetime.

6 min Read Intermediate Updated 7.6.2026

If returning customers show up as new in your data and conversion attribution drops for journeys longer than a few days, you've hit a cookie lifetime limit. The main culprit is Safari ITP.

Symptoms

  • A high share of "new" users even where you expect returning ones.
  • Attribution works for short journeys but breaks down beyond about a week.
  • The problem is pronounced especially on Safari and iOS.

Why it happens

Safari Intelligent Tracking Prevention (ITP) caps the lifetime of cookies set by JavaScript in the browser — i.e. classic client-side tracking — to 7 days, in some cases just 24 hours. Once the cookie expires you lose the visitor's identity and their next visit looks new.

How to extend the lifetime

  • Deploy server-side tracking. The identification cookie is then set by the server via an HTTP header as first-party — such cookies aren't subject to the 7-day cap on JavaScript-set cookies and last longer.
  • Turn on Cookie Keeper. It helps keep visitor identifiers consistent even in environments that aggressively clear cookies. Details in the docs: Cookie Keeper.

How to verify improvement

After deployment, watch the share of new vs. returning users and how long attribution stays effective. For longer buying journeys, the share of correctly attributed conversions should rise.

The full mechanism and its impact on conversions is covered in ITP, iOS and ad-blockers: lost conversions.

Did this article help you?
✓ Thank you for the feedback