Configuración del servidor para soportar Safari
Para mejorar la recopilación de datos y la orientación de anuncios en el navegador Safari, configure la actualización de la cookie _ym_uid
en el servidor. Este tipo de cookie ayuda a identificar a los usuarios de su sitio.
Lógica de actualización de cookies
Si un encabezado de solicitud Cookie
contiene _ym_uid
, el servidor debe enviar Set-Cookie
con el mismo valor (_ym_uid
) y establecer su expiración a 1 año.
Lo mismo se aplica a _ym_d
, que contiene el tiempo de creación de _ym_uid
.
Instrucciones para el servidor nginx
Primero, edite el archivo de configuración de nginx.
Nota
La ruta a los archivos de configuración puede variar dependiendo de la configuración de su servidor.
sudo nano /etc/nginx/sites-enabled/default
Enfoque simple
Alerta
Tome en cuenta que no puede usar este enfoque si utiliza la directiva add_header
para establecer otros encabezados o la directiva if
para el enrutamiento condicional. Para evitar comportamiento no deseado en tales escenarios, utilice el enfoque avanzado.
Agregue el siguiente código a cada bloque de location
(en cualquier lugar dentro del bloque):
Nota
Si su servicio no utiliza el protocolo HTTPS, elimine el parámetro Secure;
del encabezado.
Si su servicio utiliza subdominios, use el dominio raíz en lugar de la variable $host
(por ejemplo, ejemplo.com
para el sitio ventas.ejemplo.com
).
# Update Yandex Metrica cookies
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";
}
Enfoque avanzado
Nota
Su servidor podría usar un nombre de paquete diferente y su método de instalación.
-
Instale el módulo
lua
para nginx.sudo apt install libnginx-mod-http-lua
-
Agregue el siguiente código a cada bloque de
server
(en cualquier lugar dentro del bloque):Nota
Si su servicio no utiliza el protocolo HTTPS, elimine el parámetro
Secure;
del encabezado.Si su servicio utiliza subdominios, utiliza el dominio raíz entre comillas en lugar de la variable
ngx.var.host
(por ejemplo,ejemplo.com
para el sitioventas.ejemplo.com
).# Update Yandex Metrica cookies 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 }
Pasos finales
Pruebe la nueva configuración:
sudo nginx -t
Una vez que la prueba sea exitosa, aplique la configuración de nginx:
sudo service nginx reload
Para verificar si el servidor está configurado correctamente:
- Abra su sitio web en el navegador Safari.
- En el menú, seleccione Safari → Configuración.
- En la pestaña Avanzado, marque la casilla Mostrar características para desarrolladores web.
- Use la tecla de acceso rápido
Cmd+Opt+I
para cambiar al modo desarrollador y actualice la página. - En el modo desarrollador, seleccione Red en el menú.
- Encuentre la primera solicitud y verifique que el encabezado esté presente en el campo Respuesta.
Enlaces útiles |
Capacitación en línea |