Depurando a string IAB GPP no console do navegador: tutorial passo a passo

Por que os problemas de GPP são difíceis de perceber

Quando um visitante americano recusa a venda ou o compartilhamento de seus dados, essa escolha precisa chegar a todos os parceiros de anúncios da página. Com o IAB Global Privacy Platform (GPP), ela viaja como uma string compacta e uma lista de IDs de seção. Se qualquer um dos dois estiver errado — ausente, desatualizado ou com a seção errada — nada quebra de forma visível. Os anúncios continuam carregando, o banner continua com boa aparência, e o problema só aparece depois, quando parceiros ignoram exclusões ou dão lances menores no seu inventário.

A boa notícia é que dá para inspecionar quase tudo pelo console do navegador. Este tutorial percorre as verificações na ordem em que as executaríamos em uma página no ar.

Passo 1: confirmar que a API existe e está pronta

Um CMP compatível com GPP expõe uma função global __gpp. Abra o DevTools na sua página e execute um comando ping:

__gpp('ping', function (data) { console.log(data); });

O objeto retornado diz muito logo de cara:

Se __gpp for undefined, o stub do CMP está ausente ou carrega tarde demais. O stub precisa estar no lugar antes de qualquer script de anúncio que o espere; do contrário, esses scripts não verão nenhum CMP e ficarão esperando ou seguirão sem sinal.

Passo 2: verificar a seção aplicável

Cada estrutura de privacidade no GPP tem um ID de seção numérico. Os que os publishers encontram com mais frequência são 2 (EU TCF v2), 5 (TCF canadense), 7 (US National, «usnat») e do 8 em diante para seções de estados individuais como Califórnia, Virgínia, Colorado, Utah e Connecticut. Um visitante de um estado americano normalmente deve ver em applicableSections a seção nacional ou a do respectivo estado, e não a da UE.

Teste a partir de vários locais. Um bug comum é um CMP que detecta a geografia corretamente para o banner, mas grava uma seção padrão na string de qualquer forma, ou o contrário. Usando uma VPN ou as ferramentas de pré-visualização do seu CMP, compare o que o banner mostra com o que applicableSections informa.

Passo 3: ler os dados da seção

Em vez de decodificar a string à mão, peça ao CMP a seção já interpretada:

__gpp('getSection', function (data, success) { console.log(data, success); }, 'usnat');

Na seção US National, os campos de exclusão seguem uma convenção simples: 0 significa não aplicável, 1 significa que o usuário optou por sair e 2 significa que o usuário não optou por sair. Concentre-se primeiro nestes campos:

Agora faça a exclusão na página — clique no seu link «Do Not Sell or Share» ou alterne a configuração na central de preferências — e execute getSection novamente. Os campos de exclusão devem mudar de 2 para 1. Se não mudarem, a interface e o sinal estão fora de sincronia.

Passo 4: testar o caminho do Global Privacy Control

Várias leis estaduais exigem que as empresas tratem um sinal Global Privacy Control como uma exclusão. Ative o GPC em um navegador ou extensão compatível, confirme que navigator.globalPrivacyControl retorna true no console e então carregue a página em uma sessão nova. Os campos de exclusão relevantes já devem indicar 1 sem que o visitante toque no banner. Algumas seções também incluem um campo indicando que a escolha veio de um sinal GPC.

Passo 5: observar eventos, não apenas instantâneos

Os scripts de anúncios não devem ler a string uma única vez no carregamento da página e esquecê-la. Registre um listener para ver o que os parceiros veem:

__gpp('addEventListener', function (evt) { console.log(evt.eventName, evt.pingData); });

Você deve observar eventos como listenerRegistered, signalStatus e sectionChange. Quando o visitante altera uma escolha, um evento sectionChange com uma string atualizada deve se seguir. Se o seu wrapper de header bidding ou a integração com o ad server só lê a string antes de signalStatus virar «ready», pode enviar um valor vazio ou desatualizado.

Passo 6: acompanhar a string até as requisições de anúncios

Por fim, abra a aba Network e filtre suas requisições de anúncios. Muitos endpoints de anúncios aceitam os parâmetros gpp e gpp_sid (a string e os IDs de seção aplicáveis). Verifique se:

  1. ambos os parâmetros estão presentes nas requisições de visitantes dos EUA;
  2. a string coincide com a retornada por ping no momento da requisição;
  3. após uma exclusão, as requisições seguintes carregam a nova string e não uma em cache.

Se você usa o Prebid.js, confirme que o módulo de gerenciamento de consentimento está configurado para GPP e inspecione as requisições de lance que saem do wrapper, além da chamada final ao ad server.

Padrões de falha comuns

Principais conclusões

← Blog Ler tudo →