Como instalar banner de cookies LGPD na Nuvemshop
Numa loja Nuvemshop, quase nenhum rastreador foi escrito por você. O Google Analytics entrou por um campo do painel. O Pixel da Meta, pelo campo ao lado. O script de recuperação de carrinho veio junto com um app. E o pixel do TikTok está colado no tema desde a última campanha, feita por uma agência que já não trabalha com você.
Instalar o banner é a parte de cinco minutos. O que decide o resultado é saber o que cada uma dessas portas de entrada permite bloquear, incluindo o checkout, que a plataforma hospeda e renderiza por conta própria.
Antes de instalar: faça o inventário da loja
Pular esta etapa é a causa nº 1 de "instalei o banner e o _ga continua sendo criado".
Você não bloqueia o que não sabe que existe, e na Nuvemshop boa parte do que existe não
está no código do tema.
| Porta de entrada | Onde ela costuma estar |
|---|---|
| Campo nativo do painel | ID do Google Analytics e do Pixel da Meta, na área de integrações de marketing |
| Apps da loja de aplicativos | Recuperação de carrinho, avaliações, chat, upsell, remarketing |
| Código colado no tema | Pixel do TikTok, tag do Google Ads, Hotjar ou Clarity no arquivo de layout |
| Área de códigos externos | Snippets que uma agência cadastrou e ninguém mais revisou |
| Embeds no conteúdo | YouTube em página institucional, Google Maps na página de contato |
Rode o scanner gratuito na home, numa categoria e numa página de produto: são as três páginas em que o campo nativo, os apps e o tema se sobrepõem. A conferência à mão, pelo DevTools, e o que o painel libera depois de verificar o domínio estão em rodar a varredura do site.
Um detalhe específico de loja: repita o inventário com um produto no carrinho. Apps de recuperação de carrinho, de frete e de upsell só entram em cena quando existe carrinho, e eles são justamente os que carregam script de terceiro sem avisar.
Essa lista, com o carrinho incluído, é a régua do passo 6: nada dela pode disparar antes do aceite.
Passo 1. Instalar o snippet
O snippet do Concedo é uma linha. Ela fica no head e precisa carregar antes das outras
tags, porque é ela que declara o consent default do Google e liga o motor de bloqueio.
<script
src="https://app.concedo.com.br/cmp/v1/loader.js"
data-chave="pk_seu_identificador"
></script>
Sem async e sem defer. Com qualquer um dos dois, as tags do site disparam primeiro e
não sobra nada para bloquear.
Escolha um dos métodos abaixo. Instalar por dois caminhos ao mesmo tempo cria dois banners e um estado de consentimento imprevisível.
Método A. Editor de código do tema (recomendado)
No painel, vá à área da loja virtual, abra Layout (dependendo da versão do painel o item aparece como Temas) e, no tema publicado, procure a opção de edição de código, em geral dentro do menu de opções avançadas do tema, com o nome de "Editar código" ou "Editar HTML e CSS".
Você precisa do arquivo de layout: aquele que contém o <head> compartilhado por
todas as páginas da loja. Nos temas clássicos da Nuvemshop ele é o layout.tpl; em temas
mais novos o nome pode ser outro, e o critério continua o mesmo, o único arquivo em que a
tag <head> aparece.
- Duplique o tema antes de editar, se a sua versão do painel oferecer essa opção. O editor salva no tema publicado e não há botão de desfazer.
- Abra o arquivo de layout e localize a abertura do
<head>. - Cole o snippet imediatamente depois de
<head>, antes de qualquer outra tag, antes de qualquermetae antes de qualquer chamada de script. - Salve e publique.
Duas advertências que valem para qualquer tema de plataforma: uma atualização ou troca de tema apaga a edição, então anote em algum lugar que esse código existe; e o editor não valida nada, então um caractere fora do lugar quebra o layout da loja inteira.
Método B. Área de códigos externos do painel
Algumas versões do painel, e alguns apps de "códigos externos", oferecem um campo em que você cola HTML e a plataforma injeta em todas as páginas da loja. É mais fácil, não exige tocar no tema e sobrevive à troca de tema.
A limitação decide o caso: você não controla a posição do código dentro do <head>.
Se a plataforma injetar o seu snippet depois das tags que ela mesma monta, o loader chega
tarde. Antes de adotar esse caminho, cadastre o snippet, abra o código-fonte da home
(Ctrl+U) e confira quem aparece primeiro. Se o loader não estiver acima das tags de
marketing, volte para o método A.
Método C. Via Google Tag Manager
Só faz sentido se todas as suas tags já passam pelo GTM: o snippet vai numa tag de HTML personalizado com o gatilho de Inicialização do consentimento, e o passo a passo está em instalar com GTM.
Na Nuvemshop, o método C quase nunca é suficiente sozinho: o GTM segura as tags que ele mesmo dispara, e não alcança o que o campo nativo do painel ou um app da loja de aplicativos injetam por fora dele.
Passo 2. Bloquear o que a Nuvemshop injeta sozinha
Com o loader ativo, os rastreadores que ele reconhece por padrão (GA4, Meta, TikTok, Hotjar, Clarity, LinkedIn, Pinterest) já ficam presos até o aceite, inclusive quando injetados dinamicamente. O contêiner do GTM é a exceção, e ela é deliberada: ele entra como necessário e carrega antes da escolha, porque sozinho não coleta nada. O que fica preso são as tags que ele injeta, uma a uma, e elas ainda recebem os sinais do Consent Mode v2. Restam três casos que pedem decisão sua.
O Analytics e o Pixel do campo nativo
Este é o caso mais importante da Nuvemshop, e o menos compreendido. No campo nativo você informa só o identificador, e quem monta a tag é a plataforma. Como você não escreve a tag, você não tem onde colocar a marcação:
<script type="text/plain" data-category="marketing" src="https://exemplo/pixel.js"></script>
Essa marcação (type="text/plain" mais data-category, com os valores necessarios,
estatisticas, marketing ou personalizacao) é o mecanismo mais forte de bloqueio,
porque impede até a requisição de rede. Ela só existe para tags que você escreve.
Para as tags do campo nativo sobra o bloqueio por padrão de URL, e o resultado depende de como a plataforma entrega a tag:
| Como a tag entra na página | O que o bloqueio faz | Sobra requisição ao terceiro? |
|---|---|---|
| Injetada por JavaScript depois do carregamento | A interceptação de document.createElement e do setter de src segura antes de sair | Não |
| Já vem pronta no HTML servido pela plataforma | O MutationObserver impede a execução | Sim, o navegador já pediu o arquivo |
Em ambos os casos o script não roda e não grava cookie antes do aceite, que é o que a
LGPD cobra. No segundo caso, porém, o terceiro chega a receber a requisição do arquivo, e
a resposta dele pode trazer um cabeçalho Set-Cookie, que o navegador grava sem executar
script nenhum. Vale como motivo para marcar a tag em vez de contar só com o bloqueio de
execução: sem requisição, não há Set-Cookie.
Se você precisa poder afirmar que nada sai para terceiros antes da escolha, existe uma
saída: tire o identificador do campo nativo e coloque a tag você mesmo, no tema,
marcada com text/plain e data-category, ou passe a carregá-la pelo GTM.
Compare antes de decidir:
| Onde a tag fica | Esforço | Antes do aceite |
|---|---|---|
| Campo nativo do painel | Nenhum | Não executa, não grava cookie; pode haver requisição |
| Colada no tema, marcada | Baixo, mas exige editar o tema | Não executa e não sai da rede |
| Dentro do GTM | Médio, exige contêiner organizado | Nada de marketing dispara; o Consent Mode cuida do lado do Google |
Se você tem mídia paga rodando, vale o trabalho de mover. Se a loja tem só um GA4 para olhar de vez em quando, o campo nativo com bloqueio por padrão de URL é uma posição defensável, desde que você saiba, e registre, o que ela entrega.
Apps da loja de aplicativos
Cada app instalado é um terceiro com permissão de rodar script nas suas páginas. Alguns carregam pixel próprio, outros carregam a biblioteca de um fornecedor cujo nome você nunca viu.
- O que o Concedo bloqueia: os rastreadores conhecidos da base, mesmo quando quem os injeta é um app.
- O que ele não bloqueia: terceiro desconhecido, que continua carregando até o scanner trazê-lo para a base. Na Nuvemshop isso costuma ser o app de frete ou de upsell que ninguém catalogou; o motivo de não derrubar a loja por ele está em como o bloqueio automático funciona.
- O que só você pode fazer: desinstalar o que não usa. App que ficou de uma promoção do ano passado continua carregando script todos os dias.
Embeds de YouTube e Google Maps
Um iframe do YouTube grava cookie de publicidade antes de qualquer clique. O loader
esconde esses iframes conhecidos e coloca no lugar um aviso clicável que reabre as
preferências. Se o vídeo é essencial para a página de produto, avalie o domínio
youtube-nocookie.com, que reduz o rastreamento sem eliminá-lo.
Passo 3. Cache, otimização e o "acelerador de loja"
Na Nuvemshop você não tem plugin de cache para configurar, o que elimina metade dos problemas que existem em outras plataformas. Restam três cuidados:
- Publique e teste em janela anônima. O HTML da loja passa pela infraestrutura da plataforma e a versão antiga pode continuar sendo servida por alguns minutos. Testar com o navegador que você usou para editar é a receita para diagnosticar errado.
- Nada de
async,deferou "adiar JavaScript" no loader. Se algum app de performance prometer acelerar a loja adiando scripts, confira se ele não pegou o snippet junto. Atrasar o loader cria exatamente a janela em que as tags rodam sem consentimento. - Não minifique nem combine o snippet com outros scripts. Combinar muda a ordem, e ordem é requisito.
Um detalhe que costuma assustar e não deveria: o banner é renderizado no navegador, não no HTML. É proposital. Se ele viesse pronto no HTML, qualquer camada de cache serviria a mesma página com o mesmo estado de consentimento para todo mundo.
Passo 4. Carrinho e checkout: o que o banner alcança
O que o snippet do tema alcança: todas as páginas geradas pelo seu tema, home, categoria, produto, busca, páginas institucionais e, na maioria dos temas, o carrinho.
O que ele não alcança: o checkout. As páginas de finalização da compra são renderizadas pela própria Nuvemshop, não pelo seu tema, e código colocado no arquivo de layout não roda ali. O banner não aparece no checkout, e qualquer tag que a plataforma dispare nessa etapa fica fora do alcance do bloqueio. Vale para qualquer CMP externa: checkout hospedado é da plataforma.
Sabendo disso, há três posições possíveis:
- Não usar o campo nativo para as tags de marketing e mensurar a compra por um caminho que você controla, aceitando perder o evento de compra que a plataforma dispara sozinha.
- Usar o campo nativo e registrar a limitação na sua política de cookies, tratando-a como risco conhecido e documentado, em vez de descoberto numa fiscalização.
- Perguntar ao suporte da Nuvemshop o que a versão atual da plataforma oferece para scripts no checkout. É uma capacidade que muda com o tempo e vale confirmar na fonte.
Cookies necessários não podem ser bloqueados. Os cookies de sessão e de carrinho da própria Nuvemshop são estritamente necessários: sem eles o cliente perde o carrinho ao mudar de página. Eles ficam na categoria "necessários", sempre ativa.
Scripts de pagamento nunca entram no bloqueio. Gateway, antifraude e captcha são
necessários ao funcionamento da compra. Bloqueá-los derruba a venda. Só entram no bloqueio
os de marketing e mensuração. Na dúvida entre bloquear e quebrar a loja, a classificação
correta é necessarios.
Depois de instalar, faça uma compra de teste do início ao fim. É o único teste que prova que a loja não quebrou.
Passo 5. Consent Mode v2
Se você anuncia no Google, o banner precisa comunicar a escolha às tags do Google. No
Concedo isso já vem ligado: o loader dispara o consent default com os sete sinais
de forma síncrona, antes de qualquer tag, e o update correspondente à escolha
do visitante.
Dois cuidados específicos de quem vende na Nuvemshop:
- GA4 duplicado. É comum o mesmo identificador de GA4 estar no campo nativo do painel e numa tag dentro do GTM. Isso duplica sessões, distorce conversão e produz dois estados de consentimento concorrentes. Escolha um lugar.
- Eventos de e-commerce. Se a sua mensuração de "adicionar ao carrinho" e "compra" depende de tag de marketing, ela vai parar quando o visitante recusar, e é assim que tem de ser. O que recupera parte disso é a modelagem de conversões do Google, que só funciona com Consent Mode implementado corretamente. O detalhamento de cada sinal está no guia do Google Consent Mode v2.
Passo 6. Verificar se funcionou
Sempre em janela anônima, sempre deslogado do painel e depois de publicar o tema.
- Antes de interagir. Abra a loja. DevTools, aba Aplicativo, Cookies. Só devem
existir cookies do seu próprio domínio, de sessão e de carrinho da plataforma. Nenhum
_ga,_gcl_au,_fbp,_ttp,_hjSession. - Recusar tudo. Clique em "Recusar tudo" e navegue por três páginas, incluindo uma de
produto. Na aba Rede, filtre por
google-analytics,facebook,tiktok,hotjar: nada pode aparecer. Confira os cookies de novo. - Com carrinho. Ainda com a recusa ativa, adicione um produto ao carrinho e vá até a página do carrinho. É aqui que os apps de recuperação acordam.
- Aceitar tudo. Aceite e recarregue. Agora os scripts devem carregar e os cookies aparecer. Se nada aparecer, o bloqueio não soltou com o aceite e a loja ficou sem mensuração.
- Só estatísticas. Abra as preferências, marque apenas estatísticas e salve. O GA4 dispara; Meta e TikTok, não.
- Revisita. Feche o navegador, abra de novo e entre na loja: a escolha precisa ter sido lembrada e o banner não deve reaparecer.
- Compra de teste. Refaça a compra completa com "Recusar tudo" ativo. O pagamento precisa passar normalmente.
Erros comuns na Nuvemshop
- Snippet no rodapé do tema. As tags do
headjá rodaram. Sempre nohead, o mais alto possível. - Editou o tema errado. A loja tem mais de um tema salvo e você editou o que não está publicado. Confira qual está ativo antes de comemorar.
- Esqueceu de publicar. Salvar no editor não é publicar.
- Atualização de tema apagou o código. Reinstalar ou atualizar o tema devolve o arquivo de layout ao original. Depois de qualquer mexida no tema, confira o snippet.
- Dois banners. Sobrou um app de cookies antigo instalado. Desinstale de verdade e remova também o código que ele tenha deixado no tema.
- Testar logado no painel. A sessão de administrador muda o comportamento de alguns apps e polui o inventário. Janela anônima, sempre.
- Banner que esconde o botão de recusar. Recusar precisa ter o mesmo peso visual de aceitar; o que a ANPD espera da primeira camada está em cookies e LGPD à luz do Guia da ANPD.
- Política de cookies genérica. A sua política precisa listar as categorias que o scanner encontrou na sua loja e ter um link que reabra as preferências.
Perguntas frequentes
Onde eu colo o snippet na Nuvemshop?
No arquivo de layout do tema publicado, aquele em que a tag <head> aparece, logo depois
da abertura do <head>. Você chega nele pela área da loja virtual, no editor de código do
tema. Uma linha, salvar, publicar.
Funciona em qualquer tema? Sim. O snippet é HTML puro e o loader atua sobre o DOM final, sem depender do tema, do app instalado ou de quem gerou a página.
O banner aparece no checkout da Nuvemshop? Não. O checkout é renderizado pela plataforma, não pelo seu tema, e código do tema não roda lá. Isso não invalida o consentimento coletado antes: a escolha já foi registrada e vale para a navegação. Só não conte com bloqueio nessa etapa.
Preciso tirar o Google Analytics do campo nativo? Depende do seu nível de exigência. Com o campo nativo, a tag não executa e não grava cookie antes do aceite, mas pode haver requisição ao Google. Movendo a tag para o tema marcada ou para o GTM, nem a requisição sai. Em loja com mídia paga relevante, a mudança costuma compensar o trabalho.
O banner deixa a loja mais lenta? O loader é um arquivo só, sem dependência de runtime, e é síncrono de propósito. Numa loja Nuvemshop o saldo costuma ser positivo: cada pixel do campo nativo que fica preso até o aceite é uma requisição a menos concorrendo com as fotos dos seus produtos. O critério de performance está em como escolher uma CMP.
E se a configuração do banner não carregar? A loja continua de pé: o loader é fail-open, libera as tags e deixa um aviso no console. A escolha, e o custo dela, estão no critério 8 de como escolher uma CMP.
Tenho duas lojas Nuvemshop. Preciso de duas contas? Não. Cada site tem a sua chave pública e a sua configuração, e uma conta atende quantos domínios você precisar, sem teto. A assinatura é por domínio: todas usam o plano selecionado para a conta, e cada loja acrescenta uma unidade desse plano à renovação seguinte. A medição recomenda o menor plano que comporta as páginas encontradas, mas nunca troca plano ou preço sozinha. A régua está em preços. Agência que atende carteira de clientes trabalha do mesmo jeito; o painel com rótulo e filtro por cliente entra a partir de um dos degraus, e para agências diz qual.
O que fazer com quem já aceitou cookies antes de eu instalar o banner? Consentimento anterior sem registro auditável não serve como prova, e o ônus da prova é do controlador. Comece do zero: a primeira visita depois da instalação apresenta o banner a todo mundo.
Próximos passos
- Decida, com a tabela do passo 2, o que fazer com o Analytics e o Pixel do campo nativo: é a decisão que muda o resultado nesta plataforma.
- Instale o snippet pelo método A e confira no código-fonte que ele ficou acima das tags.
- Faça a verificação de sete passos, incluindo a compra de teste com a recusa ativa.
- Passe o scanner gratuito de novo depois de publicar, com um produto no carrinho, e compare com o inventário feito antes.
- Se você anuncia no Google, leia o
guia do Consent Mode v2 e confira o parâmetro
gcsnas requisições. Para fechar o resto da conformidade da loja, siga o checklist LGPD para e-commerce. - Se você também vende em outra plataforma, o caminho equivalente está em como instalar no Shopify.
Continue lendo
Como instalar banner de cookies LGPD no Shopify
Onde colar no theme.liquid e por que antes do content_for_header, o que custom pixels e checkout deixam de fora e como conviver com o consentimento nativo.
Como instalar banner de cookies LGPD no WordPress
Plugin ou snippet, como bloquear os scripts que os plugins injetam e o que fazer com cache, WooCommerce e Consent Mode v2 antes de publicar.
Como instalar banner de cookies LGPD na VTEX
CMS Legado, VTEX IO e FastStore: onde entra o snippet em cada arquitetura, o que apps de pixel e o checkout deixam de fora e como fazer o inventário antes.
Como instalar banner de cookies LGPD no Wix
Como usar o Código personalizado do Wix sem brigar com o banner nativo, por que a navegação sem recarregar derruba bloqueio de fachada e como verificar.