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 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

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. Veja a lista completa.

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 nonce do elemento script do código da tag nas páginas do site.

    ...
    <!-- Yandex.Metrika counter -->
    <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.ru para 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.ru para 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 com a string blob: https://mc.yandex.ru para 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-ancestors 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 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.ru para 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.ru para 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>
  1. Na interface do Yandex Metrica, acesse Configurações > Tag e copie do campo o conteúdo do elemento script.

  2. 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(XXXXXX, "init", {
            id:XXXXXX,
            clickmap:true,
            trackLinks:true,
            accurateTrackBounce:true
        });
    

    Onde XXXXXX é o número de uma tag Yandex Metrica.

  3. Para que a tag colete dados de usuários que estiverem com o JavaScript desabilitado, adicione o conteúdo do elemento noscript ao 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> 
    

Fale conosco

Escrever um e-mail

Caso não tenha conseguido checar a tag de forma independente, siga as recomendações abaixo.

Isso pode acontecer pelos seguintes motivos:

  • A tag está instalada de maneira incorreta. Por exemplo, o CMS modificou o código da tag. Reinstale a tag ou entre em contato com o serviço de suporte do seu CMS.
  • Scripts inoperantes estão impedindo que a tag Yandex Metrica funcione no site. Isso pode ser verificado no console do navegador.
As recomendações não ajudaram

Isso significa que as informações estão sendo transmitidas para o Yandex Metrica. No entanto, os dados podem não estar sendo exibidos nos relatórios por algum dos seguintes motivos:

  • Os dados são enviados com um número diferente para uma tag.
  • A aba Filtros das configurações da tag está definida com filtros excessivamente restritivos. Remova filtros desnecessários.
  • A aba Filtros das configurações da tag está com o filtro Não contabilizar minhas sessões habilitado. Isso significa que a tag não registra as suas próprias sessões. Tente acessar o site com o navegador no modo "anônimo".
As recomendações não ajudaram

O código da tag consiste de duas partes: o código JavaScript no elemento script e o código HTML no elemento noscript.