Como detectar anomalias em campanhas sem alarmes falsos

Para detectar anomalias em campanhas sem alarmes falsos, compare cada campanha com o próprio histórico recente, não com uma regra fixa. Só sinalize uma mudança quando houver volume suficiente e a variação for grande o bastante para importar e incomum para aquela campanha, medida com mediana e MAD. Tire antes o padrão do dia da semana, junte métricas relacionadas num só alerta e ordene pela verba.

Resumo

  • Limites fixos erram dos dois lados: disparam com a oscilação normal das campanhas voláteis e ignoram mudanças reais nas estáveis.
  • O mesmo CPA 18% maior pode dar um z robusto de 12,8 numa campanha e de 1,3 em outra.
  • Use mediana e MAD, não média e desvio padrão: um único dia ruim pode esconder um problema real.
  • Exija volume mínimo, tire o padrão semanal e só aceite mudanças relevantes e incomuns.
  • Gere um alerta por campanha, ordenado pela verba; um ROAS melhor pesa mais que um CPA maior.

Por que alertas com limite fixo falham?

Um limite fixo falha porque aplica o mesmo número a campanhas muito diferentes. “Me avise se o CPA subir 20%” é apertado demais para a campanha cujo CPA oscila todo dia, onde dispara à toa, e frouxo demais para a que quase não mexe, onde fica quieto enquanto algo quebra de verdade.

Os dois erros custam caro: o ruído ensina a equipe a ignorar alertas, e é com um alerta ignorado que um problema real dura uma semana. A pergunta certa é “isso é incomum para esta campanha?”, o que exige o histórico de cada uma e uma medida de quanto ela varia.

SituaçãoLimite fixoDetecção pelo histórico
O que é normalUm número para todas as campanhasO histórico recente de cada campanha
Campanha volátilDispara com oscilações comunsFaixa normal larga, fica quieta
Campanha estávelNão vê mudanças abaixo do limiteFaixa normal estreita, avisa cedo
Poucas conversõesDispara por sorteEspera um volume mínimo
Fim de semanaVolume “cai” todo sábadoPadrão semanal removido antes
CPA, taxa e conversões mexem juntosTrês alertasUm alerta, com a causa
CPA sobe, ROAS sobeAlerta de CPAMostra o ganho de ROAS

Um CPA 18% maior é problema ou só ruído?

Depende de quanto o CPA daquela campanha costuma mexer. Exemplo: duas campanhas com CPA diário mediano de R$ 40 em 14 dias de histórico fecharam os últimos 7 dias com CPA de R$ 47,20, alta de 18%. Os CPAs diários do histórico:

Campanha A (estável): 39, 41, 40, 38, 42, 40, 41, 39, 40, 42, 38, 41, 40, 39
Campanha B (volátil): 45, 30, 52, 39, 26, 49, 41, 33, 60, 38, 28, 55, 30, 50

Com o z robusto explicado mais abaixo:

Campanha A: mediana R$ 40, MAD R$ 1
z = (47,20 − 40) ÷ (1,4826 × 1 ÷ √7) ≈ 12,8 → problema

Campanha B: mediana R$ 40, MAD R$ 10
z = (47,20 − 40) ÷ (1,4826 × 10 ÷ √7) ≈ 1,3 → ruído

Mesma porcentagem, conclusões opostas. Uma regra fixa de 20% erra nas duas: fica calada no CPA de 7 dias de A e, no CPA diário (“acima de R$ 48”), teria disparado em 5 dos 14 dias normais de B.

Como detectar anomalias em campanhas, passo a passo?

Passe todas as campanhas pelas mesmas verificações e fique só com o que passar em todas. É assim que a Borealis funciona no monitoramento de Google Ads, e você pode reproduzir cada etapa numa planilha.

1. Compare cada campanha com o próprio histórico recente

Use uma janela atual e o histórico logo antes dela, por exemplo os últimos 7 dias contra os 28 anteriores. As duas são semanas inteiras, com a mesma mistura de dias da semana. Calcule taxas como CPA e ROAS pelos totais da janela (no CPA, investimento ÷ conversões) e compare volumes pela média diária.

Picos planejados quebram essa comparação; para semanas de promoção, veja o monitoramento de campanhas na Black Friday.

2. Não julgue uma taxa com pouco volume

Uma taxa feita de meia dúzia de conversões oscila por sorte. Exemplo: uma campanha converteu 9 vezes em 360 cliques no histórico (2,5%) e 1 vez em 100 cliques nesta semana (1,0%). Parece uma queda de 60% na taxa de conversão, mas mais duas conversões a levariam a 3,0%, uma alta. Defina um mínimo, por exemplo 15 conversões no histórico para CPA ou taxa de conversão e 150 cliques para CTR ou CPC.

3. Exija uma mudança relevante e incomum ao mesmo tempo

Relevante é grande o bastante para agir, por exemplo 12% ou mais. Incomum é grande em relação à variação normal da campanha, por exemplo um z robusto de 2,5 ou mais. Os +18% de B são relevantes, mas não incomuns. Já A, com CPA de R$ 41,60, seria o contrário: z ≈ 2,9 numa variação de 4%, estatisticamente real e comercialmente irrelevante.

Por que usar mediana e MAD em vez de média e desvio padrão?

Porque um único dia ruim puxa a média e infla o desvio padrão, enquanto mediana e MAD quase não sentem. O MAD (desvio absoluto mediano) é a distância mediana entre cada dia e a mediana. Multiplicado por 1,4826, fica na escala de um desvio padrão em dados com distribuição normal.

z robusto = (x − mediana) ÷ (1,4826 × MAD)

para a média de 7 dias, em vez de um único dia:
z robusto = (x − mediana) ÷ (1,4826 × MAD ÷ √7)

O √7 (cerca de 2,65) entra porque uma média de 7 dias oscila menos que um dia isolado. Exemplo: na campanha A, uma falha de rastreamento no 10º dia deixou de registrar a maior parte das conversões, e o CPA marcou R$ 112 em vez de R$ 42.

Estatística (R$)Histórico limpoCom o dia de 112
Média40,0045,00
Desvio padrão1,3019,32
Mediana40,0040,00
MAD1,001,00

Pela média e pelo desvio padrão, os R$ 47,20 desta semana ficam só 4,9% acima do “normal”, e z = (47,20 − 45,00) ÷ (19,32 ÷ √7) ≈ 0,30. O problema some, e segue escondido enquanto a falha estiver no histórico. Pela mediana e pelo MAD nada mudou: o z segue perto de 12,8.

Como lidar com fim de semana e o padrão do dia da semana?

Tire o padrão do dia da semana antes de medir quanto uma métrica de volume costuma variar. Conversões e cliques muitas vezes seguem um ritmo semanal: dia a dia, todo sábado parece queda, e com os dias misturados a campanha parece mais volátil do que é, então uma queda real passa como ruído.

Exemplo com conversões diárias:

DiaSemana 1Semana 2Esta semana
Segunda615951
Terça565848
Quarta555346
Quinta495143
Sexta454337
Sábado313327
Domingo383530
Histórico:   667 ÷ 14 = 47,64 conversões por dia
Esta semana: 282 ÷ 7 = 40,29 por dia (−15,4%)

Dias brutos: MAD 7,5
z = (40,29 − 47,64) ÷ (1,4826 × 7,5 ÷ √7) ≈ −1,75 → parece ruído

Sem o padrão semanal (mediana de cada dia descontada): MAD 1,0
z = (40,29 − 47,64) ÷ (1,4826 × 1,0 ÷ √7) ≈ −13,1 → queda real

A mediana de cada dia da semana (segunda 60, terça 57 e assim por diante) tira o ritmo e deixa só o ruído, cerca de uma conversão aqui. Em volumes, use como centro a média diária do histórico, não a mediana dos dias brutos: em semanas inteiras, ela pesa todos os dias igualmente.

Como priorizar as anomalias para a lista ficar curta?

Junte métricas relacionadas, pese a gravidade pela verba e deixe o valor ganhar do custo.

Um alerta por campanha

Quando CPA, taxa de conversão e conversões mexem juntos, é um evento só. Exemplo: a taxa de conversão cai 23% com CPC e cliques estáveis. As conversões caem 23% e o CPA sobe 29,9%, porque CPA = CPC ÷ taxa de conversão e 1 ÷ 0,77 = 1,299. Gere um alerta só, “CPA subiu 29,9%, puxado pela taxa de conversão”. Para ir do fator à causa, veja por que seu CPA subiu.

Gravidade é relevância × direção × significância

A participação na verba diz quanto a mudança importa; a direção, se é problema ou oportunidade; a significância, quanta certeza você pode ter. Exemplo: duas campanhas mostram CPA +40% numa semana de R$ 10.000. Uma investe R$ 100 (1% da conta) com CPA de R$ 25; a outra, R$ 4.500 (45%) com CPA de R$ 45. Com a mesma verba, um CPA 40% maior compra 28,6% menos conversões (1 − 1 ÷ 1,4): 4 conversões viram 2,9 na pequena, e 100 viram 71,4 na grande. Mesma porcentagem, 25 vezes o estrago.

Uma escala simples: crítico para piora grande e muito incomum numa campanha com peso real na verba (por exemplo 10% ou mais); atenção para as outras pioras; oportunidade para as melhoras; informativo abaixo de poucos por cento da verba.

Valor ganha de custo

Se o ROAS melhorou, um CPA maior é o preço desse retorno, não um problema. Exemplo, por dia: o investimento fica em R$ 400, as conversões caem de 10 para 8 e o valor de conversão sobe de R$ 1.600 para R$ 1.800. O CPA vai de R$ 40 para R$ 50 (+25%), mas o ROAS vai de 4,0 para 4,5 (+12,5%), porque cada conversão agora vale R$ 225 em vez de R$ 160. Mostre o ganho de ROAS e segure o alerta de CPA.

Como montar isso no Google Planilhas ou no Excel?

Use uma aba por campanha e uma linha por dia: os 28 dias de histórico nas linhas 2–29 e os 7 dias atuais nas linhas 30–36. Colunas: A data, B dia da semana (=DIA.DA.SEMANA(A2)), C investimento, D conversões, E CPA diário (=C2/D2). Se muitos dias têm zero conversão, a campanha é pequena demais para CPA diário; avalie as conversões.

CélulaO que calculaFórmula
J2Mediana do histórico=MED(E2:E29)
J3MAD=MED(ABS(E2:E29-J2))
J4CPA atual=SOMA(C30:C36)/SOMA(D30:D36)
J5Variação=J4/J2-1
J6z robusto=(J4-J2)/(1,4826*J3/RAIZ(7))
J7Volume mínimo=SOMA(D2:D29)>=15
J8Alerta=E(J7;ABS(J5)>=0,12;ABS(J6)>=2,5)

Fórmulas em português, com ponto e vírgula; numa planilha em inglês, use MEDIAN, SUM, SQRT e AND. No Google Planilhas, envolva a fórmula do MAD em ARRAYFORMULA(); o Excel 365 aceita como está. Se quase todos os dias forem iguais, o MAD pode dar zero; use um piso como MÁXIMO(J3;0,02*J2).

Para conversões ou cliques, crie uma coluna F de resíduos nas linhas 2–29: =D2-MED(FILTRO($D$2:$D$29;$B$2:$B$29=B2)) no Excel 365, ou com FILTER no Google Planilhas. Calcule o MAD da coluna F do mesmo jeito e depois =(MÉDIA(D30:D36)-MÉDIA(D2:D29))/(1,4826*MAD/RAIZ(7)). Por fim, ordene as campanhas sinalizadas pela verba.

Com dezenas de contas, a planilha vira um trabalho à parte. A Borealis roda essas verificações toda manhã no Google Ads, aponta o fator e a campanha de cada mudança e manda um e-mail por projeto; outras plataformas chegam em breve.

Perguntas frequentes

Qual valor de z usar nos alertas de campanhas?

Não existe valor universal: o limite troca problemas perdidos por alarmes falsos. Um z robusto de 2,5 é um bom ponto de partida, com régua mais alta, como 3,5, para o urgente. Depois de um mês, revise: se a maioria dos alertas foi ruído, suba; se problemas reais passaram, desça.

Quanto histórico uma campanha nova precisa para detectar anomalias?

Pelo menos duas semanas completas, e quatro é melhor. Com menos, não dá para estimar quanto a campanha costuma variar, e toda mudança parece alarmante ou sem sentido. Use semanas inteiras e, até lá, acompanhe diretamente verba, entrega e rastreamento.

As regras automáticas do Google Ads detectam anomalias?

Só no sentido de limite fixo. Elas agem quando uma métrica atende a uma condição que você define, como CPA acima de um valor, e o mesmo número vale para campanhas de volatilidade bem diferente. Scripts do Google Ads podem calcular medianas e desvios, mas você escreve e mantém o código.

É melhor detectar anomalias por campanha ou pela conta inteira?

Por campanha, e depois consolide. O total da conta esconde movimentos que se compensam: o CPA de uma campanha dobra, outra melhora, e a conta parece estável. Quando a conta mexer, recalcule a métrica como se cada campanha mantivesse a taxa do histórico no volume atual; a maior diferença mostra onde olhar.

Como evitar alertas depois de um aumento de verba planejado?

Espere a mudança em vez de silenciá-la e confira se ela bate com o plano: mais verba deve aumentar investimento e conversões, talvez com CPA um pouco maior. Se tamanho e direção baterem, descarte o alerta; se o CPA subir muito além do previsto, ou as conversões não acompanharem a verba, é problema.