Real-time vs batch analytics: trade-offs para marketing

Real-time analytics parece obrigatório até você perceber que 90% das decisões de marketing rodam em review semanal e batch de madrugada. Streaming brilha em alertas, personalização e ops — batch brilha em custo, qualidade e relatórios financeiros. Escolher errado gera fatura de Kafka para dashboard que ninguém olha às 3h, ou campanha otimizando ontem porque o dado chega D+1.
O que significa real-time vs batch em marketing?
Real-time (segundos a poucos minutos): eventos fluem para consumo quase imediato — alertas de conversão zero, personalização on-site, bidding intraday agressivo. Batch (horas a diário): jobs agendados consolidam, deduplicam, reconciliam com ERP e alimentam BI.
Muitos produtos “near real-time” (GA4 standard reports, exports hourly) ficam no meio — suficiente para operação, insuficiente para fraud detection sub-segundo.
Quando latência importa de verdade?
Casos legítimos: detecção de outage/tag quebrada, flash sale com estoque limitado, app financeiro com fraude, personalização de conteúdo na sessão, call center com intent ao vivo. Casos overrated: relatório executivo, atribuição multi-touch, LTV cohort — batch diário quase sempre basta.
Pergunta decisiva: qual decisão muda se eu souber em 5 minutos vs amanhã 8h? Se nenhuma, não pague real-time.
- Alerta tag/conversão: minutos importam
- Budget shift semanal: batch ok
- Personalização web: sub-minuto
- Fechamento financeiro: batch reconciliado
- CAPI offline: horas ok se documentado
Quais trade-offs de custo e complexidade?
Streaming exige infra (Pub/Sub, Kafka, Flink, Dataflow), dedup difícil, exactly-once caro, monitoramento 24/7. Batch usa SQL agendado, idempotente, barato em BigQuery/Snowflake off-peak.
Equipe pequena mantendo pipeline streaming + dbt batch duplicado = burnout. Unifique quando possível: stream só para casos que pagam; resto batch no mesmo warehouse.
| Cas de uso | Latência alvo | Padrão | Complexidade |
|---|---|---|---|
| Monitor tag purchase | 5–15 min | Scheduled query + alert | Baixa |
| Dashboard intraday spend | 1–4 h | Ads API batch hourly | Média |
| Personalização CMS | <1 s | Edge + feature flag | Alta |
| Executive P&L | Daily | Batch ERP+GA4 | Média |
| Fraud click | Segundos | Stream + rules | Alta |
GA4, BigQuery e o mito do tempo real?
GA4 UI tem atraso natural (até horas para dados estabilizarem). Intraday BQ ajuda ops, não substitui ERP. Real-time report GA4 mostra contagem grossa — não use para financeiro.
Para marketing mid-market: intraday + mart diário fechado cobre 95%. Streaming GA4→BQ raramente necessário vs export nativo batch.
Falso tempo real: armadilhas comuns?
Dashboard auto-refresh a cada 5 min em dados que atualizam diário — teatro. Ads API rate limit faz “live dashboard” mentir. Looker conectado a view pesada refresh constante = custo BQ explosivo.
Rotule claramente freshness: “última atualização 06:00”. Stakeholder informado não confunde atraso com queda de performance.
Como híbrido batch + streaming pragmático?
Lambda/kappa simplificado mid-market: stream só eventos críticos (purchase alert, error spike) para fila leve; bulk diário para tudo. Mesmo schema, dois caminhos — ou CDC do warehouse para ferramentas ops.
Reverse ETL batch (Census, Hightouch scheduled) para CRM/ads costuma bastar vs sync contínuo.
- Identificar ≤3 casos que exigem minutos
- Batch nightly como source of truth financeiro
- Stream para alertas, não para board deck
- Freshness SLA visível no dashboard
- Revisão anual: ainda precisamos stream?
Como decidir com stakeholders?
Workshop: liste decisões por cadência (minuto, hora, dia, semana). Estime custo infra + horas eng para cada latência. Apresente três cenários (batch only, híbrido, full stream) com preço e risco.
CEO pedindo “tempo real” often means “mais atual que planilha de ontem” — intraday batch resolve narrativa sem Kafka.
Checklist prático
- Mapa decisão→cadência→latência necessária
- Freshness SLA documentado por dashboard
- Batch nightly reconciliado com financeiro
- Alertas críticos em janela ≤15 min
- Custo mensal batch vs stream estimado
- Evitar refresh agressivo em views pesadas
- Rotulagem “última atualização” em todo tile
- Review anual de necessidade de streaming
Erros comuns
- Kafka para dashboard executivo semanal
- Confundir GA4 real-time report com receita auditável
- Auto-refresh Looker em query de TB-scale
- Streaming sem dedup de purchase
- Ignorar rate limit ads API em “live” board
- Copiar arquitetura big tech sem volume equivalente
Precisa mesmo de dado em tempo real?
A DataScroll ajuda a escolher real-time ou batch com base em decisão de negócio — não em hype de arquitetura.