在网站上安装多个计数器
有时您可能需要一次在一个页面上放置多个计数器。 同样,您可以将图像嵌入代码(在禁用 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=XXXXXXXX', 'ym');
ym(XXXXXXXX, '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=YYYYYYYY', 'ym');
ym(YYYYYYYY, 'init', {ssr:true, clickmap:true, accurateTrackBounce:true, trackLinks:true});
</script>
<noscript>
<div>
<img src="https://mc.yandex.ru/watch/XXXXXXXX" style="..." alt="" />
</div>
<div>
<img src="https://mc.yandex.ru/watch/YYYYYYYY" style="..." alt="" />
</div>
</noscript>
<!-- /Yandex.Metrika counter -->
这里的 XXXXXXXX 和 YYYYYYYY 是 Yandex Metrica 计数器的 ID。
不带 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(XXXXXXXX, "init", {clickmap:true, trackLinks:true, accurateTrackBounce:true});
ym(YYYYYYYY, "init", {clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor: true});
</script>
<noscript>
<div>
<img src="https://mc.yandex.ru/watch/XXXXXXXX" style="..." alt="" />
<img src="https://mc.yandex.ru/watch/YYYYYYYY" style="..." alt="" />
</div>
</noscript>
<!-- /Yandex.Metrika counter -->
这里的 XXXXXXXX 和 YYYYYYYY 是 Yandex Metrica 计数器的 ID。
将具有不同代码版本的计数器进行组合
如果一个页面上安装了多个计数器,并且其中一个计数器在 ssr: true 参数设置下加载,则某些设置组合可能会导致 Session Replay 问题。
假设在同一页面上设置了两个计数器:
- 计数器
XXXXXXXX在ssr: true参数设置下安装。 Session Replay 已在此计数器的设置中禁用。 - 计数器
YYYYYYYY以标准方式安装,并使用延迟加载,例如使用setTimeout函数。 Session Replay 已在此计数器的设置中启用。
在这种情况下,由于特定的代码加载过程,Session Replay 在这两个计数器上均不会运行:
- 第一个计数器的代码在服务器上生成(由
ssr: true参数确定)。 这里,Yandex Metrica 界面中的设置决定是否加载 Session Replay。 - Session Replay 已在 Yandex Metrica 设置中禁用,因此加载的计数器文件
tag.js不包含 Session Replay 模块。 - 第二个计数器在第一个计数器之后加载。 如果其初始化代码缺少
ssr: true参数,它会加载为第一个计数器生成的tag.js文件。 - 因此,
tag.js不包含 Session Replay 代码,并且 Session Replay 无法运行。
为确保 Session Replay 在计数器 YYYYYYYY 上正常运行,请执行以下操作:
- 在
XXXXXXXX计数器设置中启用 Session Replay。 - 向计数器
XXXXXXXX的初始化代码添加webvisor: false参数。
在这种情况下,tag.js 将包含 Session Replay 代码,但 webvisor: false 参数将阻止 Session Replay 在第一个计数器上运行。
示例代码:计数器 XXXXXXXX:
ym(XXXXXXXX, "init", {
ssr: true,
webvisor: false,
// 其他参数
});