A Política de Segurança de Conteúdo (CSP) é um padrão de segurança da Web com ampla compatibilidade. Ela dá aos desenvolvedores controle sobre os recursos carregados pelos aplicativos para evitar alguns tipos de ataques por injeção. Confira neste guia como implantar o Gerenciador de tags do Google nos sites que usam uma CSP.
Ativar a tag de contêiner para usar a CSP
Para usar o Gerenciador de tags do Google em uma página com uma CSP, essa política precisa permitir a execução do código do contêiner do Gerenciador. Esse código é criado como um código JavaScript inline que injeta o script gtm.js
. Há várias maneiras de fazer isso, como a utilização de um valor de uso único ou um hash. Recomendamos um valor de uso único, que precisa ser um valor aleatório e não detectável que o servidor gera individualmente para cada resposta. Informe esse valor na diretiva script-src
da Política de Segurança de Conteúdo:
Content-Security-Policy: script-src 'nonce-{SERVER-GENERATED-NONCE}'; img-src www.googletagmanager.com
Em seguida, use a versão do código do contêiner in-line do Gerenciador de tags que reconhece o valor. Defina o atributo do valor de uso único no elemento de script in-line como esse mesmo valor:
<!-- Google Tag Manager -->
<script nonce='{SERVER-GENERATED-NONCE}'>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;var n=d.querySelector('[nonce]');
n&&j.setAttribute('nonce',n.nonce||n.getAttribute('nonce'));f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->
Assim, o Gerenciador de tags replicará o valor para qualquer script que ele adicionar à página.
Existem outras abordagens para permitir a execução de um script in-line, como fornecer o hash do script in-line na CSP.
Se as abordagens recomendadas acima não forem viáveis, você poderá adicionar a diretiva 'unsafe-inline'
à seção script-src
da CSP para ativar o script in-line do Gerenciador de tags.
As seguintes diretivas são necessárias na CSP para usar essa abordagem:
script-src: 'unsafe-inline' https://www.googletagmanager.com
img-src: www.googletagmanager.com
Variáveis JavaScript personalizadas
Devido à forma como as variáveis JavaScript personalizadas são implementadas, elas serão avaliadas como undefined
se houver uma CSP, a menos que a diretiva 'unsafe-eval'
seja informada na seção script-src
da política.
script-src: 'unsafe-eval'
Modo de visualização
Para usar o modo de visualização do Gerenciador de tags do Google, a CSP precisa incluir estas diretivas:
script-src: https://googletagmanager.com https://tagmanager.google.com
style-src: https://googletagmanager.com https://tagmanager.google.com https://fonts.googleapis.com
img-src: https://googletagmanager.com https://ssl.gstatic.com https://www.gstatic.com
font-src: https://fonts.gstatic.com data:
Google Analytics 4 (Google Analytics)
Para usar a tag do Google Analytics 4 (Google Analytics), a CSP precisa incluir as seguintes diretivas:
script-src: https://*.googletagmanager.com
img-src: https://*.google-analytics.com https://*.googletagmanager.com
connect-src: https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com
No caso de implantações do GA4 (Google Analytics) que usam os Indicadores do Google, a CSP precisa incluir as seguintes diretivas:
script-src: https://*.googletagmanager.com
img-src: https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com
https://*.g.doubleclick.net https://*.google.com https://*.google.<TLD>
connect-src: https://*.google-analytics.com https://*.analytics.google.com
https://*.googletagmanager.com https://*.g.doubleclick.net https://*.google.com https://*.google.<TLD>
Universal Analytics (Google Analytics)
Para usar a tag do Universal Analytics (Google Analytics), a CSP precisa incluir estas diretivas:
script-src: https://www.google-analytics.com https://ssl.google-analytics.com
img-src: https://www.google-analytics.com
connect-src: https://www.google-analytics.com
Conversões do Google Ads
Para usar uma tag de conversão do Google Ads, a CSP precisa incluir estas diretivas:
No caso de conexões seguras:
script-src: https://www.googleadservices.com https://www.google.com
img-src: https://googleads.g.doubleclick.net https://www.google.com https://google.com
No caso de conexões não seguras:
script-src: www.googleadservices.com www.google.com
img-src: googleads.g.doubleclick.net www.google.com google.com
Remarketing do Google Ads
Para usar uma tag de remarketing do Google Ads, a CSP precisa incluir estas diretivas:
No caso de conexões seguras:
script-src: https://www.googleadservices.com https://googleads.g.doubleclick.net https://www.google.com
img-src: https://www.google.com https://google.com
frame-src: https://bid.g.doubleclick.net
No caso de conexões não seguras:
script-src: www.googleadservices.com googleads.g.doubleclick.net www.google.com
img-src: www.google.com google.com
frame-src: bid.g.doubleclick.net
Floodlight
Os usuários do Floodlight podem ativar as CSPs com as configurações abaixo. Substitua valores <FLOODLIGHT-CONFIG-ID>
por um ID do anunciante do Floodlight específico ou por *
para permitir qualquer ID do anunciante:
Para todos os usuários:
img-src: https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net
Para beacons de "scripts personalizados" no Gerenciador de tags:
frame-src: https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net
Para tags de imagem:
img-src: https://ad.doubleclick.net
Para modo de consentimento:
img-src: https://ade.googlesyndication.com