Метрика

Ініціалізація лічильника

Порада. Для роботи із JavaScript API необхідні навички роботи з HTML і JavaScript. Якщо ви не маєте таких навичок, зверніться до розробника або вебмайстра вашого сайту.

JavaScript-бібліотека, яка відповідає за роботу лічильника, завантажується з URL https://mc.yandex.ru/metrika/watch.js.

Код для підключення бібліотеки доступний на сторінці редагування лічильника. Бібліотеку може бути завантажено асинхронним (рекомендовано) і синхронним способами, проте її функціонал при цьому залишається незмінним.

Для створення лічильника використовується клас Ya.Metrika. Створювати об'єкт цього класу наполегливо рекомендується таким чином, яким це реалізовано у коді, сформованому на сторінці редагування лічильника. Це найбільш перевірений спосіб, що коректно працює в переважній більшості випадків.

Ініціалізація лічильника являє собою створення об'єкта класу Ya.Metrika. Конструктор класу приймає на вхід JavaScript-об'єкт ( settings ), який містить параметри ініціалізації лічильника у вигляді полів.

var yaCounterXXXXXX = new Ya.Metrika(settings);

Єдиним обов'язковим параметром є номер лічильника, що задається у полі id:

var yaCounterXXXXXX = new Ya.Metrika({id: XXXXXX}); // XXXXXX – номер лічильника

Частина коду, що містить основні параметри ініціалізації, формується за допомогою конструктора на сторінці редагування лічильника. Повний список параметрів ініціалізації наведено в таблиці.

Методи об'єкта класу Ya.Metrika описано у довіднику методів.

Таблиця 1. Параметри ініціалізації лічильника

Ім'я

Значення за замовчуванням

Тип

Опис

id *
[no-highlight[

* Обязательный параметр.

]no-highlight]

Number

Номер лічильника.

accurateTrackBounce

false

Boolean | Number

Параметр може набувати значення:

  • true — увімкнути точний показник відмов, подію про невідмову буде зараховано через 15000 мс (15 с);
  • false — не вмикати точний показник відмов;
  • <N> (ціле число) — увімкнути точний показник відмов, подію про невідмову буде зараховано через <N> мс

clickmap

false

Boolean

Ознака збору даних для карти кліків

defer

false

Boolean

Ознака вимкнення автоматичного надсилання даних під час ініціалізації лічильника

ecommerce false

Boolean | String | Array

Збір даних електронної комерції — Ecommerce.

  • true — увімкнути збір даних електронної комерції. Передача даних здійснюється через JavaScript-масив з іменем dataLayer у глобальному просторі імен (window.dataLayer).
  • false — вимкнути збір даних електронної комерції Ecommerce;
  • <objectName> (String) — увімкнути збір даних електронної комерції Ecommerce. Передавання даних здійснюється через JavaScript-масив з ім'ям <objectName> у глобальному просторі імен (window.<objectName>).
  • <array> (Array) — увімкнути збір даних електронної комерції Ecommerce. Передавання даних здійснюється через JavaScript-масив <array>

params

Object

Параметри візиту, що передаються під час ініціалізації лічильника.

Для передавання параметрів візиту в довільний момент часу використовується метод params

userParams

Object

Параметри відвідувачів сайту, що передаються під час ініціалізації лічильника.

Для передавання параметрів відвідувачів у довільний момент часу використовується метод userParams

trackHash

false

Boolean

Ознака відстежування хешу в адресному рядку браузера

false

Boolean

Ознака відстежування переходів за зовнішніми посиланнями

type

0

Number

Тип лічильника. Для РМЯ дорівнює 1

ut

String

Єдине можливе значення —"noindex", заборона надсилання інформації про існування сторінки пошуковим роботом Яндекса.

Використання цього параметра не гарантує, що сторінку взагалі не буде проіндексовано. Інформація про існування сторінки може бути отримана роботом з інших джерел

webvisor

false

Boolean

Ознака використання Вебвізора

triggerEvent

false

Boolean

Ознака перевірки готовності лічильника

* Обязательный параметр.

Перевірка ініціалізації лічильника

Визначити, чи готовий лічильник до роботи, можна за допомогою спеціальної JavaScript-події. При цьому необхідно додати параметр triggerEvent зі значенням true у код лічильника. Для jQuery можна використовувати такий приклад коду до моменту ініціалізації лічильника:

jQuery(document).on('yacounterXXXXXinited', function () {
    console.log('лічильник yaCounterXXXXX  можна використовувати');
});

Встановлення кількох лічильників

Іноді виникає потреба розмістити на сторінці одразу кілька лічильників. У цьому випадку доцільніше не дублювати повний код ініціалізації лічильника. Краще згрупувати код створення всіх об'єктів класу Ya.Metrika усередині секції try ... catch, використовуючи повний код одного лічильника як шаблонний. Аналогічним чином код вставлення зображень, що використовується у разі вимкненого JavaScript, можна розмістити всередині єдиного елемента noscript.

<!-- Yandex.Metrika counter -->
<script type="text/javascript">
    (function (d, w, c) {
        (w[c] = w[c] || []).push(function() {
            try {
                w.yaCounterXXXXXX = new Ya.Metrika({id: XXXXXX});
                w.yaCounterYYYYYY = new Ya.Metrika({id: YYYYYY, webvisor: true});
            } catch(e) { }
        });

      ...
        
    })(document, window, "yandex_metrika_callbacks");
</script>
<noscript>
  <div>
    <img src="//mc.yandex.ru/watch/XXXXXX?ut=noindex" style="..." alt="" />
    <img src="//mc.yandex.ru/watch/YYYYYY?ut=noindex" style="..." alt="" />
  </div>
</noscript>
<!-- /Yandex.Metrika counter -->
<!-- Yandex.Metrika counter -->
<script src="//mc.yandex.ru/metrika/watch.js" type="text/javascript"></script>
<script type="text/javascript">
try {
  var yaCounterXXXXXX = new Ya.Metrika({id: XXXXXX});
  var yaCounterYYYYYY = new Ya.Metrika({id: YYYYYY, webvisor: true});

  ...

}
catch(e) { }
</script>
<noscript>
  <div>
    <img src="//mc.yandex.ru/watch/XXXXXX?ut=noindex" style="..." alt="" />
    <img src="//mc.yandex.ru/watch/YYYYYY?ut=noindex" style="..." alt="" />
  </div>
</noscript>
<!-- /Yandex.Metrika counter -->

Тут XXXXXX и YYYYYY — номери лічильників Метрики.

Підключення лічильника за допомогою системи керування тегами

Лічильники Яндекс.Метрики допускають підключення за допомогою систем керування тегами (альтернативні назви: диспетчери і контейнери тегів). Такі системи дають можливість зберігати весь необхідний HTML/JavaScript-код на зовнішньому сервері та підключати його на веб-сторінки за допомогою невеликих фрагментів коду. При цьому зміни у коді, що підключається, не вимагають внесення змін у код сторінок.

Системи керування тегами зазвичай підтримують два типи коду лічильників: JavaScript і зображення. Яндекс.Метрика підтримує лічильники обох типів. Для їх підключення за допомогою систем керування тегами слід використовувати такий код.

<script src="//mc.yandex.ru/metrika/watch.js" type="text/javascript"></script> <script type="text/javascript"> var yaCounterXXXXXX = new Ya.Metrika({id: XXXXXX[, <параметри ініціалізації>]});
</script>
<img src="//mc.yandex.ru/watch/XXXXXX" style="position:absolute; left:-9999px;" alt="" />

Тут XXXXXX — номер лічильника Метрики.

Збирані дані можуть відрізнятися залежно від типу коду лічильника. Докладніше див. розділ Збирані дані.

Всередині кожного тегу можна підключити одразу кілька лічильників, аналогічно тому, як це описано в розділі Встановлення кількох лічильників.