Metrica

Faydalı bağlantılar

Sayacın CSP içeren siteye kurulumu

Yandex.Metrica'nın oluşturduğu sayaç kodu inline türünde olup sayfaların HTML koduna eklenmek içindir. Content Security Policy teknolojisini kullanan sitelerde bu kod sadece şu özel eylemler yapılmış olmak kaydıyla çalışır: HTTP başlığında tarayıcıya nonce özelliğine sahip src-script direktifini (bu script öğesinin imzalanmasını gerektirir) ve noscript öğesinin içeriğini işlenmesi için img-src direktifini işleme izni aktarılmalı.

Yandex.Metrica'da sayaç kodu
[no-highlight[

Sayaç kodu, script öğesinin içerdiği bir JavaScript kodu ve noscript öğesinin bünyesindeki bir HTML kodu olmak üzere iki bölümden oluşur.

]no-highlight]
alımı için diğer bir yöntem de kullanabilirsiniz: Sayfaların HTML koduna sadece noscript öğesinin içeriğini ekleyip script öğesinin içeriğini dış komut dizisine (örneğin bir JS dosyasına) yükleyebilirsiniz..

Kullanacağınız yöntemi seçerken HTTP başlığına Yandex.Metrica'ya https://mc.yandex.ru adresi (sayacın çalışabilmesi için) ve https://yastatic.net adresi (Oturum Kaydı'nın çalışabilmesi için) üzerinden başvurma iznini eklemeniz gerekir.

Sayacın site sayfalarının HTML kodunda yerleştirilmesi

Bu yöntemi kullandığınızda Content-Security-Policy veya Content-Security-Policy-Report-Only şeklinde olan HTML başlığı aşağıdaki direktifleri içermelidir:

  • nonce özelliğine sahip script-src direktifi. Özellik Latin harflerinden ve rakamlardan oluşan rastgele karakter dizisi şeklinde bir satır değeri içermelidir. Bu değer rastgele ve her bir isteğe özel olarak sunucuda oluşturulmalıdır.

    Content-Security-Policy: script-src 'nonce-<karakter dizisi>';

    Site sayfalarındaki sayaç kodunun script öğesindeki nonce özelliği de aynı karakter dizisini içermelidir.

    ...
    <!-- Yandex.Metrika counter -->
    <script type="text/javascript" nonce="<karakter dizisi>">
        (function (d, w, c) {
            (w[c] = w[c] || []).push(function() {
    ...
  • mc.yandex.ru Yandex.Metrica adresinin belirtilmiş olduğu img-src direktifi (noscript öğesi içeriğinin işlenebilmesi için).

    Content-Security-Policy: img-src https://mc.yandex.ru;
  • connect-src direktifi (Yandex.Metrica'ya bağlanılabilmesi için).

    Content-Security-Policy: connect-src https://mc.yandex.ru;

Bu yönteme göre oluşturulan HTML başlığının örneği:

Content-Security-Policy:
 ...
 img-src https://mc.yandex.ru;
 script-src https://mc.yandex.ru https://yastatic.net 'nonce-<karakter dizisi>';
 connect-src https://mc.yandex.ru;
 ...

Sayacın dış komut dizisiyle bağlanması

Bu yöntemi kullandığınızda, Content-Security-Policy veya Content-Security-Policy-Report-Only şeklindeki HTTP başlığı, Yandex.Metrica veri yükleme kurallarını kapsayan ortak bir direktif seti içerebilir:

  • https://mc.yandex.ru ve https://yastatic.net adreslerinin belirtilmiş olduğu script-src direktifi (komut dizilerinin işlenebilmesi için).

    Content-Security-Policy: script-src https://mc.yandex.ru https://yastatic.net;
  • mc.yandex.ru Yandex.Metrica adresinin belirtilmiş olduğu img-src direktifi (noscript öğesi içeriğinin işlenebilmesi için).

    Content-Security-Policy: img-src https://mc.yandex.ru;
  • connect-src direktifi (Yandex.Metrica'ya bağlanılabilmesi için).

    Content-Security-Policy: connect-src https://mc.yandex.ru;

Bu yönteme göre oluşturulan HTML başlığının örneği:

Content-Security-Policy:
 ...
 img-src https://mc.yandex.ru;
 script-src 'self' https://mc.yandex.ru https://yastatic.net;
 connect-src https://mc.yandex.ru;
 ...

JavaScript kodunun JS türü bir dış dosyada bağlanmış olduğu bir örnek şu şekildedir: Bu durumda site sayfalarının HTML kodlarına sadece src özelliğine sahip script öğesinin eklenmesi gerekir. Bu özellik, metrika.js gibi bir dosya yolu içermelidir.

<script type="text/javascript" src="/metrika.js"></script>
  1. Yandex.Metrica arayüzünde Ayarlar bölümündeki Sayaç kodu sekmesine geçip ilgili alandan script öğesinin içeriğini kopyalayın.
  2. Elde ettiğiniz kodu metrika.js dosyasının içine ekleyin.

    Dosya içeriğinin bir örneği:
    (function (d, w, c) {
        (w[c] = w[c] || []).push(function() {
            try {
                w.yaCounterXXXXXX = new Ya.Metrika({id:XXXXXX,
                        clickmap:true,
                        trackLinks:true,
                        accurateTrackBounce:true});
            } catch(e) { }
        });
    
        var n = d.getElementsByTagName("script")[0],
            s = d.createElement("script"),
            f = function () { n.parentNode.insertBefore(s, n); };
        s.type = "text/javascript";
        s.async = true;
        s.src = "https://mc.yandex.ru/metrika/watch.js";
    
        if (w.opera == "[object Opera]") {
            d.addEventListener("DOMContentLoaded", f, false);
        } else { f(); }
    })(document, window, "yandex_metrika_callbacks");

    Bu; XXXXXX Yandex.Metrica sayaç numarasıdır.

  3. Sayacın, JavaScript'i devre dışı olan ziyaretçiler hakkında bilgi toplayabilmesi için site sayfalarının HTML koduna noscript öğesinin içeriğini ekleyin:

    <noscript><div><img src="https://mc.yandex.ru/watch/XXXXXX" style="position:absolute; left:-9999px;" alt="" /></div></noscript> 

Bu durumda, sitede sayaç kodu doğrulaması çalışmaz. Sayaçların listesinin bulunduğu sayfada sayacın durumu şöyle görünür: — “Ana sayfaya yüklenmedi, ancak veri alınıyor”.