Prebid.js Gestão de Consentimento: Guia de Configuração de Header Bidding para Editores
O header bidding aumenta os CPMs dos editores ao permitir que parceiros de demanda concorram em paralelo — mas cada um desses parceiros precisa de um sinal de consentimento válido antes de poder soltar um cookie, obter uma impressão digital ou disparar um pixel. O Prebid.js, o wrapper de header bidding open-source de facto usado por dezenas de milhares de sites, vem com um módulo de Gestão de Consentimento que conecta seu CMP a cada leilão. Configure-o errado e você ou vaza dados sem consentimento (risco regulatório) ou priva os licitantes do sinal de que precisam (risco de receita). Este guia conduz os editores por uma configuração de nível de produção.
Por que o Prebid.js Precisa de um Módulo de Gestão de Consentimento
Quando um leilão do Prebid.js é executado, o wrapper faz solicitações paralelas a cada adaptador de licitante configurado. Cada adaptador deve incluir a string de consentimento do usuário em sua solicitação de lance — tcfeu (TCF v2.2 para a UE/UK), usp (CCPA/CPRA) e cada vez mais gpp (a string da IAB Global Privacy Platform cobrindo vários estados dos EUA). Sem esses sinais, SSPs e DSPs downstream são forçados a tratar o usuário como optado por não participar, descartar o lance completamente ou — no pior caso — processar dados ilegalmente.
O módulo de Gestão de Consentimento do Prebid fica entre seu CMP e o pipeline de solicitações de lance. Ele chama a API CMP padrão (__tcfapi, __uspapi, __gppapi), aguarda uma string de consentimento e a injeta automaticamente no payload de solicitação de lance de cada adaptador. Ele também aplica bloqueio baseado em finalidade quando você ativa a aplicação do GDPR, bloqueando o acesso ao armazenamento e a execução de licitantes para usuários que não concederam as finalidades TCF relevantes.
Instalando e Configurando o Módulo Principal
O Prebid.js é construído por editor a partir de docs.prebid.org/download.html. Ao gerar sua compilação personalizada, três módulos em "Gestão de Consentimento" são importantes:
- consentManagementTcf — lida com strings TCF v2.2 para tráfego da UE, UK e Suíça.
- consentManagementUsp — lida com a US Privacy String mais antiga do CCPA/CPRA (ainda exigida por muitos DSPs).
- consentManagementGpp — lida com a string IAB GPP, o padrão voltado para o futuro agora exigido pelo Google, TTD e principais SSPs.
Inclua todos os três se você atender tráfego global. Assim que a compilação chegar ao seu CDN, configure os módulos no script de configuração do Prebid:
Configuração do TCF v2.2
O bloco TCF informa ao Prebid qual API CMP chamar, quanto tempo esperar por uma string e o que fazer no timeout. Uma configuração típica de produção define cmpApi: 'iab', timeout: 8000 (8 segundos — tempo suficiente para um carregamento lento de banner CMP) e defaultGdprScope: true para que usuários em jurisdições desconhecidas sejam tratados como no escopo até que se prove o contrário. Definir actionTimeout separadamente controla quanto tempo o Prebid espera quando o usuário ainda não interagiu com o banner — mantê-lo moderado evita um slot de anúncio vazio se um visitante ignorar o banner.
US Privacy e GPP
USP é simples: ative o módulo e o Prebid lê a string de quatro caracteres de __uspapi. O GPP é mais complexo porque a string GPP pode carregar múltiplos IDs de seção (TCF UE, EUA Nacional, EUA Califórnia, EUA Colorado, EUA Virgínia, etc.). O Prebid encaminha automaticamente a string completa, mas os licitantes inspecionam seções específicas. Certifique-se de que seu CMP emite as seções GPP corretas para a jurisdição de cada usuário — um CMP mal configurado que emite apenas a seção EUA Nacional para um usuário da Califórnia fará com que DSPs conformes com CPRA descartem o lance.
Ativando a Aplicação do GDPR (Bloqueio Baseado em Finalidade)
Por padrão, o módulo de consentimento passa a string TCF mas não bloqueia nada. Para fazer o Prebid realmente aplicar as finalidades TCF, ative o conjunto de regras gdprEnforcement. É aqui que a maioria dos erros de configuração ocorre — e onde está a diferença entre uma pilha de header bidding conforme e não conforme.
O conjunto de regras padrão bloqueia quatro atividades quando a finalidade relevante não tem consentimento:
- storage — controlado na Finalidade 1 (armazenamento e acesso). Quando negado, o Prebid impede que licitantes leiam ou gravem cookies e localStorage.
- basicAds — controlado na Finalidade 2 (anúncios básicos). Quando negado, o licitante é excluído completamente do leilão.
- measurement — controlado na Finalidade 7. Afeta adaptadores de análise.
- transmitPreciseGeo — controlado no Recurso Especial 1. Quando negado, o Prebid remove a geolocalização precisa das solicitações de lance.
Para cada regra você define enforcePurpose: true, enforceVendor: true e uma lista de vendorExceptions. A lista de exceções de fornecedor é crítica: qualquer licitante que você listar lá pode participar mesmo sem consentimento explícito de fornecedor TCF, com base em que você tem uma base legal separada (por exemplo, interesse legítimo combinado com um fluxo contratual). Use isso com moderação — exceções muito amplas são exatamente o padrão pelo qual os reguladores começaram a multar os editores.
Armadilhas Comuns que Custam aos Editores Receita ou Conformidade
Timeout definido muito baixo
Se timeout for menor que o tempo de renderização do banner do CMP, o Prebid segue em frente sem string de consentimento. Os licitantes tratam isso como ausência de consentimento e descartam o lance. Meça a latência da primeira chamada tcfapi('addEventListener') do seu CMP no 95º percentil e defina o timeout do Prebid acima disso. 8000 ms é um padrão seguro; 3000 ms é arriscado se você atender mercados onde os banners demoram para localizar.
Integração GPP ausente no tráfego dos EUA
Principais SSPs e DSPs (Google AdX, TTD, Magnite, PubMatic) agora exigem a string GPP para aplicação de opt-out nos EUA. Se você emitir apenas a string USP legada, esses DSPs vão cada vez mais rebaixar ou ignorar seu inventário. Audite suas respostas de lance: uma queda acentuada de CPM no tráfego dos EUA em 2026 é frequentemente um sinal GPP ausente.
Strings de consentimento desatualizadas na navegação SPA
Aplicativos de página única que acionam novamente leilões do Prebid em mudanças de rota devem chamar pbjs.refreshUserIds() e garantir que a string TCF mais recente seja buscada. Uma string em cache de 30 minutos pode carregar as preferências do usuário anterior se o seu site usar sessões compartilhadas.
vendorExceptions ausentes para análise
Os editores frequentemente esquecem que os adaptadores de Análise do Prebid (Google Analytics, relatórios no lado do servidor) também estão sujeitos ao bloqueio de measurement sob a Finalidade TCF 7. Se você depende deles para relatórios de receita, liste-os explicitamente sob as exceções de fornecedor da regra de medição ou aceite a lacuna de dados no tráfego sem consentimento.
Testando sua Configuração Antes da Produção
O Prebid.js expõe pbjs.getConfig('consentManagement') no console do navegador. Verifique se a configuração ativa corresponde à sua intenção. Em seguida, use a extensão Chrome Prebid.js Professor ou pbjs.getEvents() para inspecionar a string de consentimento anexada a cada solicitação de lance. Faça verificações pontuais em três cenários: um usuário com consentimento total, um usuário que clicou em "Rejeitar tudo" e um usuário que dispensou o banner sem interagir. Cada um deve produzir um comportamento observável diferente no payload da solicitação de lance.
Execute as mesmas verificações em diferentes geografias usando uma VPN ou a flag de substituição de geolocalização do seu CMP. O tráfego da UE deve produzir uma string TCF e acionar o gdprEnforcement; o tráfego da Califórnia deve produzir uma string USP e GPP; o tráfego de jurisdição desconhecida deve respeitar sua configuração de defaultGdprScope.
Juntando Tudo
Uma pilha de Gestão de Consentimento do Prebid corretamente configurada faz três coisas ao mesmo tempo: mantém seus licitantes abastecidos com sinais de consentimento válidos (preservando CPMs), aplica as regras de opt-out TCF e dos EUA no nível do wrapper (reduzindo a exposição regulatória) e fornece um único ponto de auditoria quando um regulador pergunta como sua configuração de header bidding honra a escolha do usuário. Reserve um tempo para definir timeouts deliberadamente, ative o GPP ao lado do USP para o tráfego dos EUA e revise sua lista de vendorExceptions trimestralmente — o custo de errar isso é medido em multas e receita programática perdida.