Установка нескольких счетчиков на сайт
Иногда возникает необходимость разместить на странице сразу несколько счетчиков. Код вставки изображений, использующийся при отключенном JavaScript, можно разместить внутри единственного элемента noscript.
При установке нескольких счетчиков подключите Вебвизор только к одному счетчику, указанному в коде.
Для инициализации счетчиков используется параметр ssr.
<!-- Yandex Metrica tag -->
<script type="text/javascript">
(function(m,e,t,r,i,k,a){
m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();
for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)
})(window, document,'script','https://mc.yandex.ru/metrika/tag.js?id=XXXXXXX', 'ym');
ym(XXXXXXX, 'init', {ssr:true, webvisor:true, clickmap:true, accurateTrackBounce:true, trackLinks:true});
(function(m,e,t,r,i,k,a){
m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();
for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)
})(window, document,'script','https://mc.yandex.ru/metrika/tag.js?id=YYYYYYY', 'ym');
ym(YYYYYYY, 'init', {ssr:true, clickmap:true, accurateTrackBounce:true, trackLinks:true});
</script>
<noscript>
<div>
<img src="https://mc.yandex.ru/watch/XXXXXXX" style="..." alt="" />
</div>
<div>
<img src="https://mc.yandex.ru/watch/YYYYYYY" style="..." alt="" />
</div>
</noscript>
<!-- /Yandex.Metrika counter -->
Здесь XXXXXX и YYYYYY — номера счетчиков Метрики.
Код счетчика без параметра ssr
<!-- Yandex Metrica tag -->
<script type="text/javascript" >
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();
for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(XXXXXX, "init", {clickmap:true, trackLinks:true, accurateTrackBounce:true});
ym(YYYYYY, "init", {clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor: true});
</script>
<noscript>
<div>
<img src="https://mc.yandex.ru/watch/XXXXXX" style="..." alt="" />
<img src="https://mc.yandex.ru/watch/YYYYYY" style="..." alt="" />
</div>
</noscript>
<!-- /Yandex.Metrika counter -->
Здесь XXXXXX и YYYYYY — номера счетчиков Метрики.
Сочетание счетчиков разных версий кодов
Если на одной странице установлено несколько счетчиков, один из которых загружается с параметром ssr: true, при некоторых сочетаниях настроек возможны проблемы с использованием Вебвизора.
Например, на странице настроены два счетчика:
- Счетчик
XXXXXXустановлен с параметромssr: true. В настройках этого счетчика Вебвизор выключен. - Счетчик
YYYYYYустановлен обычным образом и использует отложенную загрузку, например, с помощью функцииsetTimeout. В настройках этого счетчика Вебвизор включен.
В этом случае Вебвизор не будет работать на обоих счетчиках. Это происходит из-за особенностей загрузки кода:
- Код первого счетчика формируется на сервере (это определяет параметр
ssr: true). В этом случае загружать или не загружать Вебвизор зависит от настроек в интерфейсе Метрики. - В настройках Метрики Вебвизор выключен, поэтому загружаемый файл счетчика
tag.jsне будет содержать модуль Вебвизора. - Второй счетчик загружается после первого. Если его код инициализации не имеет параметра
ssr: true, он загрузит тот жеtag.js, что был сформирован для первого счетчика. - Соответственно,
tag.jsне будет содержать код Вебвизора и работа Вебвизора будет невозможна.
Чтобы Вебвизор работал корректно на счетчике YYYYYY нужно:
- В настройках счетчика
XXXXXXвключить Вебвизор. - В коде инициализации счетчика
XXXXXXдобавить параметрwebvisor: false.
В этом случае файл tag.js будет содержать код Вебвизора, но работа Вебвизора в первом счетчике будет запрещена параметром webvisor: false.
Пример кода для счетчика XXXXXX:
ym(XXXXXX, "init", {
ssr: true,
webvisor: false,
// другие параметры
});