Настройка сервера для работы с Safari
Для улучшения сбора данных и таргетинга рекламы в браузере Safari необходимо настроить обновление cookie _ym_uid на сервере. Этот тип cookie помогает идентифицировать посетителей сайта.
Логика обновления cookie
Если в заголовке запроса Cookie присутствует _ym_uid, сервер должен отправить Set-Cookie с тем же значением _ym_uid и установить срок его действия на 1 год.
Аналогично с _ym_d — этот cookie-файл содержит время создания _ym_uid.
Инструкция для сервера nginx
Сначала отредактируйте файл конфигурации nginx.
sudo nano /etc/nginx/sites-enabled/default
Простой способ
Если ваш сервис не использует протокол HTTPS, удалите из заголовка параметр Secure;.
Если ваш сервис использует субдомены, используйте корневой домен вместо переменной $host (например, example.com
для сайта sales.example.com
).
# Обновление куки Яндекс.Метрики
if ($cookie__ym_uid) {
set $ym_postfix "Max-Age=31536000;Secure;Path=/;Domain=.$host";
add_header Set-Cookie "_ym_uid=$cookie__ym_uid;$ym_postfix";
add_header Set-Cookie "_ym_d=$cookie__ym_d;$ym_postfix";
add_header Set-Cookie "_ym_ucs=nginx;$ym_postfix";
}
Продвинутый способ
Установите модуль lua для nginx.
sudo apt install libnginx-mod-http-lua
- В каждом блоке server добавьте следующий код (его можно разместить в любом месте блока):Примечание.
Если ваш сервис не использует протокол HTTPS, удалите из заголовка параметр Secure;.
Если ваш сервис использует субдомены, используйте корневой домен в кавычках вместо переменной ngx.var.host (например,
example.com
для сайтаsales.example.com
).# Обновление куки Яндекс.Метрики header_filter_by_lua_block { if ngx.var.cookie__ym_uid and ngx.var.host then local ym_postfix = "Max-Age=31536000; Secure; Path=/; Domain=." .. ngx.var.host ngx.header["Set-Cookie"] = { "_ym_uid=" .. ngx.var.cookie__ym_uid .. "; " .. ym_postfix, "_ym_d=" .. (ngx.var.cookie__ym_d or "") .. "; " .. ym_postfix, "_ym_ucs=nginx; " .. ym_postfix } end }
Завершающие шаги
sudo nginx -t
sudo service nginx reload
- В браузере Safari откройте ваш сайт.
- В меню выберите Settings).(
- На вкладке Дополнительно (Advanced) поставьте галочку Показывать функции для веб-разработчиков (Show features for web developers).
- Откройте режим разработчика с помощью клавиш
Cmd+Opt+I
и перезагрузите страницу. - В режиме разработки выберите пункт Разработка (Network) в меню.
- Найдите первый запрос и проверьте, что заголовок выставляется в поле Ответ (Response).