Если в бизнесе цикл сделки длится дольше одного дня (B2B, недвижимость, авто, заказные услуги или дорогой e-commerce), возникает проблема с отслеживанием повторных визитов с устройств Apple.
Пользователь переходит по рекламе в понедельник, думает три дня, возвращается в четверг через закладки и оставляет заявку. В отчетах этот заказ запишется как прямой заход (Direct), а рекламная кампания понедельника останется без атрибутированной конверсии.
Причина кроется во встроенном в браузеры движке WebKit ITP (Intelligent Tracking Prevention).
1. Как Safari ITP ограничивает cookies
Раньше системы веб-аналитики сохраняли идентификатор пользователя (Client ID) в браузере через команду JavaScript: document.cookie = "_ga=GA1.2.123456789; max-age=63072000".
Разработчики выставляли срок жизни 2 года. Apple последовательно сокращала это окно:
Хронология ограничений WebKit ITP:
2017: Блокировка сторонних (3rd-party) cookies.
2019: Ограничение JS-cookies (document.cookie) до 7 дней.
2020: Ограничение JS-cookies до 24 часов при переходе по ссылке с UTM / gclid / yclid.
2023–2026: Блокировка CNAME-маскировки (проверка IP-подсетей серверов).
Правило Safari ITP:
Если пользователь переходит на сайт по ссылке с рекламными метками (yclid, gclid, fbclid, utm_source), Safari сбрасывает срок жизни любых cookies, созданных через JavaScript, ровно до 24 часов.
Через сутки браузер стирает Client ID. При повторном визите система считает пользователя новым.
2. Разница между `document.cookie` и серверным `Set-Cookie`
Серверный трекинг обходит эти ограничения за счет способа выставления cookies.
КЛИЕНТСКИЙ СПОСОБ (document.cookie) СЕРВЕРНЫЙ СПОСОБ (HTTP Set-Cookie)
┌──────────────────────────────────────┐ ┌──────────────────────────────────────┐
│ Создается кодом JavaScript │ │ Устанавливается веб-сервером │
│ в браузере пользователя │ │ через HTTP-заголовок ответа │
├──────────────────────────────────────┤ ├──────────────────────────────────────┤
│ ❌ Срок жизни в Safari: 24 часа │ │ ✅ Срок жизни в Safari: до 400 дней │
│ ❌ Удаляется при очистке кэша │ │ ✅ Защищен флагом HttpOnly / Secure │
│ ❌ Блокируется расширениями AdBlock │ │ ✅ Устойчив к браузерным блокировкам │
└──────────────────────────────────────┘ └──────────────────────────────────────┘
Почему серверные cookies сохраняются:
HTTP-заголовок Set-Cookie передается сервером при ответе на запрос. Для браузера это стандартный 1st-party контекст. Браузер не может удалять такие cookies через 24 часа без риска сломать авторизацию пользователей и корзины покупок.
3. Ограничения CNAME-маскировки
Попытки обойти ITP через простую CNAME-запись в DNS (например, направление поддомена metrics.site.com на сторонний сервер) в Safari 16.4+ блокируются алгоритмом CNAME Cloaking Defense:
- Если IP-адрес поддомена отличается от IP-адреса основного сайта по подсети C-класса, Safari определяет маскировку.
- Браузер принудительно урезает срок жизни cookies до 7 дней.
Решение в Sply:
Платформа работает как единый пограничный Reverse Proxy: и сбор данных, и страницы сайта обслуживаются в рамках единой сетевой инфраструктуры. Для Safari сервер аналитики и сайт являются одним ресурсом.
4. Сравнение сроков жизни идентификаторов
| Источник трафика / Браузер | Срок жизни Client JS | Срок жизни Server-Side (Sply) |
|---|---|---|
| Safari с рекламы | 24 часа | 400 дней |
| Safari при прямом переходе | 7 дней | 400 дней |
| Brave / Firefox (со щитами) | Блокировка скрипта | 100% учет |
| Chrome с AdBlock | Блокировка отправки | 100% учет |
Следующий шаг
- Шпаргалка: Настройка HTTP Set-Cookie для обхода Safari ITP.
- Следующая статья: Серверный трекинг (SST): принципы работы и переход с браузерной аналитики.
Внедрите Server-Side Tracking без сложного кода
Sply восстанавливает до 30% потерянных конверсий, защищает от Safari ITP/AdBlock и ускоряет загрузку ваших лендингов.