Instalación de varias etiquetas en un sitio
En ocasiones, es posible que necesite colocar varias etiquetas en una sola página al mismo tiempo. De manera similar, puede colocar el código de incrustación de imagen que se usa cuando JavaScript está deshabilitado dentro de un solo elemento noscript.
Si está instalando varias etiquetas, conecte Reproducción de sesión solo a una etiqueta especificada en el código.
Para inicializar una etiqueta use el parámetro 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>
<!-- /Contador de Yandex.Metrika -->
Aquí XXXXXXXX y YYYYYYYY son los ID de las etiquetas de Yandex Metrica.
Fragmento de código sin el parámetro 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(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>
<!-- /Contador de Yandex.Metrika -->
Aquí XXXXXXXX y YYYYYYYY son los ID de las etiquetas de Yandex Metrica.
Combinar etiquetas con versiones de código diferentes
Si se instalan múltiples etiquetas en una página y una de ellas se carga con el parámetro ssr: true, algunas combinaciones de configuraciones pueden provocar problemas de reproducción de sesión (Session Replay).
Imagine que hay dos etiquetas configuradas en la misma página:
- La etiqueta
XXXXXXXXse instala con el parámetrossr: true. La reproducción de la sesión está deshabilitada en la configuración de esta etiqueta. - La etiqueta
YYYYYYYYse instala de manera estándar y usa la carga diferida, como con la funciónsetTimeout. La reproducción de la sesión está habilitada en la configuración de esta etiqueta.
En este caso, la reproducción de la sesión no funcionará en ambas etiquetas debido a un proceso específico de carga de código:
- El código de la primera etiqueta se genera en el servidor (como determina el parámetro
ssr: true). Aquí, los ajustes en la interfaz de Yandex Metrica determinan si se carga la reproducción de la sesión o no. - La reproducción de la sesión está desactivada en la configuración de Yandex Metrica, por lo que el archivo de etiquetas cargado
tag.jsno incluye el módulo de reproducción de la sesión. - La segunda etiqueta se carga después de la primera. Si su código de inicialización no incluye el parámetro
ssr: true, carga el mismo archivotag.jsque se generó para la primera etiqueta. - Como resultado,
tag.jsno incluye el código de reproducción de la sesión y esta no puede funcionar.
Para asegurarse de que la reproducción de la sesión funcione correctamente en la etiqueta YYYYYYYY:
- Habilite la reproducción de la sesión en la configuración de la etiqueta
XXXXXXXX. - Añada el parámetro
webvisor: falseal código de inicialización de la etiquetaXXXXXXXX.
En este caso, tag.js incluirá el código de reproducción de la sesión, pero el parámetro webvisor: false impedirá que funcione en la primera etiqueta.
Código de ejemplo de la etiqueta XXXXXXXX:
ym(XXXXXX, "init", {
ssr: true,
webvisor: false,
// otros parámetros
});