---
id: agencias/guardiao-de-midia
industria: Agências de marketing
uso: comum
esforco: médio
grao: Alerta por cliente x tipo x rede x objeto x dia
---

# Guardião de mídia

Todo dia de manhã, a lista curta do que quebrou na carteira: conta que zerou, campanha que parou de converter, conta sem ajuste, saldo acabando e fonte parada.

## Resumo executivo

**Para quem:** Agências com muitas contas de mídia e um time que não consegue olhar todas todo dia.

**O que resolve**

- A agência sabe do problema antes do cliente.
- O alerta só dispara quando há problema real, não por fonte atrasada ou objetivo errado.
- Conta pré-paga não para por falta de saldo sem aviso.

**Por que importa:** Campanha parada há dias é dinheiro do cliente indo embora e, quando ele percebe antes, a confiança na agência cai. Um guardião confiável libera o time de conferir conta por conta e transforma o problema em tarefa com dono no mesmo dia.

**Perguntas de negócio que responde**

- Quais contas zeraram ontem?
- Que clientes estão sem ajuste há mais de 7 dias?
- Quais contas pré-pagas ficam sem saldo esta semana?
- Alguma fonte está atrasada e pode estar escondendo um problema?
- Qual campanha parou de converter e quanto já gastou desde então?

**O que você precisa**

- Mídia da carteira numa tabela diária com o cliente de cada linha
- Registro conta para cliente com as contas oficiais e o status
- Um canal de envio (Chat, Slack, Discord) ou gerenciador de tarefas

**O que você recebe**

- Tabela diária de alertas com chave e estado
- Monitor de saldo das contas pré-pagas com dias até zerar
- Monitor de frescor das fontes
- Mensagem diária escrita por IA para a liderança

## Detalhado

### O problema

Com dezenas de contas, ninguém olha todas todo dia. A agência descobre a campanha pausada, a conta sem saldo ou a conversão zerada quando o cliente reclama. E o alerta mal feito é pior: dispara todo dia por fonte atrasada ou por campanha de alcance sem lead, e o time aprende a ignorar.

### Regras de negócio

1. **Fonte parada não é rede parada.** Antes de dizer que zerou, confira se a fonte sincronizou, pela execução dela na Nekt. Sem sincronização, o alerta é FONTE_SEM_SYNC. Só com a fonte viva o gasto zero vira REDE_ZERADA. Não gere alerta de performance sobre fonte degradada. (Evite: Alertar zero de gasto de um conector que não rodou.)
2. **Tolerância de atraso pela cadência da fonte.** Atraso = data esperada menos a maior data na tabela. Tolerâncias usadas: Meta e Google D-1; LinkedIn e GA4 D-2; automação de marketing D-3. Fonte semanal: intervalo entre extrações mais 2 dias de folga (9 dias). Se a cadência mudar, o limite muda junto. Conta pausada de propósito no registro não alerta. (Evite: Limite fixo de 2 dias para todas as fontes.)
3. **Cobrança pela otimização, não pelo nome.** Campanha de alcance, tráfego ou vídeo não é cobrada por conversão. O que define é optimization_goal do conjunto e o evento otimizado, não TOFU, MOFU ou BOFU no nome da campanha. (Evite: Alerta de zero leads numa campanha de alcance.)
4. **Zerou é parar de converter com gasto.** CAMPANHA_ZEROU só quando há gasto na janela recente, zero conversão do evento otimizado e conversões no histórico anterior. A mensagem traz rede, gasto desde a parada e o histórico. REDE_ZERADA é a rede com verba no plano e sem gasto. (Evite: Chamar de zerada a campanha que nunca converteu ou que está sem gasto.)
5. **Janelas curtas contra a base.** Compare os 7 dias até ontem com os 7 anteriores e com a base de 28 dias. Mostre sempre leads por dia nos últimos 7, 15 e 30 dias. Dia de referência é ontem, último dia completo no fuso do cliente. (Evite: Olhar só o total de 30 dias.)
6. **Ajuste humano exclui o automático.** Sem ajuste = cliente com investimento nos últimos 7 dias e nenhuma alteração humana há mais de 7 dias, avaliado por rede. Meta: actor_name diferente de 'Meta' no histórico de alterações. Google: interface, Editor, app, recomendações aplicadas e upload em massa; ficam de fora scripts, regras automáticas e API. (Evite: Contar qualquer evento do histórico como ajuste.)
7. **Saldo pela semântica da conta.** Em conta pré-paga (is_prepay_account verdadeiro), balance é crédito restante; em pós-paga, é valor devido. Guarde o balance bruto com nome neutro e derive saldo disponível só quando a Meta o expõe. Dias até zerar = saldo disponível / gasto médio diário dos últimos 7 dias. Se há taxa sobre o PIX (ex.: 12,15%), o saldo líquido é menor que o valor pago. (Evite: Tratar balance como saldo em toda conta.)
8. **Só as contas oficiais do cliente.** A tabela de contas de uma fonte lista todas as contas que a credencial enxerga no Business Manager, inclusive encerradas e de terceiros. Filtre pelo account_id oficial do registro conta para cliente. Conta com account_status diferente de ativo e gasto zero com fonte viva vira alerta de pagamento. (Evite: Monitorar saldo de todas as contas da tabela.)
9. **Alerta com chave e estado.** Chave estável cliente|tipo|rede|objeto. Estado persistente: novo, recorrente, resolvido. O mesmo alerta não é reenviado; todo dia se confere se apagou. Dicas de otimização esperam 7 dias de maturação antes de serem reavaliadas. (Evite: Mandar a lista inteira todo dia.)
10. **Regra em SQL, texto pela IA.** A detecção é SQL sobre as tabelas do dia. O LLM só redige a mensagem a partir dos alertas, com rede, valor e o que conferir primeiro. Se a tabela de alertas não é do dia, a mensagem avisa que o dado está velho. (Evite: Pedir ao modelo para descobrir anomalias nos dados crus.)

### Tipos de alerta

Avaliados na ordem: primeiro a fonte, depois a conta, depois a performance.

- **FONTE_SEM_SYNC** → Fonte sem sincronizar (`atraso acima da tolerância ou última execução com falha`)
- **CONTA_COM_PROBLEMA** → Pagamento ou conta bloqueada (`account_status diferente de ativo`)
- **SALDO_BAIXO** → Saldo acabando (`saldo / gasto médio de 7d abaixo de N dias`)
- **REDE_ZERADA** → Rede com verba e sem gasto (`fonte viva e gasto zero`)
- **CAMPANHA_ZEROU** → Parou de converter (`gasto recente, conversão zero, histórico com conversão`)
- **QUEDA_RESULTADO** → Queda contra a base (`7d contra 7d anteriores e base de 28d`)
- **RITMO_VERBA** → Ritmo de verba fora do plano (`gasto acumulado contra verba proporcional aos dias`)
- **SEM_AJUSTE** → Sem ajuste humano (`gasto em 7d e nenhuma alteração humana há mais de 7d`)
- **ALCANCE, TRÁFEGO, VÍDEO** → Sem cobrança de conversão (`avaliar por CPM, alcance e frequência`)

### Definições

| Métrica | Definição |
|---|---|
| Dia de referência | ontem, último dia completo no fuso do cliente |
| Janela 7d | os 7 dias até ontem; 7d anterior são os 7 dias antes dela; base são os últimos 28 dias |
| Fonte atrasada | data esperada menos a maior data da tabela, acima da tolerância da fonte |
| Ajuste humano | evento do histórico de alterações feito por pessoa; no Meta, actor_name diferente de 'Meta' |
| Saldo disponível | crédito restante de conta pré-paga informado pela Meta; nunca derivado do balance de conta pós-paga |
| Dias até zerar | saldo disponível / gasto médio diário dos últimos 7 dias |
| Alerta aberto | chave cliente|tipo|rede|objeto presente no dia; resolvido quando some na reavaliação |

### Armadilhas

- **Campanha pausada que ninguém viu.** O cliente tinha volume normal de leads no mês, mas o corte diário mostrava seis dias seguidos sem nenhum lead. Como evitar: Leads por dia em 7, 15 e 30 dias, sempre.
- **Alarme constante.** As fontes passaram a rodar uma vez por semana e o limite de 2 dias acusava toda conta. O time parou de ler o alerta. Como evitar: Limite derivado da cadência: intervalo mais 2 dias.
- **Zero que era conector parado.** A rede aparecia zerada porque a fonte não tinha rodado, e o time foi mexer na campanha. Como evitar: Checar a execução da fonte antes do alerta de rede.
- **Saldo de conta que não é do cliente.** A tabela de contas trouxe o Business Manager inteiro, com contas encerradas e de terceiros no monitor de saldo. Como evitar: Filtrar pelo account_id oficial de cada cliente.
- **Cartão vencido.** O cartão da conta expirou e os anúncios pararam em silêncio por dias. Como evitar: Alertar status da conta e gasto zero com fonte viva.
- **A mesma dica todo dia.** Dicas de otimização repetidas diariamente viraram ruído antes de qualquer um agir. Como evitar: Chave estável, uma tarefa por dica e 7 dias de maturação.

Validado em dados reais: Na conta de Meta Ads da própria Nekt, 27% dos eventos de uma semana do histórico de alterações tinham actor_name 'Meta' (mudança automática de status de entrega, primeira veiculação e cobrança). Contados como ajuste, fariam uma conta parada parecer cuidada. Na mesma fonte, a tabela de contas lista 9 contas do Business Manager, com pré-pagas, pós-pagas e encerradas misturadas, e só 1 delas tem entrega.

### Teste de aceitação

- [ ] Num dia em que uma fonte não rodou, o cliente dela aparece com FONTE_SEM_SYNC e sem nenhum alerta de performance daquela rede.
- [ ] Nenhuma campanha com otimização de alcance, tráfego ou vídeo aparece em CAMPANHA_ZEROU.
- [ ] Reprocessar o mesmo dia não reenvia alertas já enviados, e um alerta que sumiu fica como resolvido no dia seguinte.
- [ ] Para uma conta pré-paga, o saldo bate com a tela de cobrança do Gerenciador, e dias até zerar = saldo / gasto médio dos últimos 7 dias.
- [ ] O número de contas no monitor de saldo é igual ao número de contas oficiais no registro conta para cliente.

### Context document

```text
Guardião de mídia
- Dia de referência = ontem, último dia completo no fuso do cliente.
- Antes de qualquer alerta de performance, verifique a fonte. Atraso acima da tolerância (Meta e Google D-1, LinkedIn e GA4 D-2, automação de marketing D-3, fonte semanal intervalo + 2 dias) = FONTE_SEM_SYNC, e não se analisa performance dessa rede.
- Gasto zero com fonte viva e verba no plano = REDE_ZERADA.
- CAMPANHA_ZEROU = gasto recente, zero conversão do evento otimizado e conversões no histórico. Informe rede, gasto e histórico.
- Campanhas de alcance, tráfego e vídeo (pelo optimization_goal, não pelo nome) não são cobradas por conversão.
- Compare 7 dias contra os 7 anteriores e contra a base de 28 dias. Sempre mostre leads por dia em 7, 15 e 30 dias.
- Sem ajuste = investimento nos últimos 7 dias e nenhuma alteração humana há mais de 7 dias. No Meta, humano é actor_name diferente de 'Meta'.
- Saldo só para as contas oficiais do registro. Pré-paga: balance é crédito; pós-paga: balance é valor devido. Dias até zerar = saldo / gasto médio de 7 dias.
- Cada alerta tem chave cliente|tipo|rede|objeto e estado (novo, recorrente, resolvido). Não repita alerta já enviado.
Exceções por cliente:
- <cliente>: conta compartilhada; só entram campanhas com <termo> no nome.
- <cliente>: conta pré-paga via PIX com taxa de <x>%; avisar quando faltarem <n> dias de saldo.
- <cliente>: fonte <plataforma> roda semanalmente; tolerância de <n> dias.
```

### Variações

- **Plano x realizado:** Alertas por linha do plano: sem vínculo, sem entrega, fora do período, fora do plano e ritmo de verba.
- **Dicas de otimização:** Vazamento sem conversão, CPA alto, escalar e criativo cansado, com maturação de 7 dias.
- **Saldo no Google Ads:** Orçamento da conta e projeção de encerramento no mês pelo ritmo de gasto.
