İstatistik toplama uyarısı

Yandex.Metrica ziyaretçiyi ziyareti hakkında verilerin toplanacağı hakkında uyarmaya ve sayaç kodunun site sayfalarına yüklenmesini ertelemeye olanak verir.

Veri aktarımının ziyaretçi tarafından onaylanması halinde sayaç kodu olağan şekilde yüklenir. Ziyaretçi onayı gelmedikçe sayaç kodu site sayfalarına yüklenmez. Ziyaretçinin yaptığı seçim gerektiğinde sitenin (alan adının) tüm sayfalarını ziyaretler için geçerli sayılabilir.

Bu bildirim ve sayaç kodu yüklemenin ertelenmesi işlevlerini çalıştırmak için web uzmanınıza başvurun.

Örnek
...
<head>
    <meta charset="UTF-8">
    <title>Sayfa başlığı</title>
    <!--Örnekte reset.css tarzı kullanılır. Kendi kararınıza göre seçim yapabilirsiniz.-->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css">
    <!--Çerez dosyalarıyla çalışmak için örnekte js-cookie kitaplığı kullanılıyor. Kendi seçiminizi yapabilirsiniz-->
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/js-cookie/2.1.2/js.cookie.js"></script>
    <style>
        * {
            box-sizing: border-box;
        }
        body {
            width: 100%;
            height: 100%;
        }
        .cookie-notification {
            position: fixed;
            background-color: rgba(0, 0, 0, .8);
            bottom: 0;
            width: 100%;
            color: white;
            padding: 15px;
        }

        .cookie-notification_hidden_yes {
            display: none;
        }

        .cookie-notification__header {
            margin-bottom: 10px;
            font-size: 23px;
        }

        .cookie-notification__body {
            margin-bottom: 10px;
        }
    </style>
</head>
<body>
    Site içeriği
    <div class="cookie-notification cookie-notification_hidden_yes">
        <div class="cookie-notification__header">Çerez kullanıyoruz</div>
        <div class="cookie-notification__body">Site ziyaret istatistiği toplamak için çerez kullanıyoruz. Siteyi ziyaret etmekle bunu kabul etmiş sayılırsınız</div>
        <div class="cookie-notification__buttons">
            <button class="cookie-notification__button" id="yes">Kabul ediyorum</button>
        </div>
    </div>
    <script type="text/javascript">
        var messageElement = document.querySelector('.cookie-notification');

        // Çerezler yokken şu kapak görseli gösterilir:
        if (!Cookies.get('agreement')) {
            showMessage();
        } else {
            initCounter();
        }
        // Sayaç kodu hemen yüklenir
        (function (d, w) {
            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);

        // İşlev DOM öğesine sınıf ekler. jQuery kitaplığını veya başka bir çerçeve (framework) kullanabilirsiniz
        function addClass (o, c) {
            var re = new RegExp("(^|\\s)" + c + "(\\s|$)", "g");

            if (!o || re.test(o.className)) {
                return;
            }

            o.className = (o.className + " " + c).replace(/\s+/g, " ").replace(/(^ | $)/g, "");
        }

        // İşlev DOM öğesinden sınıf siler. jQuery kitaplığını veya başka bir çerçeve (framework) kullanabilirsiniz
        function removeClass (o, c) {
            var re = new RegExp('(^|\\s)' + c + '(\\s|$)', 'g');
            if (!o) {
                return;
            }
            o.className = o.className.replace(re, '$1').replace(/\s+/g, ' ').replace(/(^ | $)/g, '');
        }

        // Uyarıyı gizleyen işlev
        function hideMessage () {
            addClass(messageElement, 'cookie-notification_hidden_yes');
        }

        // Uyarıyı görüntüleyen işlev
        function showMessage () {
            removeClass(messageElement, 'cookie-notification_hidden_yes');
        }

        function saveAnswer () {
            // Uyarıyı gizliyoruz
            hideMessage();

            // Çerezler kuruyoruz
            Cookies.set('agreement', '1');
        }

        function initCounter () {
            (function (w, c) {
                function _createCounter () {
                    try {
                        w.yaCounterXXXXXX = new Ya.Metrika({
                            id:XXXXXX,
                            clickmap:true,
                            trackLinks:true,
                            accurateTrackBounce:true,
                            webvisor:true
                        });
                    } catch (e) {}
                }

                // Sayaç kodu kurulduysa sayaç hemen çalıştırılır
                if (w.Ya && Ya.Metrika) {
                    _createCounter();
                } else {
                    // Aksi halde standart yönteme göre devam edilir
                    (w[c] = w[c] || []).push(function () {
                        _createCounter();
                    });
                }

                saveAnswer();
            })(window, "yandex_metrika_callbacks");
        }

        // "kabul ediyorum" butonuna tıklama
        document.querySelector('#yes').addEventListener('click', function () {
            initCounter();
        });
    </script>
</body>
...

Burada:

  • XXXXXX: Sayacınızın numarasıdır.