Sunucunun Safari ile çalışma ayarları

Veri toplamayı ve reklam hedeflemeyi iyileştirmek için Safari'de _ym_uid çerezinin sunucuda güncellenmesini ayarlamak gerekir. Bu çerez dosyası, site ziyaretçilerinin kimliklerini belirlemeyi sağlar.

Çerez güncelleme mantığı

Cookie sorgusunun başlığı _ym_uid öğesini içeriyorsa sunucu, _ym_uid değerli Set-Cookie öğesini de göndermeli ve bunun geçerlilik süresini 1 yıl olarak belirlemelidir.

Benzer şekilde, _ym_d çerezi de _ym_uid'in oluşturma zamanı bilgilerini içerir.

NGINX sunucusu için talimatlar

NGINX konfigürasyon dosyasını düzenlemekle başlayın.

Not. Konfigürasyon dosyalarının yolu sunucu ayarlarınıza göre farklılık gösterebilir.
sudo nano /etc/nginx/sites-enabled/default

Basit yöntem

Uyarı. Diğer başlıkları belirlemek için add_header direktifini veya koşullu yönlendirme için if direktifini kullanıyorsanız bu yöntem sizin için uygun değildir. İstenmeyen davranışları önlemek için gelişmiş yöntemi kullanmalısınız.
Her location bloğuna istediğiniz yere şu kodu yerleştirin:
Not.

Servisiniz HTTPS protokolü kullanmıyorsa Secure; parametresini başlıktan silin.

Servisiniz alt alan adları kullanıyorsa $host değişkeninin yerine kök alan adını (örneğin, sales.example.com sitesi için example.com) kullanın.

# Yandex Metrica çerezlerinin güncellenmesi

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";
}

Gelişmiş yöntem

Not. Sunucunuzda paket adı ve kurulum yöntemi farklı olabilir.
  1. NGINX için lua modülünü kurun.

    sudo apt install libnginx-mod-http-lua
  2. Her server bloğuna istediğiniz yere şu kodu yerleştirin:
    Not.

    Servisiniz HTTPS protokolü kullanmıyorsa Secure; parametresini başlıktan silin.

    Servisiniz alt alan adları kullanıyorsa ngx.var.host değişkeninin yerine tırnaklar içinde kök alan adını (örneğin, sales.example.com sitesi için example.com) kullanın.

    # Yandex Metrica çerezlerinin güncellenmesi
    
    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
    }

Son adımlar

Konfigürasyon doğruluğunu kontrol edin:
sudo nginx -t
Kontrol işleminden sonra NGINX konfigürasyonunu güncelleyin:
sudo service nginx reload
Sunucunun doğru yapılandırılıp yapılandırılmadığını kontrol etmek için:
  1. Safari tarayıcısında sitenizi açın.
  2. Menüde Safari → Ayarlar (Settings) bölümünü seçin.
  3. Gelişmiş (Advanced) sekmesinde Web geliştiricisi özelliklerini göster (Show features for web developers) seçeneğini işaretleyin.
  4. Cmd+Opt+I tuş kombinasyonunu kullanarak geliştirici moduna girin ve sayfayı yeniden yükleyin.
  5. Geliştirici modundayken menüdeki (Network) bölümünü seçin.
  6. İlk sorguyu bulup Yanıt (Response) alanında başlığın girildiğinden emin olun.