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ção | Limite fixo | Detecção pelo histórico |
|---|---|---|
| O que é normal | Um número para todas as campanhas | O histórico recente de cada campanha |
| Campanha volátil | Dispara com oscilações comuns | Faixa normal larga, fica quieta |
| Campanha estável | Não vê mudanças abaixo do limite | Faixa normal estreita, avisa cedo |
| Poucas conversões | Dispara por sorte | Espera um volume mínimo |
| Fim de semana | Volume “cai” todo sábado | Padrão semanal removido antes |
| CPA, taxa e conversões mexem juntos | Três alertas | Um alerta, com a causa |
| CPA sobe, ROAS sobe | Alerta de CPA | Mostra 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 limpo | Com o dia de 112 |
|---|---|---|
| Média | 40,00 | 45,00 |
| Desvio padrão | 1,30 | 19,32 |
| Mediana | 40,00 | 40,00 |
| MAD | 1,00 | 1,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:
| Dia | Semana 1 | Semana 2 | Esta semana |
|---|---|---|---|
| Segunda | 61 | 59 | 51 |
| Terça | 56 | 58 | 48 |
| Quarta | 55 | 53 | 46 |
| Quinta | 49 | 51 | 43 |
| Sexta | 45 | 43 | 37 |
| Sábado | 31 | 33 | 27 |
| Domingo | 38 | 35 | 30 |
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élula | O que calcula | Fórmula |
|---|---|---|
| J2 | Mediana do histórico | =MED(E2:E29) |
| J3 | MAD | =MED(ABS(E2:E29-J2)) |
| J4 | CPA atual | =SOMA(C30:C36)/SOMA(D30:D36) |
| J5 | Variação | =J4/J2-1 |
| J6 | z robusto | =(J4-J2)/(1,4826*J3/RAIZ(7)) |
| J7 | Volume mínimo | =SOMA(D2:D29)>=15 |
| J8 | Alerta | =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.