5. Проброска cookie
В сентябре 2019 года компания Apple презентовала ITP 2.3, принудительно удаляющий 3rd-party cookie через 7 дней. Google также ограничивает некоторые аспекты 3rd-party cookie и анонсировал в будущих обновлениях блокировку 3rd-party cookies по умолчанию в браузере. Mozilla уже блокирует 3rd-party cookie по умолчанию с 2019 года. Вполне вероятно, что другие браузеры также внедряют ограничения 3rd-party cookies или имеют таковые планы.
Как это влияет на вас?
При использовании Safari подразумевается, что если пользователь не посещал ваш сайт 7 или более дней, хранящаяся cookie, по которой платформа идентифицирует пользователя) будет удалена. Таким образом, вернувшийся пользователь будет воспринят как новый. Последствия будут значительными: количество пользователей Safari будет завышено, что повлияет на несколько аспектов работы платформы, в том числе эффективность рекламных кампаний и отчетность. Чтобы преодолеть данное ограничение, необходимо передавать SLID-cookie с вашего сервера, делая ее 1st-party, что в свою очередь позволит ей избежать влияния новых ограничений.
Как передавать SLID cookie со своего сервера?
Решение заключается в установке SLID cookie бэкэнд-приложением, обслуживающим ваш вебсайт на домене. Cookie-файлы, установленные таким образом, воспринимаются как 1st-party (собственные cookie домена, а не сторонние), не попадают под действие Intelligent Tracking Prevention (Apple ITP) и могут иметь пролонгированный срок жизни. Установка проходит в два шага:
Проверка наличия текущих cookie у пользователя.
Обработка cookie в соответствии с одним из сценариев ниже:
Если у пользователя есть cookie с именем
_slid_server
, срок её жизни необходимо обновить до одного года. Значение идентификатора остаётся тем же.Если у пользователя есть cookie с именем
_slid
и нет cookie с именем_slid_server
, необходимо скопировать идентификатор из cookie с именем_slid
в новую cookie с именем_slid_server
.
Пример:
Допустим, значение _slid
cookie — 63317316ce625bd9270b6442
. Необходимо продублировать это значение в новую cookie _slid_server
и установить срок жизни 31556951 как максимальное значение атрибута. Результат: _slid_server=63317316ce625bd9270b6442;max-age=31556951
Сценарий взаимодействия
Пользователь заходит на ваш сайт;
Ваш сервер (бэкенд-приложение) получает запрос на показ страницы в браузере. Запросы от вернувшихся пользователей включают
_slid
cookie;Приложение сервера воспроизводит следующие шаги:
Проверяет, есть ли в запросе
_slid
cookie;Проверяет, есть ли в запросе
_slid_server
cookie;Если в запросе только
_slid
cookie, дублирует ее как новую _slid_server cookie. Если в запросе обе - переходит к шагу 3.4 без дублирования;Возвращает новую cookie как заголовок ответа со сроком жизни 1 год. Эти действия устанавливают
_slid_server
cookie как 1st-party серверную cookie. Таким образом, ее срок жизни уже нельзя будет принудительно уменьшить (имейте ввиду, что_slid
cookie будет и далее возвращаться, этого менять не нужно);
Теперь, после сопоставления идентификаторов, пользователь будет видеть отрендеренный для него контент. Таким образом данные о пользователе не будут потеряны, даже если он не был на сайте более 7 дней.
Примеры кода
Валидация установки на примере Chrome браузера
Для проверки корректности установки необходимо:
Открыть инструменты разработчика (Command+Option+J) для Mac или Control+Shift+J (Windows, Linux, Chrome OS).
Перейти во вкладку Network
Выбрать Preserve Log и очистить историю
Обновить страницу
В столбце с именами событий найти то, где именем выступает адрес вашего сайта
Перейти в раздел Headers данного события
В подразделе Request headers значения _slid и _slid_server кук должны совпадать
Last updated