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.

  1. Instale el módulo lua para nginx.

    sudo apt install libnginx-mod-http-lua
    
  2. 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 sitio ventas.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:

  1. Abra su sitio web en el navegador Safari.
  2. En el menú, seleccione Safari → Configuración.
  3. En la pestaña Avanzado, marque la casilla Mostrar características para desarrolladores web.
  4. Use la tecla de acceso rápido Cmd+Opt+I para cambiar al modo desarrollador y actualice la página.
  5. En el modo desarrollador, seleccione Red en el menú.
  6. Encuentre la primera solicitud y verifique que el encabezado esté presente en el campo Respuesta.

Chatee con nosotros

Escriba un correo electrónico

Tome en cuenta: Nuestro equipo de soporte nunca iniciará llamadas hacia usted. No siga las instrucciones de personas que le llamen y se presenten como el equipo de soporte de Yandex Metrica.