Veja neste documento como implementar o Gerenciador de tags do Google no seu site.
Como usar uma camada de dados
Para garantir a maior flexibilidade, portabilidade e facilidade de implementação, o Gerenciador de tags do Google funciona melhor quando implementado com uma camada de dados.
Uma camada de dados é um objeto que contém todas as informações que você quer transmitir ao Gerenciador. Informações, como eventos ou variáveis, podem ser enviadas ao Gerenciador de tags do Google por meio da camada de dados, e os acionadores podem ser configurados no Gerenciador com base nos valores das variáveis (por exemplo, disparar uma tag de remarketing quando purchase_total > US$ 100) ou em eventos específicos. Os valores das variáveis também podem ser transmitidos a outras tags, por exemplo, enviando o purchase_total para o campo de valor de uma tag.
Em vez de fazer referência a variáveis, informações de transação, categorias de página e outros sinais importantes espalhados por toda a página, o Gerenciador de tags do Google foi projetado para referenciar facilmente as informações inseridas nessa camada de dados. No entanto, é opcional declarar a camada de modo explícito e, se você não quiser implementá-la, ainda poderá acessar os valores da página usando o recurso Variáveis. Porém, não é possível usar eventos sem a camada de dados. Implementar a camada com as variáveis e os valores associados, em vez de aguardar o carregamento dessas variáveis na página, garante que eles estarão disponíveis para disparar as tags.
Como adicionar variáveis da camada de dados a uma página
Para configurar a camada de dados, adicione o seguinte snippet de código ao cabeçalho da sua página, acima do snippet de contêiner:
<script> dataLayer = []; </script>
O snippet mostrado acima é um objeto vazio que pode ser preenchido com as informações a serem transmitidas para o Gerenciador de tags do Google. Por exemplo, é possível definir variáveis na camada de dados que indicam se a página é de inscrição e se o visitante foi identificado como um cliente de alto valor. Para isso, preencheríamos a camada de dados da seguinte maneira:
<script>
dataLayer = [{
'pageCategory': 'signup',
'visitorType': 'high-value'
}];
</script>
Por exemplo, o Gerenciador de tags do Google pode ser configurado para disparar tags em todas as páginas identificadas como de signup e/ou em que o visitante tenha sido especificado como de high-value. É importante que esse snippet da camada de dados seja definido acima do snippet de contêiner, conforme descrito no Guia de início rápido.
Se o código da camada de dados for chamado após o snippet de contêiner, as variáveis declaradas não estarão disponíveis para que o Gerenciador dispare as tags de forma seletiva durante o carregamento de página. Veja alguns exemplos:
Incorreto
<!-- Google Tag Manager -->
...
<!-- End Google Tag Manager -->
<script>
dataLayer = [{
'pageCategory': 'signup',
'visitorType': 'high-value'
}];
</script>
Correto
<script>
dataLayer = [{
'pageCategory': 'signup',
'visitorType': 'high-value'
}];
</script>
<!-- Google Tag Manager -->
...
<!-- End Google Tag Manager -->
As variáveis declaradas no objeto da camada de dados persistirão enquanto o visitante permanecer na página atual.
Portanto, as variáveis da camada de dados que são relevantes para as páginas (por exemplo, visitorType) precisam ser declaradas na camada de cada página do seu site. Embora não seja necessário inserir o mesmo conjunto de variáveis na camada de dados em todas as páginas, você precisa usar uma convenção de nomenclatura consistente. Em outras palavras, se você definir a categoria na página de inscrição usando pageCategory, também precisará utilizar a pageCategory para defini-la em uma página de compra.
É opcional declarar uma camada de dados de modo explícito. Portanto, se você não quiser implementar o código da camada de dados e preenchê-la com as variáveis, o snippet de contêiner do Gerenciador de tags do Google iniciará um objeto de camada de dados.
Como usar a camada de dados com manipuladores de eventos HTML
O Gerenciador de tags do Google oferece uma variável de camada de dados especial chamada event que é usada nos listeners de eventos JavaScript para iniciar o disparo de tags quando um usuário interage com elementos do site, como um botão. Por exemplo, convém disparar uma tag de acompanhamento de conversões quando um usuário clica no botão Submit em um formulário de inscrição de newsletter. Os eventos são chamados com base na interação do usuário com elementos do site, como links, botões e componentes de um sistema de menu em Flash, ou com base em outro JavaScript (por exemplo, atrasos etc.).
Esse recurso pode ser usado chamando a API push como um método da camada de dados na sua página (por exemplo, anexado aos elementos específicos a serem acompanhados). Veja a seguir a sintaxe básica para definição de um evento:
dataLayer.push({'event': 'event_name'});
em que event_name é uma string que indica qual é o evento ou o elemento fornecido.
Por exemplo, para definir um evento de clique em um botão, modifique o link do botão para chamar a API push() da seguinte forma:
<a href="#" name="button1" onclick="dataLayer.push({'event': 'button1-click'});" >Button 1</a>
Às vezes, os dados que você quer coletar ou usar para acionar determinadas tags não são carregados até que o usuário interaja com a página. Usando uma combinação de variáveis e eventos da camada de dados, é possível enviar essas informações de forma dinâmica para a camada, conforme necessário.
As variáveis podem ser enviadas de forma dinâmica para a camada de dados com o objetivo de coletar informações, como os valores inseridos ou selecionados em um formulário, os metadados associados a um vídeo reproduzido pelo visitante, a cor de um produto (por exemplo, um carro) personalizada pelo usuário, os URLs de destino dos links clicados etc.
Assim como nos eventos, esse recurso é acessado chamando a API push() para adicionar ou substituir as variáveis na camada de dados. Veja a seguir a sintaxe básica para a definição de variáveis dinâmicas na camada de dados:
dataLayer.push({'variable_name': 'variable_value'});
Em que a string variable_name indica o nome da variável da camada de dados a ser definida e variable_value indica o valor da variável a ser definida ou substituída.
Por exemplo, para adicionar uma preferência de cor a uma variável da camada de dados quando o visitante interage com um widget de personalização de carros, envie a seguinte variável dinâmica:
dataLayer.push({'color': 'red'});
Envio de diversas variáveis
Em vez de usar dataLayer.push() para cada variável e evento, você pode enviar vários eventos e variáveis de uma vez só.
Veja como fazer isso a seguir:
dataLayer.push({
'color': 'red',
'conversionValue': 50,
'event': 'customizeCar'
});
Você pode usar a mesma técnica em um manipulador de eventos de link:
<a href="#"
name="color"
onclick="dataLayer.push({
'color': 'red',
'conversionValue': 50,
'event': 'customizeCar'});">Customize Color</a>
Enviar à camada de dados uma variável com o mesmo nome de outra existente fará com que o valor atual seja substituído por um novo valor. Por exemplo, se você clicasse no link acima e houvesse uma variável chamada color com um valor blue declarado na camada de dados, esse valor seria sobrescrito por red.
Como funciona a sintaxe assíncrona
O Gerenciador de tags do Google é uma tag assíncrona, ou seja, quando executado, ele não bloqueia a renderização de outros elementos na página. Ele também faz com que as outras tags implantadas pelo Gerenciador sejam implementadas de forma assíncrona. Dessa forma, uma tag de carregamento lento não bloqueará outras tags de acompanhamento.
O objeto da dataLayer possibilita a sintaxe assíncrona.
Ele age como uma fila, ou seja, uma estrutura de dados "primeiro a chegar, primeiro a sair" que coleta chamadas de API para que as tags sejam disparadas de acordo com essas chamadas.
Para adicionar um elemento à fila, use o método dataLayer.push. O método dataLayer.push pode ser usado para transmitir metadados extras ao Gerenciador de tags do Google por meio de variáveis e para especificar eventos.
A criação do objeto da dataLayer pode ser especificada antes do snippet do Gerenciador de tags do Google ou, então, ele será criado pelo Gerenciador se esse objeto ainda não tiver sido definido.
Para mais informações sobre a sintaxe assíncrona, leia a referência de acompanhamento para o método dataLayer.push.
Como evitar as armadilhas comuns
Ao implementar o Gerenciador de tags do Google, lembre-se do seguinte:
Não sobrescreva sua dataLayer
Quando você usa a atribuição para adicionar valores ao dataLayer, por exemplo, dataLayer = [{'item':
'value'}], ela sobrescreve os valores existentes. É recomendável declarar sua dataLayer na posição mais alta possível do código-fonte, acima do snippet de contêiner ou do snippet de ocultação de página do Optimize. Depois que você informar a dataLayer, poderá usar dataLayer.push({'item': 'value'}) para adicionar outros valores a ela nos seus scripts.
O nome do objeto da dataLayer diferencia maiúsculas e minúsculas
Se você tentar transmitir uma variável ou um evento com a capitalização incorreta, o processo não funcionará. Por exemplo:
datalayer.push({'pageTitle': 'Home'}); // Won't work
dataLayer.push({'pageTitle': 'Home'}); // Better
Os nomes das variáveis precisam ser colocados entre aspas
Embora as aspas não sejam obrigatórias para os nomes de variáveis que contêm apenas letras, números e sublinhados e que não são palavras reservadas (por exemplo, função, exportação, nativo etc.), é recomendável que todos eles sejam incluídos entre aspas para evitar problemas. Por exemplo:
dataLayer.push({new-variable: 'value'}); // Won't work
dataLayer.push({'new-variable': 'value'}); // Better
Os nomes das variáveis precisam ser consistentes entre as páginas
Se você usar nomes diferentes para as mesmas variáveis em páginas distintas, o GTM não poderá disparar tags de maneira consistente em todos os locais esperados. Por exemplo:
Não funcionará
// Homepage:
dataLayer.push({'visitorType': 'low-value'});
// Checkout Page:
dataLayer.push({'visitor_type': 'high-value'});
Funcionará
// Homepage:
dataLayer.push({'visitorType': 'low-value'});
// Checkout Page:
dataLayer.push({'visitorType': 'high-value'});
Qualquer informação necessária para disparar tags em um carregamento de página precisa ser declarada na camada de dados acima do snippet de contêiner
Para disparar tags em um carregamento de página correspondente a uma condição (por exemplo, em páginas com pageCategory sports), a pageCategory precisa ser definida na camada de dados acima do snippet de contêiner (por exemplo, 'pageCategory': 'sports'). As variáveis transmitidas para a camada de dados (isto é, usando dataLayer.push()) depois do snippet de contêiner não dispararão tags em carregamentos de página com uma condição correspondente.
As tags implantadas com o Gerenciador de tags do Google não podem ser codificadas nem implantadas por outra ferramenta
Todas as tags disparadas pelo Gerenciador precisam ser migradas, não apenas duplicadas. Para mais informações, consulte Como migrar tags para o Gerenciador de tags do Google. Implantar tags usando o Gerenciador de tags do Google e outros sistemas ou por meio de codificação no seu site pode resultar na inflação de dados e em outros problemas de integridade. Por exemplo, se você migrar seu código de acompanhamento do Google Analytics para fazer disparos a partir do Gerenciador de tags do Google, o código do Google Analytics codificado precisará ser removido do site.
Como renomear a camada de dados
Por padrão, a camada de dados iniciada e referenciada pelo Gerenciador de tags do Google será chamada de dataLayer. Se você quiser usar um nome diferente, substitua o valor de parâmetro da camada (destacado abaixo) no snippet de contêiner pelo nome de sua escolha.
<!-- Google Tag Manager -->
<script>(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;f.parentNode.insertBefore(j,f);
})(window,document,'script','myNewName','GTM-XXXX');</script>
<!-- End Google Tag Manager -->
Depois, todas as referências à sua camada de dados (ou seja, ao declará-la acima do snippet e enviar eventos ou variáveis dinâmicas a ela com a API push()) também precisam ser ajustadas para refletir o nome personalizado:
<script> myNewName = [{ // ... }]; myNewName.push({'variable_name': 'variable_value'}); </script>
Como migrar tags para o Gerenciador de tags do Google
Para aproveitar ao máximo o Gerenciador de tags do Google, recomendamos que você migre a maioria das tags existentes para o Gerenciador (as tags incompatíveis não podem ser migradas). Nesta seção, descrevemos as práticas recomendadas do fluxo de trabalho de migração. O processo tem cinco etapas principais:
-
Mapear seu site (opcional)
Para começar sua migração, pense em quais tags estão implantadas no seu site e quais dados você quer coletar. No caso da coleta de dados, reflita sobre quais ações você quer acompanhar (eventos) e quais outros dados da página precisará coletar (variáveis). Crie um mapa com as tags, os dados a serem coletados e quais eventos ou páginas você quer associar a elas.
-
Implementar o snippet padrão do Gerenciador de tags do Google
Depois de mapear seu site, você precisará apenas instalar o snippet exclusivo do Gerenciador de tags do Google no seu site (vazio) e implantá-lo. Veja o Guia de início rápido para mais informações.
-
Adicionar eventos e variáveis
Personalize sua instalação do Gerenciador de tags do Google usando os métodos descritos na seção Adicionar eventos e variáveis.
-
Adicionar tags com os acionadores associados na interface de gerenciamento do Gerenciador de tags do Google
Depois de concluir a configuração do site com as APIs de coleta de snippets e dados do Gerenciador de tags do Google, adicione as tags do site à interface do usuário. NÃO as publique ainda. Basta adicionar e configurar as tags do seu site na interface de gerenciamento do Gerenciador de tags do Google usando os modelos apropriados e configurar os acionadores da forma adequada. Veja mais informações sobre como fazer isso no artigo da Central de Ajuda sobre acionadores.
-
Realizar a troca final da migração
A última etapa inclui trocar as tags antigas e publicar as novas no Gerenciador de tags do Google. Você precisará realizar os procedimentos a seguir quase de maneira simultânea:
- Remova as tags do seu site em um único push de código.
- Após o push ser concluído, pressione o botão "Publicar" na sua versão do contêiner.
Esse método pode gerar uma pequena lacuna nos dados, que desaparecerá quando a troca inicial ocorrer. Como alternativa, é possível alterar a ordem do processo e publicar as tags pouco antes de as alterações do site serem aplicadas. Isso pode causar uma única duplicação de dados, em vez de uma pequena lacuna.
Depois que você concluir a migração inicial para o Gerenciador de tags do Google, será possível realizar aplicações posteriores de tags na interface do Gerenciador, sem precisar alterar o código do site.
Vários domínios
Embora você possa usar o mesmo contêiner para vários sites, é recomendável que cada propriedade da Web gerenciada seja implantada no próprio contêiner dela. Isso impedirá que as alterações específicas de um site tenham efeitos indesejados em outros sites que usam o mesmo contêiner. No entanto, em casos em que vários domínios ou subdomínios de nível mais alto são considerados membros do mesmo site, talvez seja útil gerenciar as tags deles por meio do mesmo contêiner do Gerenciador de tags do Google.
Se quiser usar um único contêiner em vários domínios, configure com cuidado suas tags e seus acionadores no Gerenciador de tags do Google. Usar o acionador padrão "Todas as páginas" no Gerenciador (ou seja, $url matches RegEx .*) disparará as tags em todas as páginas de todos os domínios em que o snippet de contêiner foi implantado. Como algumas tags têm configurações ou finalidades específicas ao domínio em que foram implantadas, talvez seja necessário criar acionadores personalizados (ou até mesmo remover o acionador "Todas as páginas") para dispará-las em todas as páginas individualmente em cada domínio.
Por exemplo, você pode implantar seu código de acompanhamento do Google Analytics em vários domínios ou subdomínios por meio do GTM usando configurações compatíveis com o acompanhamento do GA.
Nesse caso, você adicionaria uma linha ao seu código de acompanhamento do GA para definir de forma manual o domínio primário em que os cookies do GA serão incluídos. Por exemplo, no caso de www.example-petstore.com e dogs.example-petstore.com, você pode definir os cookies no domínio comum, .example-petstore.com. No entanto, no site secundário www.my-example-blogsite.com, os cookies poderão ser incluídos em .my-example-blogsite.com. Assim, é recomendável que uma das tags do código de acompanhamento do GA (uma definida como .example-petstore.com e a outra como .my-example-blogsite.com) seja disparada nos dois domínios. Se os dois domínios compartilhassem um contêiner comum do GTM, usar o acionador padrão "Todas as páginas" no Gerenciador de tags do Google faria com que cada tag fosse disparada em todas as páginas de ambos os domínios.
Vários contêineres em uma página
Para melhorar o desempenho de uma página, reduza o número de contêineres do Gerenciador de tags do Google na página.
Se você usar mais de um contêiner em uma página, implemente os snippets de contêiner com um objeto de camada de dados comum. Por exemplo, você pode implementar dois snippets de contêiner da seguinte maneira:
- Copie o seguinte JavaScript e cole-o na página o mais próximo possível da tag
<head>de abertura:<!-- Google Tag Manager --> <script>(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;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-XXXX');</script> <script>(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;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-YYYY');</script> <!-- End Google Tag Manager --> - Copie o snippet a seguir e cole-o na página imediatamente após a tag
<body>de abertura:<!-- Google Tag Manager (noscript) --> <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXX" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-YYYY" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) -->
Só é possível usar uma única camada de dados comum para todos os contêineres do Gerenciador de tags do Google em uma página, já que utilizar mais de uma impede o funcionamento de alguns acionadores e pode ter outras implicações. Portanto, não renomeie a camada de dados de um subconjunto de contêineres na página. Se necessário, faça isso para todos os contêineres.
Evite implementar um contêiner do Gerenciador de tags do Google em outro contêiner usando uma tag HTML personalizada, porque isso adicionaria latência às tags do contêiner secundário e poderia ter outras implicações.
Flash / ActionScript
Para que o Gerenciador de tags do Google dispare tags com base no conteúdo ou nas interações de um filme em Flash, é possível utilizar o método ExternalInterface do ActionScript para enviar eventos e variáveis dinâmicas da camada de dados à camada da página do contêiner a partir do filme em SWF. Se você quiser usar esse recurso, o snippet de contêiner do Gerenciador de tags do Google precisará ser implementado no HTML da página principal do SWF, conforme descrito no Guia de início rápido.
As variáveis dinâmicas da camada de dados e os eventos podem ser enviados a partir do componente Flash para o Gerenciador de tags do Google ao chamar o método push usando a ExternalInterface. Por exemplo, para acionar um evento após o clique em um botão mybutton_btn com o ActionScript 3, você poderia implementar o seguinte código no seu SWF:
import flash.display.*;
import flash.events.*;
import flash.external.*;
mybutton_btn.addEventListener(MouseEvent.MOUSE_UP, onButtonClick);
function onButtonClick( Event:MouseEvent ):void {
var name:String= "FLASH_EVENT";
if (ExternalInterface.available) {
ExternalInterface.call('dataLayer.push',{'event': name});
}
}
Para que o método ExternalInterface funcione corretamente, o atributo allowscriptaccess precisará estar definido como always quando você incorporar o SWF:
<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'
width='300' height='300' id='player1' name='player1'>
<param name='movie' value='file.swf'>
<param name='allowfullscreen' value='true'>
<param name='allowscriptaccess' value='always'>
<param name='flashvars' value='file=playlist.xml'>
<embed id='player1' name='player1'
src='file.swf'
width='300' height='300'
allowscriptaccess='always'
allowfullscreen='true'
flashvars="file=playlist.xml"/>
</object>
Como adicionar variáveis da camada de dados para dispositivos não compatíveis com JavaScript
Para atender aos visitantes cujo JavaScript está desativado ou que acessam em dispositivos incompatíveis com ele, o Gerenciador de tags do Google inclui um snippet <noscript> para implantar tags dependentes de outra linguagem que não JavaScript, mesmo quando o JavaScript principal do GTM não pode ser carregado.
No entanto, a camada de dados (que contém as variáveis declaradas no carregamento de página) e quaisquer variáveis dinâmicas e eventos enviados a ela dependem de JavaScript para funcionar. Portanto, se um dos acionadores que disparam tags dependentes de outra linguagem que não JavaScript (ou seja, aquelas que precisam ser disparadas mesmo quando o JavaScript não é carregado) depender das variáveis de camada de dados, transmita essas variáveis para o iframe <noscript> como parâmetros de consulta. Por exemplo, para disparar uma tag quando a pageCategory for sports e o visitorType for returning, modifique o snippet de contêiner na página especificada da seguinte forma:
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXX&pageCategory=sports&visitorType=returning" height="0"
width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
Em que cada variável da camada de dados é anexada ao final do URL de origem do iframe como parâmetros de consulta de texto simples e separada por "e" comercial.
Segurança
O Gerenciador de tags do Google incorpora uma série de recursos para garantir a segurança dos seus sites e aplicativos. Além dos seguintes recursos de segurança no nível do código, conheça os controles de acesso, a verificação em duas etapas e a detecção de malware do Gerenciador de tags.
Como restringir a implantação de tags
Embora não seja recomendado restringir os tipos de tags implantadas com o Gerenciador de tags do Google por vários motivos, talvez seja necessário fazer isso para as tags implantadas em um site. Por exemplo, para os fins de estabilidade do código ou coleta de dados, talvez alguns proprietários de sites não queiram que os usuários do Gerenciador de tags do Google adicionem determinadas tags às páginas. Assim, adicionamos um recurso de lista negra ao Gerenciador de tags do Google que pode ser controlado durante a instalação de snippets.
Para controlar quais tags, variáveis e acionadores são permitidos em uma página, use as chaves gtm.whitelist e/ou gtm.blacklist na sua camada de dados, que modificarão todas as configurações no contêiner. Quando colocados na lista negra da forma correta, os acionadores, as tags e as variáveis não serão acionados, mesmo que a configuração na IU do Gerenciador de tags do Google solicite o disparo deles.
Veja no exemplo a seguir como inicializar uma camada de dados que tenha uma lista de permissões e uma lista negra. Ambas as listas são opcionais, e você pode usá-las separadamente ou ao mesmo tempo, conforme mostrado. As duas precisam ser do tipo Array, e os valores delas, do tipo String:
dataLayer = [{
...
'gtm.whitelist': ['<ID>', '<ID>', ...]
'gtm.blacklist': ['<ID>', '<ID>', '<ID>', ...]
}];
Cada ID na lista corresponde a um tipo específico de tag, acionador ou variável ou a uma classe de tipos. As classes representam grupos de tags, acionadores e variáveis que têm os mesmos recursos. Por exemplo, todas as tags que podem enviar pixels para domínios fora do Google terão a classe nonGooglePixels. As classes são úteis para bloquear recursos em tags, acionadores e variáveis atuais e futuros.
É importante entender as regras que regem as listas de permissões e as listas negras:
-
Listas de permissões
Quando uma lista de permissões estiver definida, as tags, as variáveis e os acionadores só serão executados se estiverem na lista de permissões, seja de forma explícita (por código de tipo) ou implícita (com todas as classes deles inclusas na lista). -
Listas negras
Quando uma lista negra estiver definida, as tags, as variáveis e os acionadores só serão executados se não estiverem na lista negra, seja de forma explícita (por código de tipo) ou implícita (com quaisquer classes deles inclusas na lista). -
Listas negras modificam listas de permissões
Quando ambas estiverem definidas, as listas negras têm precedência. Você pode colocar uma classe de tags na lista de permissões e colocar uma tag dessa classe na lista negra. No entanto, não é possível colocar uma classe de tags na lista negra e colocar uma tag específica dessa classe na lista de permissões. -
Classes têm relacionamentos
Algumas classes têm relacionamentos com outras classes. Por exemplo, as tags que executam scripts que não são do Google podem, por definição, enviar pixels que não são do Google. Assim, bloquear osnonGooglePixelstambém bloqueia osnonGoogleScriptsde forma automática. Todos os acionadores, as tags e as variáveis que pertencem a um dos grupos serão bloqueados.
Veja na tabela a seguir uma lista das tags, das variáveis e dos acionadores disponíveis, e os tipos e as classes aos quais pertencem:
| Tag | ID |
Classes |
|---|---|---|
| Tag genérica da AB TASTY | abtGeneric |
nonGoogleScripts |
| Tag da AdAdvisor | ta |
nonGoogleScripts |
| Tag da Adometry | adm |
google |
| Tag de pixel inteligente da AdRoll | asp |
nonGoogleScripts |
| Tag de acompanhamento de conversões do Google Ads | awct |
google |
| Tag de remarketing do Google Ads | sp |
google |
| Tag de conversão da Affiliate Window | awc |
nonGoogleScripts |
| Tag de caminho da Affiliate Window | awj |
nonGoogleScripts |
| Acompanhamento universal de eventos do Bing Ads | baut |
nonGoogleScripts |
| Bizrate Insights Buyer Survey Solution | bb |
nonGoogleScripts |
| Bizrate Insights Site Abandonment Survey Solution | bsa |
nonGoogleScripts |
| Tag de acompanhamento padrão da ClickTale | cts |
nonGoogleScripts |
| Tag comScore Unified Digital Measurement | csm |
nonGoogleScripts |
| Conversant Mediaplex – tag MCT de IFRAME | mpm |
nonGoogleIframes |
| Conversant Mediaplex – tag padrão ROI de IMG | mpr |
nonGooglePixels |
| Tag Crazy Egg | cegg |
nonGoogleScripts |
| Criteo OneTag | crto |
nonGoogleScripts |
| Tag HTML personalizada | html |
customScripts |
| Tag de imagem personalizada | img |
customPixels |
| Tag da DistroScale | dstag |
nonGoogleScripts |
| Tag de contador do Floodlight | flc |
|
| Tag de vendas do Floodlight | fls |
|
| Tag de pixel da Dstillery Universal | m6d |
nonGooglePixels |
| Tag da Eulerian Analytics | ela |
customScripts |
| Tag do Google Analytics | ga |
google |
| Satisfação com o site do Pesquisa de opinião Google | gcs |
google |
| Google Optimize | opt |
google |
| Tag do Google Trusted Stores | ts |
|
| Código de acompanhamento da Hotjar | hjtc |
nonGoogleScripts |
| Infinity Call Tracking Tag | infinity |
nonGoogleScripts |
| Intent Media - Search Compare Ads | sca |
nonGoogleScripts |
| K50 tracking tag | k50Init |
nonGoogleScripts |
| LeadLab | ll |
nonGoogleScripts |
| Tag do LinkedIn | bzi |
nonGoogleScripts |
| Tag JavaScript da Lytics | ljs |
nonGoogleScripts |
| Tag da Marin Software | ms |
nonGoogleScripts |
| Mediaplex – tag MCT de IFRAME | mpm |
nonGoogleIframes |
| Mediaplex – tag padrão ROI de IMG | mpr |
nonGooglePixels |
| Message Mate | messagemate |
nonGoogleScripts |
| Tag da Mouseflow | mf |
nonGoogleScripts |
| Pixel da Neustar | ta |
nonGoogleScripts |
| Tag estática Lite de DCR da Nielsen | ndcr |
nonGoogleScripts |
| Tag de análise de conteúdo da Nudge | nudge |
nonGoogleScripts |
| Código de acompanhamento da Oktopost | okt |
nonGoogleScripts |
| Tag de conversão do Optimise | omc |
nonGoogleScripts |
| Message Mate da OwnerListens | messagemate |
nonGoogleScripts |
| Pixel da Perfect Audience | pa |
nonGoogleScripts |
| Personali Canvas | pc |
nonGoogleScripts |
| Placed | placedPixel |
nonGoogleScripts |
| Pulse Insights Voice of Customer Platform | pijs |
nonGoogleScripts |
| Avaliação de público-alvo da Quantcast | qcm |
nonGoogleScripts |
| FoxMetrics da Rawsoft | fxm |
nonGoogleScripts |
| Tag JavaScript da SaleCycle | scjs |
customScripts |
| Tag de pixel da SaleCycle | scp |
customPixels |
| Acompanhamento JavaScript do SearchForce para a página de conversão | sfc |
nonGoogleScripts |
| Acompanhamento JavaScript do SearchForce para a página de destino | sfl |
nonGoogleScripts |
| Tag de acompanhamento de redirecionamento do SearchForce | sfr |
nonGooglePixels |
| Shareaholic | shareaholic |
nonGoogleScripts |
| Widget da Survicate | svw |
nonGoogleScripts |
| Tag de conversão de lead da Tradedoubler | tdlc |
nonGooglePixels |
| Tag de conversão de venda da Tradedoubler | tdsc |
nonGooglePixels |
| Tag de acompanhamento de conversões da Turn | tc |
nonGoogleScripts |
| Tag de coleta de dados da Turn | tdc |
nonGoogleScripts |
| Tag de site universal do Twitter | twitter_website_tag |
nonGoogleScripts |
| Tag do Universal Analytics | ua |
google |
| Tag global de rodapé da Upsellit | uslt |
customScripts |
| Tag de confirmação do Upsellit | uspt |
customScripts |
| Tag de JavaScript interativo da Ve | vei |
nonGoogleScripts |
| Pixel interativo da Ve | veip |
nonGooglePixels |
| Tag de conversão da VisualDNA | vdc |
nonGoogleScripts |
| Xtremepush | xpsh |
nonGoogleScripts |
| Yieldify | yieldify |
nonGoogleScripts |
| Acionador | ID |
Classes |
|---|---|---|
| Acionador/listener de visibilidade do elemento | evl |
google |
| Acionador/listener de cliques | cl |
google |
| Acionador/listener de envios de formulário | fsl |
|
| Acionador/listener de histórias | hl |
google |
| Acionador/listener de erros de JavaScript | jel |
google |
| Acionador/listener de cliques em links | lcl |
|
| Acionador/listener de profundidade de rolagem | sdl |
google |
| Acionador/listener de timer | tl |
google |
| Acionador/listener de vídeos do YouTube | ytl |
google |
| Variável | ID |
Classes |
|---|---|---|
| Cookie primário | k |
google |
| Variável de evento automático | v |
google |
| Constante | c |
google |
| Número da versão do contêiner | ctv |
google |
| Evento personalizado | e |
google |
| Variável personalizada de JavaScript | jsm |
customScripts |
| Variável de camada de dados | v |
google |
| Modo de depuração | dbg |
google |
| Elemento DOM | d |
google |
| Visibilidade do elemento | vis |
google |
| Referenciador de HTTP | f |
google |
| Variável JavaScript | j |
google |
| Tabela de consulta | smm |
google |
| Número aleatório | r |
google |
| Tabela RegEx | remm |
google |
| URL | u |
google |
Veja na tabela a seguir uma lista das classes disponíveis e os relacionamentos delas com outras classes. A coluna Colocada na lista de permissões automaticamente mostra as classes que serão colocadas na lista de permissões de forma implícita quando a classe dessa linha estiver na lista de permissões. Da mesma forma, a coluna Colocada na lista negra automaticamente mostra as classes que serão colocadas na lista negra de forma implícita quando a classe dessa linha estiver na lista negra.
| Classe | Descrição | Colocada na lista de permissões automaticamente | Colocada na lista negra automaticamente |
|---|---|---|---|
customPixels |
Envia os pixels para os URLs definidos pelo usuário. |
nonGooglePixels
|
customScriptshtml
|
customScripts |
Executa o código JavaScript fornecido pelo usuário. |
htmlcustomPixelsnonGooglePixelsnonGoogleScriptsnonGoogleIframes
|
html
|
google |
Executa somente os scripts hospedados pelo Google e envia os pixels a ele. | ||
html |
Alias para customScripts. Observe que ele também é o ID da tag HTML personalizada. Isso garante que os usuários herdados também recebam os benefícios da classe customScripts. |
customScriptscustomPixelsnonGooglePixelsnonGoogleScriptsnonGoogleIframes
|
customScripts
|
nonGooglePixels |
Envia pixels para domínios que não são do Google. |
customPixelscustomScriptshtmlnonGoogleScriptsnonGoogleIframes
|
|
nonGoogleScripts |
Executa scripts não fornecidos pelo Google. |
nonGooglePixels |
customScriptshtml
|
nonGoogleIframes |
Inclui iframes de domínios que não são do Google. |
nonGooglePixels |
customScriptshtmlnonGoogleScripts
|
Como usar um URL relativo a protocolo
Por padrão, o snippet de contêiner do Gerenciador de tags do Google sempre usa https para carregar os contêineres (por exemplo, https://www.googletagmanager.com). Isso ajuda a proteger seu contêiner contra usuários mal-intencionados e espionagem e, em muitos casos, também melhora o desempenho.
Se você preferir carregar seus contêineres do Gerenciador de tags do Google de maneira relativa a protocolo, defina o protocolo de URL de origem (destacado abaixo) no snippet de contêiner como //, em vez de https://.
<!-- Google Tag Manager -->
<script>(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=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXX');</script>
<!-- End Google Tag Manager -->
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
Ao usar um URL relativo a protocolo, o contêiner seria carregado usando http nas páginas com URL http:// e usando https nas páginas com URL https://.
As versões mais antigas do snippet de contêiner do Gerenciador de tags do Google sempre usavam um URL relativo a protocolo para carregar contêineres (ou seja, //www.googletagmanager.com).
Essas versões continuarão funcionando sem precisar de atualização.
Embora a maioria dos modelos de tags no Gerenciador de tags do Google sejam relativos a protocolo, ao definir as tags personalizadas para serem disparadas em páginas seguras, lembre-se de que elas também serão seguras ou relativas a protocolo.