A queda de CPM pode estar relacionada com diversos fatores.
Se você abre o dashboard do Google Ad Manager numa segunda-feira de manhã e se pergunta: “Por que meu CPM caiu?”, qual a sua primeira reação? Pensar: “Deve ser sazonalidade.” A segunda? Entrar em pânico e começar a mudar configurações aleatoriamente na esperança de reverter a queda.
Mas aqui está a verdade: quedas bruscas de CPM raramente são sazonalidade, e mexer em configurações sem diagnóstico correto geralmente piora o problema ao invés de resolver.
O CPM flutua naturalmente: variações de 5-10% semana a semana são normais em monetização programática. Contudo, quando você observa queda de 20%+ que se mantém por vários dias consecutivos, há causa específica identificável.
Pode ser viewability degradada, timeout rates elevados, perda de demanda premium, floor price desatualizado, ou combinação de fatores. O desafio é que essas variáveis interagem, baixa viewability afeta bid density, que por sua vez impacta fill rate e CPM. Portanto, o diagnóstico sistemático é mais eficaz que tentar adivinhar a causa.
Neste guia, você vai aprender um checklist prático de diagnóstico de queda de CPM em 5 passos que elimina variáveis progressivamente até identificar o problema real. Ao final, você saberá exatamente onde está o problema e o que fazer a respeito.
Queda de CPM: as causas reais além da sazonalidade
Sazonalidade existe e impacta CPM, mas é a desculpa mais usada (e menos verificada) quando receita cai. Antes de atribuir queda de CPM a “mercado fraco” ou “demanda baixa”, você precisa eliminar causas técnicas e operacionais que estão sob seu controle. A verdade inconveniente: na maioria dos casos, queda brusca de CPM tem origem em problemas específicos do seu inventário ou configurações, não em oscilações macroeconômicas do mercado publicitário.
Quando sazonalidade realmente explica queda de CPM (e quando não explica)
Sazonalidade verdadeira segue padrões previsíveis e afeta o mercado inteiro proporcionalmente.
Por exemplo, janeiro historicamente tem CPMs mais baixos porque orçamentos de marketing foram esgotados em campanhas de fim de ano (Black Friday, Natal). Julho também tende a ser mais fraco no Brasil por estar fora de grandes datas comerciais. Se seu CPM caiu 15% em janeiro e outros publishers do mesmo nicho reportam queda similar, sazonalidade é explicação plausível.
Contudo, a sazonalidade não explica quedas assimétricas ou imediatas. Se seu CPM despencou 40% overnight enquanto concorrentes diretos mantiveram performance estável, o problema não é mercado, é específico do seu site.
Da mesma forma, se a queda aconteceu fora de períodos sazonais conhecidos (tipo, uma terça-feira aleatória em março), culpar a sazonalidade é fugir do diagnóstico real. Além disso, a sazonalidade afeta CPM mas raramente impacta drasticamente fill rate ou bid density. Se essas métricas também caíram junto com CPM, você tem problema operacional, não sazonal.
As 5 categorias de problemas que causam queda de CPM
Quedas de CPM geralmente se enquadram em cinco categorias diagnósticas.
Primeiro, problemas de demanda: você perdeu acesso a SSPs premium, algum vendor foi desconectado acidentalmente, ou mudanças em políticas de anunciantes bloquearam seu inventário de campanhas de alto valor.
Segundo, degradação de qualidade de inventário: viewability caiu, invalid traffic aumentou, ou ad units estão carregando em posições menos visíveis que antes.
Terceiro, problemas técnicos de infraestrutura: latência do site aumentou causando timeouts em bidders, scripts de header bidding quebraram parcialmente, ou configurações de lazy loading estão impedindo impressões de serem contabilizadas corretamente.
Quarto, configurações de yield desatualizadas: floor prices que funcionavam há 3 meses agora estão bloqueando demanda, refresh rates configurados agressivamente demais estão sendo penalizados por SSPs, ou densidade de anúncios ultrapassou threshold que degrada experiência e afasta anunciantes premium.
Quinto, mudanças no perfil de tráfego: proporção de mobile vs desktop mudou drasticamente (mobile geralmente paga menos), mix de GEOs piorou (mais tráfego tier 3, menos tier 1), ou fontes de tráfego mudaram (menos orgânico qualificado, mais direto de baixa intenção).
Essas categorias frequentemente interagem, por exemplo, aumento de tráfego mobile (categoria 5) pode revelar que viewability mobile está péssima (categoria 2), o que por sua vez causa timeouts (categoria 3). Por isso, o diagnóstico sistemático importa: você precisa isolar variáveis.
Por que diagnóstico correto é mais importante que solução rápida
Publishers sob pressão de queda de receita tendem a implementar “soluções” sem confirmar diagnóstico. Aumentam floor price achando que vai forçar CPM mais alto, mas se o problema era baixa viewability, floor alto simplesmente destrói fill rate e piora a situação. Ou adicionam mais ad units para “compensar” receita perdida, mas se o problema era densidade excessiva afastando anunciantes premium, mais anúncios acelera a espiral descendente.
Diagnóstico correto economiza semanas de tentativa e erro. Se você identifica que o problema é timeout rate elevado de um SSP específico, a solução é ajustar timeout daquele bidder ou substituí-lo, não mexer em floor prices, refresh rates ou densidade. Além disso, diagnóstico permite priorização: se você descobre simultaneamente que viewability está em 60% (crítico) e floor price está 10% acima do ideal (marginal), sabe que atacar viewability primeiro vai gerar impacto maior.
Finalmente, diagnóstico preciso te protege de vendor blame. Quando você reporta queda de CPM para seu parceiro MCM ou SSP, eles frequentemente vão dizer “é o mercado” ou “seu tráfego mudou” sem investigar.
Se você chega com dados concretos, ou seja, “meu timeout rate no Index Exchange subiu de 3% para 15% na última semana, coincidindo exatamente com a queda de CPM”, a conversa muda de especulação para resolução técnica. Dados específicos exigem respostas específicas.
Passo 1 para análise de queda de CPM: o problema está na demanda ou no inventário?
Fill rate é a primeira métrica a investigar quando há queda de CPM porque revela se o problema está no lado da demanda (compradores não querendo seu inventário) ou no lado do inventário (impressões não sendo preenchidas). A análise de fill rate correta vai além do número agregado, você precisa segmentar por SSP, device, GEO e ad unit para identificar onde exatamente a demanda evaporou.
Como interpretar queda de CPM e fill rate
Quando CPM e fill rate caem juntos, você tem problema de demanda: menos anunciantes competindo pelas suas impressões, resultando em leilões menos competitivos (CPM baixo) e impressões não vendidas (fill rate baixo). Isso acontece tipicamente quando: um SSP importante parou de funcionar (desconectado acidentalmente, bloqueado por violação de política, ou problema técnico impedindo lances), seu inventário foi categorizado incorretamente (site de finanças sendo classificado como “conteúdo adulto” por erro, bloqueando anunciantes premium), ou mudanças em brand safety de anunciantes excluíram seu domínio de campanhas.
Para diagnosticar, segmente fill rate por SSP no Google Ad Manager. Acesse Relatórios → Histórico → adicione dimensão “Rede de anúncios” e métrica “Taxa de preenchimento”. Se você observa que Index Exchange tinha fill rate de 85% semana passada e agora está em 40%, enquanto outros SSPs mantiveram performance, o problema está especificamente naquele vendor. Entre em contato com suporte técnico do SSP com dados concretos: “Fill rate do Index Exchange despencou de X% para Y% a partir do dia Z, coincidindo com queda de CPM geral.”
Além disso, verifique se fill rate caiu uniformemente ou apenas em devices/GEOs específicos. Se fill rate mobile caiu mas desktop manteve, o problema pode ser timeout em conexões lentas (mobile) ou configurações de floor price diferenciadas que não fazem sentido mais. Se fill rate caiu só em tráfego tier 2-3 mas tier 1 está normal, anunciantes podem ter restringido budget para GEOs de menor valor. Nesse caso, o problema é mercado direcionado, não técnico do seu site.
Fill rate alto com CPM baixo: o que isso revela sobre seu inventário
O cenário oposto também é diagnóstico: fill rate mantém 90%+ mas o CPM despencou. Isso indica que impressões estão sendo vendidas, mas para compradores de baixo valor.
Causas típicas incluem: viewability degradada fazendo anunciantes premium desistirem (suas impressões preenchem, mas com demand de segunda linha que paga menos), floor price muito baixo permitindo que qualquer lance vença (você vende 100% do inventário, mas deixa dinheiro na mesa), ou perda de acesso a PMPs e deals diretos (você ainda tem open auction, mas perdeu os leilões premium).
Para investigar, compare eCPM por fonte de demanda. No GAM, adicione dimensão “Origem da receita” ao relatório. Se você nota que “Leilão aberto” mantém volume mas “Ofertas preferenciais” caiu drasticamente, você perdeu acesso a deals privados que pagavam CPMs superiores.
Isso pode acontecer quando: certificações de compliance expiraram (ads.txt desatualizado, problemas com sellers.json), relacionamento direto com buyer foi descontinuado sem você saber, ou requisitos técnicos de PMPs não estão sendo atendidos (como TCF 2.2 para deals europeus).
Outro diagnóstico: analise distribuição de lances. Ferramentas como Prebid Analytics mostram histograma de lances recebidos. Se antes você recebia lances entre $2-$8 CPM e agora a maioria está entre $0,50-$2, a qualidade percebida do seu inventário caiu aos olhos dos anunciantes. Contudo, se os lances continuam altos mas você não está vencendo (fill rate baixo), seu floor price está configurado acima do que o mercado está disposto a pagar.
Ferramentas e métricas para diagnosticar fill rate corretamente
Google Ad Manager fornece relatórios básicos de fill rate, mas diagnóstico profundo exige segmentação granular. Crie relatório customizado com dimensões: Data (diária), Rede de anúncios (SSPs individuais), Tamanho do anúncio (300×250, 728×90, etc), País, e Tipo de dispositivo. Métricas essenciais: Taxa de preenchimento, eCPM, Receita, Impressões disponíveis vs Impressões preenchidas.
Além disso, se você usa header bidding via Prebid.js, o Prebid Analytics (integração com Google Analytics ou ferramenta dedicada como Pubstack) oferece visibilidade sobre timeout rates por bidder, lances recebidos antes do timeout, e bid density (quantos bidders efetivamente participaram do leilão). Bid density é particularmente revelador: se você tem 12 SSPs configurados mas apenas 4-5 participam consistentemente dos leilões, os outros 7-8 têm problemas técnicos ou seu inventário não atende critérios deles.
Finalmente, monitore discrepâncias entre relatórios. Compare impressões reportadas pelo GAM com impressões reportadas pelos SSPs individuais. Discrepâncias acima de 10% indicam problema técnico: ad units não carregando corretamente, impressões sendo contadas mas não vendidas, ou bot traffic inflando números no GAM enquanto SSPs filtram. Essas discrepâncias geralmente explicam por que fill rate “parece” alto no GAM mas receita não acompanha, você está contando impressões que nunca entraram em leilão real.
Passo 2 para análise de queda de CPM: Viewability e invalid traffic
Viewability é a métrica que mede se anúncios foram efetivamente vistos por usuários reais. Uma impressão pode ser “servida” tecnicamente (contabilizada no GAM) mas nunca ter sido vista, ou seja, anúncio carregou abaixo da dobra e usuário saiu antes de scrollar, ou carregou em aba inativa do browser.
Anunciantes premium cada vez mais pagam apenas por impressões visíveis, então viewability baixa impacta diretamente quanto eles estão dispostos a licitar pelo seu inventário.
O impacto de viewability abaixo de 70% no CPM
O threshold de 70% de viewability é padrão de mercado estabelecido pelo Media Rating Council (MRC) e adotado pela maioria dos anunciantes premium. A maioria dos anunciantes requisita viewability de 70% em campanhas programáticas e anunciantes premium pagam CPMs significativamente mais altos por inventário com viewability acima de 70%. Quando seu site opera abaixo desse threshold, você é automaticamente excluído de campanhas de alto valor que exigem viewability mínima.
Na prática, a relação entre viewability e CPM não é linear, é exponencial abaixo de 70%.
Ou seja, um site com 65% de viewability pode ter CPM apenas 10-15% menor que um com 75%. Contudo, quando viewability cai para 50-55%, a penalidade é brutal: CPM pode ser 40-50% inferior porque você perdeu acesso a toda a camada superior de demanda.
Além disso, SSPs como Index Exchange e Magnite ajustam lances automaticamente baseado em viewability histórica do publisher, se sua viewability média caiu, os algoritmos de bidding já estão licitando menos antes mesmo do leilão começar.
Para verificar viewability no Google Ad Manager, acesse Relatórios → Histórico → adicione métrica “Viewability ativa (%)” e dimensão “Nome do bloco de anúncios”. Isso revela quais ad units específicas estão destruindo sua viewability média. Frequentemente você descobre que 2-3 posições problemáticas (rodapé, sidebar inferior) estão arrastando a métrica geral para baixo, enquanto posições premium (above the fold, in-content) mantêm viewability aceitável.
Como identificar invalid traffic que está contaminando métricas
Invalid traffic (IVT) refere-se a impressões geradas por bots, scrapers, ou outras fontes não-humanas. O problema não é apenas fraude óbvia (botnets gerando cliques falsos), inclui tráfego tecnicamente “real” mas inútil para anunciantes: crawlers de SEO acessando páginas, ferramentas de monitoramento carregando site repetidamente, ou até usuários usando auto-refresh em abas abertas indefinidamente.
SSPs têm filtros sofisticados que detectam e bloqueiam IVT antes de enviar impressões para leilão. Portanto, se GAM reporta 1 milhão de impressões disponíveis mas SSPs só participam de leilões em 700 mil, os 300 mil faltantes foram filtrados como invalid traffic.
Esse gap entre impressões contabilizadas e impressões leiloadas destrói suas métricas: você calcula eCPM baseado em 1 milhão, mas receita vem de apenas 700 mil impressões, fazendo seu CPM “efetivo” parecer 30% menor que a realidade dos leilões.
Para diagnosticar IVT, compare pageviews reportados pelo Google Analytics com impressões disponíveis no GAM. A proporção deveria ser relativamente consistente (exemplo: 1 pageview gera 3-5 impressões disponíveis dependendo de quantos ad units você tem por página).
Contudo, se essa proporção dispara, 1 pageview gerando 15-20 impressões, você tem problema: provavelmente refresh rate configurado agressivamente demais, ou scripts carregando ad units múltiplas vezes por erro técnico. SSPs detectam esses padrões como suspeitos e filtram o tráfego.
Além disso, ferramentas como DoubleVerify ou Integral Ad Science (IAS) fornecem relatórios detalhados de IVT se integradas ao seu stack. Elas classificam tráfego em “General Invalid Traffic” (GIVT, bots conhecidos, data centers) e “Sophisticated Invalid Traffic” (SIVT, bots avançados, fraude coordenada). Publishers sérios mantêm GIVT abaixo de 2% e SIVT próximo de zero. Se você não tem essas ferramentas integradas, monitore bounce rate anormalmente alto (acima de 80%) combinado com session duration baixíssima (menos de 5 segundos), sinais típicos de bot traffic.
Configurações que afetam viewability
Posicionamento de ad units é fator determinante de viewability. Anúncios above the fold (visíveis sem scroll) naturalmente têm viewability 80-95%, enquanto anúncios no rodapé podem ter viewability abaixo de 30% se maioria dos usuários não scrolla até lá. O problema surge quando você adiciona múltiplos ad units below the fold para “maximizar inventário”, tecnicamente você tem mais impressões disponíveis, mas viewability média despenca e CPM acompanha.
Lazy loading é solução técnica que adia carregamento de anúncios até que estejam prestes a entrar no viewport do usuário. Implementado corretamente, lazy loading melhora viewability (só carrega anúncios que serão vistos) e performance do site (menos scripts carregando simultaneamente). Contudo, configurações erradas de lazy loading destroem monetização: se você configura threshold muito conservador (carregar anúncio apenas quando já está 80% visível na tela), o anúncio pode carregar tarde demais,usuário já scrollou e o leilão nem aconteceu.
Para otimizar, teste diferentes thresholds de lazy loading: carregar anúncios quando estão 1-2 viewports abaixo da posição atual do usuário geralmente equilibra viewability e oportunidade de leilão. Além disso, analise heatmaps de scroll depth (ferramentas como Hotjar ou Google Analytics 4) para identificar onde usuários param de scrollar. Se 60% dos usuários nunca passam da metade da página, ad units no final do conteúdo são desperdício, removê-los melhora viewability média sem perder receita real, porque essas impressões raramente eram vistas de qualquer forma.
Finalmente, considere o impacto de refresh rate em viewability. Refresh (recarregar anúncio automaticamente após X segundos) pode aumentar impressões, mas se o refresh acontece enquanto anúncio está fora do viewport, você gera impressões não-visíveis que degradam a viewability. A regra de ouro: só implemente refresh em ad units comprovadamente visíveis (above the fold, in-content) e com interval mínimo de 30-45 segundos. SSPs penalizam refresh agressivo (abaixo de 30s) ou refresh em ad units below the fold.
Passo 3 para análise de queda de CPM: timeout rates e latência
Timeout acontece quando um SSP não consegue enviar um lance dentro do tempo limite estabelecido pelo leilão. O anúncio precisa carregar rapidamente para não degradar a experiência do usuário, então leilões programáticos têm janelas curtas, geralmente 1.000 a 2.000 milissegundos.
Se um bidder demora mais que isso para responder, ele é excluído automaticamente do leilão. O resultado? Menos competição, lances mais baixos, CPM reduzido.
O que é timeout rate e por que 5% já é crítico
Timeout rate é a porcentagem de leilões onde um SSP não conseguiu enviar lance a tempo. Um timeout rate de 2-3% é considerado normal. Latência ocasional de rede ou picos de tráfego podem causar timeouts esporádicos. Contudo, quando timeout rate ultrapassa 5% consistentemente, você tem problema estrutural que está destruindo receita silenciosamente.
Aqui está a matemática: se Index Exchange tem timeout rate de 15%, significa que em 15% dos seus leilões, aquele SSP simplesmente não participa. Se Index normalmente seria o lance vencedor em 20% dos leilões (pagando CPM superior), mas agora só participa em 85% deles, você está perdendo aproximadamente 3% do seu melhor demand.
Multiplique isso por 3-4 SSPs com timeout elevado, e você facilmente perde 10-15% da receita potencial sem perceber. Os leilões ainda acontecem, mas com menos competição, resultando em CPMs consistentemente mais baixos.
Para diagnosticar timeout rates, você precisa de visibilidade sobre leilões header bidding. Se você usa Prebid.js, o Prebid Analytics fornece relatório detalhado de timeout por bidder. Acesse o dashboard e procure métrica “Timeout %” por adapter. Além disso, ferramentas como Pubstack ou Admiral oferecem análise similar. Identifique bidders com timeout acima de 5% e investigue: o problema está no bidder (servidores lentos) ou no seu site (latência excessiva impedindo respostas a tempo)?
Como latência de site degrada leilões programáticos
Latência do seu site impacta diretamente performance de header bidding. Quando uma página demora 4-5 segundos para carregar completamente, scripts de header bidding competem por recursos limitados de processamento no browser do usuário, especialmente em conexões mobile lentas. O resultado: timeouts em massa porque bidders não conseguem processar requisições e enviar lances antes do timeout configurado.
Para verificar se latência é o problema, compare timeout rates entre desktop e mobile. Se desktop tem 3% de timeout mas mobile está em 12-15%, a latência de conexão é culpada.
Além disso, use Google PageSpeed Insights ou WebPageTest para medir tempo de carregamento real. Métricas críticas: Time to Interactive (TTI) acima de 5 segundos indica que header bidding está competindo com outros scripts por recursos escassos. Largest Contentful Paint (LCP) acima de 2,5 segundos sugere que o browser está sobrecarregado.
A solução não é necessariamente remover SSPs para reduzir timeouts, frequentemente é otimizar performance geral do site. Implementar lazy loading de imagens, diferir scripts não-críticos, usar CDN para assets estáticos, e minimizar JavaScript bloqueante são mudanças que melhoram tanto experiência do usuário quanto performance de leilões programáticos.
Contudo, se otimização de site não é viável no curto prazo, você pode mitigar aumentando timeout configurado no header bidding (de 1.000ms para 1.500ms, por exemplo), mas isso degrada user experience ao atrasar carregamento de anúncios.
Identificando quais SSPs estão com timeout elevado
Nem todos os SSPs têm mesma performance de latência. Alguns mantêm servidores regionalizados com response times baixíssimos; outros operam infraestrutura centralizada que pode ser lenta para tráfego brasileiro.
Portanto, diagnóstico específico por SSP é essencial: você pode ter 3-4 bidders performando perfeitamente e 2-3 com timeouts crônicos arruinando receita.
No Prebid Analytics, ordene bidders por timeout rate descendente. Se você identifica que Sovrn consistentemente tem 18% de timeout enquanto outros SSPs estão abaixo de 5%, você tem três opções: (1) aumentar timeout específico daquele bidder (Prebid permite configurar timeout diferenciado por adapter); (2) substituir o bidder problemático por alternativa com melhor latência; ou (3) mover aquele bidder específico para server-side bidding via Prebid Server, onde timeouts são menos problemáticos porque processamento não compete com browser do usuário.
Além disso, analise se timeouts são consistentes ou concentrados em horários específicos. Se timeout rate de um SSP dispara entre 18h-22h (horário de pico de tráfego), o problema é capacidade de infraestrutura daquele vendor, servidores sobrecarregados em momentos de alta demanda. Nesse caso, negociar com o SSP para resolver o problema técnico é primeira ação; se não resolverem, considere reduzir prioridade daquele bidder ou removê-lo temporariamente até performance melhorar.
Finalmente, compare timeout rates com bid density. Se um SSP tem timeout baixo (3%) mas bid density também é baixa (só participa de 40% dos leilões mesmo quando não dá timeout), o problema não é latência, é que aquele SSP simplesmente não tem demand para seu inventário.
Nesse caso, timeout não é a métrica relevante; o SSP está “funcionando” tecnicamente mas não agregando valor. A decisão estratégica é diferente: não é sobre otimizar timeout, é sobre avaliar se vale a pena manter aquele vendor no stack.
Passo 4 para análise de queda de CPM: quantos compradores estão disputando seu inventário?
Bid density mede quantos anunciantes efetivamente participam de cada leilão, não apenas quantos SSPs você tem configurados. Você pode ter 15 vendors integrados, mas se apenas 4-5 enviam lances consistentemente, sua bid density é baixa, e isso impacta diretamente CPM. Mais compradores competindo significa lances mais agressivos; leilões com 2-3 participantes geram CPMs previsíveis e baixos.
A diferença entre fill rate e bid density (e por que bid density importa mais)
Fill rate mede se impressões foram preenchidas; bid density mede quantos compradores disputaram antes da impressão ser preenchida. A distinção é crítica: fill rate de 90% parece saudável, mas se cada leilão teve apenas 2 bidders competindo (bid density baixa), você vendeu a impressão pelo lance mínimo aceitável, não pelo valor máximo que mercado pagaria.
Para ilustrar: imagine um leilão com floor price de $2. Se apenas um bidder participa e oferece $2,10, você preenche a impressão (fill rate 100%) mas deixou dinheiro na mesa.
Se cinco bidders participassem, a competição poderia levar o lance vencedor para $4-$5. Portanto, bid density é indicador de competitividade real dos seus leilões e competitividade determina CPM muito mais que simplesmente “vender a impressão”.
Para medir bid density, você precisa de ferramentas que rastreiam leilões header bidding. Prebid Analytics mostra “Bidders participantes por leilão” como métrica agregada.
Bid density saudável varia por nicho, mas como regra geral: se você tem 12+ SSPs configurados e bid density média é 4-5 bidders por leilão, há problema. Idealmente, 60-70% dos seus SSPs deveriam participar da maioria dos leilões.
Se apenas 30-40% participam consistentemente, os outros são “peso morto” técnico que não agrega demanda real.
Como diagnosticar se você perdeu demanda premium
Perda de demanda premium se manifesta como queda de bid density em segmentos específicos de inventário. Por exemplo, você pode notar que bid density em tráfego desktop tier 1 (EUA, UK) caiu de 8-9 bidders para 4-5, enquanto tráfego mobile tier 2-3 manteve bid density estável.
Isso indica que anunciantes premium (que focam desktop tier 1) pararam de competir pelo seu inventário, possivelmente por viewability baixa, problemas de brand safety, ou perda de acesso a PMPs.
Para diagnosticar, segmente relatórios de bid density por device e GEO. No Prebid Analytics ou ferramentas similares, adicione filtros: “Device: Desktop” e “Country: United States”, depois compare bid density com períodos anteriores. Se a métrica caiu significativamente em segmentos de alto valor mas manteve em segmentos de baixo valor, você perdeu especificamente demand premium, não houve queda generalizada de mercado.
Além disso, verifique se você perdeu acesso a deals privados (PMPs). No Google Ad Manager, acesse Inventário → Ofertas → filtre por “Status: Ativo”. Compare número de deals ativos agora vs 30 dias atrás.
Se você tinha 15 PMPs e agora tem 8, descobriu a causa da queda de bid density: anunciantes cancelaram deals diretos, forçando seu inventário a competir apenas em open auction onde bid density e CPMs são naturalmente menores. Causas típicas de perda de PMPs: ads.txt desatualizado (anunciante não consegue verificar cadeia de supply), certificações de compliance expiraram (TCF 2.2, sellers.json), ou simplesmente o buyer realocou budget e você não foi notificado.
SSPs inativos ou bloqueados que você não percebeu
Frequentemente, quedas de bid density acontecem porque um ou mais SSPs pararam de funcionar sem você perceber. Isso pode ocorrer por: credenciais de API expiraram e precisam ser renovadas, SSP bloqueou seu domínio por suspeita de invalid traffic (sem notificar claramente), mudanças em políticas de conteúdo do SSP que agora excluem seu nicho, ou simplesmente bugs técnicos na integração que impediram lances de serem enviados.
Para identificar SSPs inativos, crie relatório no GAM mostrando receita por “Rede de anúncios” nos últimos 30 dias. Ordene por receita decrescente e procure vendors que geravam receita consistente mas agora estão em zero ou próximo de zero. Se Index Exchange gerava $2.000/mês e abruptamente caiu para $50, aquele SSP está essencialmente inativo — pode até enviar alguns lances ocasionais, mas não está participando dos leilões normalmente.
Depois de identificar SSPs suspeitos, verifique status técnico. Acesse configurações de Prebid (se usar header bidding client-side) e confirme que adapter daquele bidder está habilitado e com credenciais corretas. Além disso, use console do browser (F12 → Console) durante carregamento de página e procure erros JavaScript relacionados ao bidder problemático. Erros como “Failed to load adapter” ou “Invalid credentials” revelam problemas técnicos que impedem participação nos leilões.
Finalmente, entre em contato direto com account manager do SSP. Seja específico: “Notei queda de 95% em receita do [SSP] a partir de [data], coincidindo com queda geral de CPM. Bid rate caiu de X% para Y%. Houve mudança em políticas ou bloqueio do nosso domínio?” SSPs sérios investigam rapidamente quando apresentados com dados concretos.
Contudo, se o SSP não responde ou não resolve, considere substituição: um vendor que não participa ativamente dos leilões está apenas adicionando latência sem contribuir receita.
Passo 5 para análise de queda de CPM: Floor price e configurações de yield
Floor price é o lance mínimo que você aceita por impressão. Configure muito baixo e você vende inventário por menos do que vale; configure muito alto e impressões ficam sem vender, destruindo fill rate. O desafio é que floor price ideal não é estático, muda conforme demanda de mercado, sazonalidade, e perfil do seu tráfego. Um floor que funcionava perfeitamente há 3 meses pode estar matando receita hoje.
Floor price desatualizado: o assassino silencioso do eCPM
Floor price desatualizado manifesta-se de duas formas.
Cenário 1: Floor muito baixo. Você configurou $1,50 como floor há 6 meses quando CPMs médios eram $3-$4. Agora demanda aumentou e CPMs de mercado estão em $5-$6, mas seu floor continua em $1,50 — resultado: você vende 100% das impressões (fill rate perfeito) mas por valores muito abaixo do que anunciantes pagariam. Você está subsidiando compradores.
Cenário 2: Floor muito alto. Você configurou $4 como floor quando mercado estava aquecido. Demanda caiu, CPMs médios agora são $2,50-$3,50, mas seu floor mantém $4 — resultado: fill rate despenca porque poucos anunciantes estão dispostos a pagar acima de $4. Impressões ficam sem vender, você perde receita não por falta de demand, mas por precificação desalinhada com realidade de mercado.
Para diagnosticar floor price problemático, compare seu floor atual com eCPM médio dos últimos 30 dias. Se eCPM está 50%+ acima do floor (exemplo: floor $2, eCPM $3,50), você está vendendo barato demais, há espaço para aumentar floor e capturar mais valor.
Contudo, se eCPM está apenas 10-15% acima do floor (floor $3, eCPM $3,30), você está no limite, aumentar floor arriscaria perder impressões.
Finalmente, se eCPM está consistentemente abaixo ou igual ao floor, seu floor está definitivamente alto demais para a demanda atual.
Como testar se seu floor está otimizado ou destrutivo
O Teste A/B é o método mais confiável para otimizar floor price. Divida seu inventário em dois grupos: Grupo A mantém floor atual, Grupo B testa floor 20% mais alto ou 20% mais baixo (dependendo da hipótese). Execute por 7-10 dias e compare não apenas eCPM, mas receita total, porque eCPM alto com fill rate baixo pode gerar menos receita que eCPM moderado com fill rate alto.
Por exemplo, imagine um teste com floor $2 vs floor $2,50. Grupo A (floor $2): eCPM $3,20, fill rate 85%, receita por mil impressões disponíveis = $2,72. Grupo B (floor $2,50): eCPM $3,60, fill rate 70%, receita por mil impressões disponíveis = $2,52.
Embora Grupo B tenha eCPM superior, Grupo A gera mais receita total porque fill rate compensa o eCPM ligeiramente menor. Portanto, floor $2 é mais otimizado que $2,50 nesse cenário.
Além disso, segmente testes por device e GEO. Floor ideal para desktop tier 1 (EUA) pode ser $5, enquanto mobile tier 2 (Brasil) funciona melhor com floor $1,20. Floor único para todo tráfego é subotimização garantida, você deixa dinheiro na mesa em segmentos premium ou bloqueia demanda em segmentos de menor valor.
Ferramentas como Google Ad Manager permitem configurar floors diferenciados por targeting (device, país, ad unit), então use essa granularidade estrategicamente.
Refresh rate, densidade de anúncios e outras configurações que impactam CPM
Refresh rate (recarregar anúncio automaticamente após X segundos) aumenta impressões disponíveis sem aumentar pageviews, mas impacta CPM de três formas.
Primeiro, impressões de refresh geralmente têm CPM 30-50% menor que impressão inicial, anunciantes valorizam menos a segunda, terceira exposição. Segundo, refresh agressivo (abaixo de 30 segundos) é penalizado por muitos SSPs que detectam o padrão como tentativa de inflar inventário artificialmente. Terceiro, refresh em ad units below the fold ou fora do viewport gera impressões não-visíveis que destroem viewability média.
Para otimizar refresh, implemente apenas em posições comprovadamente visíveis (above the fold, in-content sticky) e com interval mínimo de 30-45 segundos. Além disso, configure refresh para pausar quando usuário troca de aba (tab inactive). Impressões carregadas em abas inativas não são vistas e contaminam métricas. Monitore eCPM de impressões refreshed vs impressões iniciais: se a diferença é maior que 40-50%, você está refreshando demais ou em posições erradas.
Densidade de anúncios é outro fator crítico. Ter 8-10 ad units por página pode maximizar impressões disponíveis, mas degrada experiência do usuário e afasta anunciantes premium que não querem suas marcas competindo com 7 outros anúncios na mesma tela. Além disso, densidade excessiva frequentemente reduz viewability (muitos anúncios below the fold que nunca são vistos) e aumenta bounce rate (usuários saem do site irritados com poluição visual).
O equilíbrio ideal varia por tipo de conteúdo, mas como regra geral: sites editoriais funcionam bem com 3-5 ad units por página (above the fold, mid-content, end-content), enquanto páginas de categorias/listagens podem suportar 5-7.
Acima disso, você geralmente está sacrificando CPM e experiência do usuário por volume de impressões que não compensa. Teste remover 1-2 ad units de menor performance (geralmente rodapé e sidebar inferior) e observe se receita total cai, frequentemente, receita mantém ou até aumenta porque viewability melhora e anunciantes premium voltam a licitar.
Finalmente, considere configurações de lazy loading (já mencionado em Passo 2) e header bidding timeout (Passo 3). Essas configurações interagem com floor price: timeout muito curto impede os bidders de participar, reduzindo a competição e forçando você a baixar floor para manter fill rate.
Lazy loading agressivo pode causar impressões carregarem tarde demais, perdendo a janela de leilão. Otimização de monetização é um sistema interconectado: mexer em uma variável afeta outras.
O que fazer depois do diagnóstico: quando otimizar sozinho e quando pedir ajuda
Você completou o diagnóstico de 5 passos e identificou a causa da queda de CPM. Agora vem a decisão crítica: você consegue resolver o problema sozinho com acesso ao Google Ad Manager, ou a solução exige expertise técnica que vai além das configurações básicas?
Nem todo problema requer parceiro especializado, mas alguns são complexos demais para resolver sem suporte de quem vive monetização programática diariamente.
Problemas que você consegue resolver com acesso ao Google Ad Manager
Se o diagnóstico revelou problemas de configuração simples, você pode resolver autonomamente. Floor price desatualizado: ajuste manualmente no GAM em Inventário → Preços mínimos unificados, segmente por device/GEO se necessário, e monitore impacto nos próximos 7 dias. Ad units com viewability baixa: remova posições below the fold que nunca são vistas, ou implemente lazy loading básico para carregar anúncios apenas quando prestes a entrar no viewport.
SSP inativo identificado: se um vendor específico parou de gerar receita, desabilite temporariamente no GAM ou Prebid e observe se fill rate/CPM melhora sem ele. Às vezes, SSPs “peso morto” adicionam latência sem contribuir demand, removê-los melhora performance geral. Densidade excessiva de anúncios: desabilite 1-2 ad units de menor performance (tipicamente sidebar inferior, rodapé) e meça impacto. Frequentemente, menos anúncios gera mais receita porque viewability e user experience melhoram.
Além disso, problemas de compliance básicos você pode resolver: atualizar ads.txt quando SSP notifica que falta entrada, verificar se sellers.json está configurado corretamente, ou ajustar categorias de conteúdo no GAM se seu site foi miscategorizado. Essas são mudanças operacionais que não exigem conhecimento técnico profundo — apenas acesso às configurações e atenção aos detalhes.
Quando a causa exige expertise técnica de parceiro MCM
Contudo, alguns problemas vão além do que as configurações básicas resolvem. Timeout rates elevados estruturalmente: se múltiplos SSPs têm timeout acima de 10-15%, o problema pode ser arquitetura de header bidding mal implementada, latência de site crítica que exige otimização profunda de performance, ou necessidade de migrar para server-side bidding (Prebid Server). Resolver isso exige expertise técnica de engenharia e infraestrutura.
Perda de acesso a PMPs ou demand premium: se você identificou que bid density caiu especificamente em segmentos de alto valor e perdeu deals privados, recuperar esses relacionamentos exige negociação direta com buyers e SSPs.
Parceiros MCM estabelecidos têm relacionamentos e podem facilitar reconexão; fazer isso sozinho como publisher individual é lento e frequentemente ineficaz.
Invalid traffic (IVT) contaminando métricas: se diagnóstico revelou que 15-20%+ do seu tráfego está sendo filtrado como IVT, você tem problema sério que não se resolve com configurações.
Pode exigir: implementação de ferramentas de verificação (DoubleVerify, IAS), análise forensic de fontes de tráfego, mudanças em estratégia de aquisição se tráfego pago está contaminado, ou até investigação de comprometimento de segurança do site. Parceiros especializados têm ferramentas e experiência para diagnosticar e remediar IVT complexo.
Viewability estruturalmente baixa: se viewability está em 40-50% e o problema não é apenas “remover ad units below the fold”, mas sim arquitetura do site (conteúdo curto, bounce rate alto, layout problemático), resolver exige mudanças mais profundas.
Parceiros MCM podem sugerir otimizações de layout, implementar sticky ads tecnicamente complexos, ou reconfigurar lazy loading de forma avançada que equilibra viewability e oportunidade de leilão.
Red flags que indicam problema estrutural na monetização
Certos sinais indicam que a queda de CPM não é problema pontual, mas sintoma de monetização estruturalmente mal configurada.
Red flag #1: você tem 12+ SSPs integrados mas bid density média é 3-4 bidders por leilão. Isso revela que a maioria dos vendors não está funcionando. Pode ser configurações erradas, credenciais expiradas, ou simplesmente SSPs que não têm demand para seu perfil. Limpar e reconfigurar stack programático inteiro exige expertise.
Red flag #2: suas métricas flutuam drasticamente dia a dia sem padrão identificável. CPM varia 40-50% entre segunda e terça sem razão aparente, fill rate oscila de 70% para 95% aleatoriamente. Isso indica instabilidade técnica, ou seja, scripts quebrando intermitentemente, configurações conflitantes, ou problemas de infraestrutura que exigem diagnóstico técnico profundo.
Red flag #3: você implementou múltiplas “soluções” nos últimos 2-3 meses mas a receita continua caindo. Aumentou o floor, adicionou SSPs, removeu ad units, testou refresh, mas nada funcionou. Quando tentativa e erro repetido falha, o problema não é uma configuração errada, é uma abordagem estratégica equivocada. Parceiro experiente traz perspectiva externa e metodologia sistemática que quebra o ciclo de mudanças aleatórias.
Finalmente, se o diagnóstico revelou múltiplos problemas simultaneamente (viewability baixa + timeout alto + floor desatualizado + perda de PMPs), resolver tudo coordenadamente é complexo.
Mexer em uma variável afeta outras, por exemplo, aumentar timeout para reduzir timeouts pode degradar user experience; remover ad units melhora viewability mas reduz impressões disponíveis. Orquestrar otimizações que se complementam ao invés de conflitar exige experiência de quem gerencia monetização em escala.
Conclusão
Lembra daquela segunda-feira quando você abriu o dashboard e viu CPM 30% mais baixo, pronto para culpar a sazonalidade?
Agora você tem um checklist sistemático que elimina especulação. Queda de CPM raramente é “mercado fraco”, é fill rate degradado, viewability abaixo de 70%, timeout rates matando competição, bid density inexistente, ou floor price desatualizado há meses.
O diagnóstico correto economiza semanas de tentativa e erro mexendo em configurações aleatórias que pioram o problema.
A AdSeleto oferece diagnóstico gratuito de receita programática para publishers que identificaram queda de CPM mas não conseguem isolar a causa.
Analisamos suas métricas de fill rate, viewability, timeout rates e bid density, identificamos gargalos específicos, e recomendamos ações prioritárias, sejam ajustes que você implementa sozinho ou otimizações que exigem parceiro técnico.
Fale com nosso time e descubra exatamente por que seu CPM caiu e o que fazer para recuperar receita.