Instalação de várias tags em um site
Às vezes, pode ser necessário colocar diversas tags numa página de uma só vez. Da mesma forma, você pode posicionar o código de incorporação da imagem, que é usado quando o JavaScript está desabilitado, dentro de um único elemento noscript.
Caso esteja instalando diversas tags, conecte a Reprise de Sessão apenas a uma tag especificada no código.
Para inicializar uma tag, use o 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=XXXXXXXXX', 'ym');
ym(XXXXXXXXX, '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=YYYYYYYYY', 'ym');
ym(YYYYYYYYY, 'init', {ssr:true, clickmap:true, accurateTrackBounce:true, trackLinks:true});
</script>
<noscript>
<div>
<img src="https://mc.yandex.ru/watch/XXXXXXXXX" style="..." alt="" />
</div>
<div>
<img src="https://mc.yandex.ru/watch/YYYYYYYYY" style="..." alt="" />
</div>
</noscript>
<!-- Yandex Metrica tag -->
Aqui, XXXXXXXX e YYYYYYYY são as IDs das tags Yandex Metrica.
Snippet de código sem o 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(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 Metrica tag -->
Aqui, XXXXXXXX e YYYYYYYY são as IDs das tags Yandex Metrica.
Como combinar tags com diferentes versões de código
Caso haja várias tags instaladas em uma página e uma delas carregue com o parâmetro ssr: true, algumas combinações de configurações podem causar problemas na Reprise de Sessão.
Vamos supor que haja duas tags configuradas em uma mesma página:
- A tag
XXXXXXXXfoi instalada com o parâmetrossr: true. Nas configurações dessa tag, a Reprise de Sessão está desabilitada. - A tag
YYYYYYYYfoi instalada de maneira padrão e utiliza carregamento deferido, por exemplo com a funçãosetTimeout. Nas configurações dessa tag, a Reprise de Sessão está habilitada.
Nesse caso, a Reprise de Sessão não irá funcionar em ambas as tags devido a um processo específico de carregamento do código:
- O código da primeira tag é gerado no servidor (como determinado pelo parâmetro
ssr: true). Aqui, as configurações da interface do Yandex Metrica determinam se a Reprise de Sessão será carregada ou não. - A Reprise de Sessão está desabilitada nas configurações do Yandex Metrica, portanto o arquivo de tag
tag.jscarregado não contém o módulo da Reprise de Sessão. - A segunda tag será carregada após a primeira. Se o código de inicialização não tiver o parâmetro
ssr: true, ele carregará o mesmo arquivotag.jsque foi gerado para a primeira tag. - Consequentemente,
tag.jsnão irá conter o código da Reprise de Sessão e não há como a Reprise de Sessão funcionar.
Para garantir que a Reprise de Sessão funcione corretamente na tag YYYYYYYY:
- Habilite a Reprise de Sessão nas configurações da tag
XXXXXXXX. - Adicione o parâmetro
webvisor: falseao código de inicialização da tagXXXXXXXX.
Neste caso, tag.js irá conter o código da Reprise de Sessão, mas o parâmetro webvisor: false impedirá que a Reprise de Sessão seja executada na primeira tag.
Exemplo de código para a tag XXXXXXXX:
ym(XXXXXXXX, "init", {
ssr: true,
webvisor: false,
// outros parâmetros
});