Instalação de tag em site com CSP
O código de tag gerado pelo Yandex Metrica é destinado à inserção linear no código HTML das páginas. Em sites que usam a tecnologia Content Security Policy, esse código não será executado, a menos que você tome providências específicas. Em particular, é preciso usar o cabeçalho HTTP para dar ao navegador permissão para processar os dados. O cabeçalho HTTP deve incluir a diretiva src-script com o atributo nonce (isso exige a assinatura do conteúdo do elemento script) e a diretiva img-src para processar o conteúdo do elemento noscript.
Além disso, o Yandex Metrica oferece outra maneira de habilitar o código da tag: inserindo apenas o conteúdo do elemento noscript no código HTML das páginas e movendo o conteúdo do elemento script para um script externo (por exemplo, para um arquivo JS).
Qualquer que seja o método escolhido, você precisará modificar o cabeçalho HTTP para adicionar permissão de acesso ao Yandex Metrica.
Lista geral de endereços
https://mc.yandex.ru
https://mc.yandex.az
https://mc.yandex.by
https://mc.yandex.co.il
https://mc.yandex.com
https://mc.yandex.com.am
https://mc.yandex.com.ge
https://mc.yandex.com.tr
https://mc.yandex.ee
https://mc.yandex.fr
https://mc.yandex.kg
https://mc.yandex.kz
https://mc.yandex.lt
https://mc.yandex.lv
https://mc.yandex.md
https://mc.yandex.tj
https://mc.yandex.tm
https://mc.yandex.uz
https://mc.webvisor.com
https://mc.webvisor.org
https://yastatic.net
wss://mc.yandex.ru
wss://mc.yandex.az
wss://mc.yandex.by
wss://mc.yandex.co.il
wss://mc.yandex.com
wss://mc.yandex.com.am
wss://mc.yandex.com.ge
wss://mc.yandex.com.tr
wss://mc.yandex.ee
wss://mc.yandex.fr
wss://mc.yandex.kg
wss://mc.yandex.kz
wss://mc.yandex.lt
wss://mc.yandex.lv
wss://mc.yandex.md
wss://mc.yandex.tj
wss://mc.yandex.tm
wss://mc.yandex.uz
wss://mc.webvisor.com
wss://mc.webvisor.org
Endereços para frame-ancestors
metrika.yandex.ru
analytics.yandex.by
analytics.yandex.com
analytics.yandex.com.tr
analytics.yandex.kz
analytics.yandex.ru
metr.yandex.by
metr.yandex.com
metr.yandex.com.tr
metr.yandex.kz
metr.yandex.ru
metrica.ya.ru
metrica.yandex
metrica.yandex.by
metrica.yandex.com
metrica.yandex.com.tr
metrica.yandex.kz
metrica.yandex.ru
metrika.ya.ru
metrika.yandex
metrika.yandex.by
metrika.yandex.com
metrika.yandex.com.tr
metrika.yandex.kz
metrika.yandex.uz
Inserção do código da tag no código HTML das páginas de um site
Atenção
Os exemplos não listam todos os endereços necessários para o funcionamento do Yandex Metrica.
Caso queira usar este método, o cabeçalho HTTP Content-Security-Policy ou Content-Security-Policy-Report-Only deverá conter as seguintes diretivas:
-
script-src com o atributo nonce. Esse atributo deve conter um valor de string com uma sequência aleatória de caracteres (letras e números). Esse valor deve ser gerado aleatoriamente no servidor de forma separada para cada solicitação.
Content-Security-Policy: script-src 'nonce-<character sequence>';A mesma sequência de caracteres deve estar contida no atributo
noncedo elementoscriptdo código da tag nas páginas do site.... <!-- Yandex Metrica tag --> <script type="text/javascript" nonce="<character sequence>"> (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a|| []).push(arguments)}; ... -
img-src para permitir o processamento do conteúdo do elemento
noscript.Content-Security-Policy: img-src https://mc.yandex.ru; -
connect-src para conectar com o Yandex Metrica.
Content-Security-Policy: connect-src https://mc.yandex.ru; -
child-src com a string
blob: https://mc.yandex.rupara que a Reprise de Sessão, o mapa de cliques, o mapa de links e o mapa de rolagem funcionem corretamente.Content-Security-Policy: child-src blob: https://mc.yandex.ru; -
frame-src com a string
blob: https://mc.yandex.rupara que a Reprise de Sessão, o mapa de cliques, o mapa de links e o mapa de rolagem funcionem corretamente.Content-Security-Policy: frame-src blob: https://mc.yandex.ru; -
frame-ancestors para que a Reprise de Sessão, o mapa de cliques, o mapa de links e o mapa de rolagem funcionem corretamente. Use endereços para frame-ancestors.
Content-Security-Policy: frame-ancestors: http://metrika.yandex.ru;
Exemplo do cabeçalho HTTP ao usar este método:
Content-Security-Policy:
...
img-src https://mc.yandex.ru;
script-src https://mc.yandex.ru https://yastatic.net 'nonce-<character sequence>';
connect-src https://mc.yandex.ru;
...
Uso de um script externo para conectar o código da tag
Atenção
Os exemplos não listam todos os endereços necessários para o funcionamento do Yandex Metrica. Veja a lista completa.
Se você usar este método, o cabeçalho HTTP Content-Security-Policy ou Content-Security-Policy-Report-Only poderá contar com um conjunto geral de diretivas, inclusive regras para carregar dados do Yandex Metrica:
-
script-src para permitir o processamento de scripts.
Content-Security-Policy: script-src https://mc.yandex.ru https://yastatic.net; -
img-src para permitir o processamento do conteúdo do elemento
noscript.Content-Security-Policy: img-src https://mc.yandex.ru; -
connect-src para conectar com o Yandex Metrica.
Content-Security-Policy: connect-src https://mc.yandex.ru; -
child-src com a string
blob: https://mc.yandex.rupara que a Reprise de Sessão, o mapa de cliques, o mapa de links e o mapa de rolagem funcionem corretamente.Content-Security-Policy: child-src blob: https://mc.yandex.ru; -
frame-src com a string
blob: https://mc.yandex.rupara que a Reprise de Sessão, o mapa de cliques, o mapa de links e o mapa de rolagem funcionem corretamente.Content-Security-Policy: frame-src blob: https://mc.yandex.ru;
Exemplo do cabeçalho HTTP ao usar este método:
Content-Security-Policy:
...
img-src https://mc.yandex.ru;
script-src 'self' https://mc.yandex.ru https://yastatic.net;
connect-src https://mc.yandex.ru;
...
O exemplo abaixo habilita o código JavaScript em um arquivo JS externo. Apenas o elemento script com o atributo src precisa ser adicionado ao código HTML das páginas do site. Esse atributo deve conter o caminho para o arquivo (por exemplo, metrika.js).
<script type="text/javascript" src="/metrika.js"></script>
-
Na interface do Yandex Metrica, acesse Configurações > Tag e copie do campo o conteúdo do elemento
script. -
Adicione este código ao arquivo
metrika.js.Exemplo de conteúdo do arquivo
(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();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", { id:XXXXXX, clickmap:true, trackLinks:true, accurateTrackBounce:true });Onde
XXXXXXXXé o número de uma tag Yandex Metrica. -
Para que a tag colete dados de usuários que estiverem com o JavaScript desabilitado, adicione o conteúdo do elemento
noscriptao código HTML das páginas do site:<noscript><div><img src="https://mc.yandex.ru/watch/XXXXXX" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
|
Links úteis |
Treinamento online |
O código da tag consiste de duas partes: o código JavaScript no elemento script e o código HTML no elemento noscript.