Configuração do servidor para compatibilidade com Safari
Para melhorar a coleta de dados e o direcionamento de anúncios no navegador Safari, configure a atualização do cookie _ym_uid
no servidor. Esse tipo de cookie ajuda a identificar usuários no seu site.
Lógica da atualização de cookies
Se um cabeçalho de solicitação Cookie
contiver _ym_uid
, o servidor precisa enviar Set-Cookie
com o mesmo valor (_ym_uid
) e definir sua expiração para 1 ano.
O mesmo vale para _ym_d
, que contém o horário de criação da _ym_uid
.
Instruções para o servidor nginx
Primeiramente, edite o arquivo de configuração do nginx.
Observação
O caminho para os arquivos de configuração pode variar, dependendo das configurações do seu servidor.
sudo nano /etc/nginx/sites-enabled/default
Método simples
Atenção
Lembre-se de que não é possível usar esse método caso você use a diretiva add_header
para definir outros cabeçalhos ou a diretiva if
para roteamento condicional. Para evitar comportamento indesejado em tais cenários, use o método avançado.
Adicione o seguinte código a cada bloco de location
(em qualquer lugar dentro do bloco):
Observação
Se o seu serviço não utilizar protocolo HTTPS, remova o parâmetro Secure;
do cabeçalho.
Se o seu serviço utilizar subdomínios, use o domínio raiz em vez da variável $host
(por exemplo, exemplo.com.br
para o site vendas.exemplo.com.br
).
# 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";
}
Método avançado
Observação
Seu servidor talvez use um nome de pacote diferente e seu método de instalação.
-
Instale o módulo
lua
para nginx.sudo apt install libnginx-mod-http-lua
-
Adicione o seguinte código a cada bloco
server
(em qualquer lugar dentro do bloco):Observação
Se o seu serviço não utilizar protocolo HTTPS, remova o parâmetro
Secure;
do cabeçalho.Se o seu serviço utilizar subdomínios, use o domínio raiz entre aspas em vez da variável
ngx.var.host
(por exemplo,exemplo.com.br
para o sitevendas.exemplo.com.br
).# Atualização de cookies do Yandex Metrica 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 }
Passos finais
Teste a nova configuração:
sudo nginx -t
Uma vez que o teste tenha êxito, aplique a configuração do nginx:
sudo service nginx reload
Para verificar se o servidor está configurado corretamente:
- Abra seu site no navegador Safari.
- No menu, selecione Safari → Configurações.
- Na aba Avançado, marque a caixa Mostrar funcionalidades para desenvolvedores web.
- Use o atalho
Cmd+Opt+I
para alternar para o modo desenvolvedor e atualize a página. - No modo desenvolvedor, selecione Rede no menu.
- Encontre a primeira solicitação e verifique se o cabeçalho está presente no campo Resposta.
Links úteis |
Treinamento online |