Pular para o conteúdo principal

Analytics e Monitoramento

📊 Dados que importam: Dashboard, métricas por canal, séries temporais e insights de engajamento

A Notifica fornece analytics completos para você entender e otimizar suas notificações. Este guia cobre:

  • Visão geral de métricas
  • Analytics por canal
  • Séries temporais
  • Top templates e performance

Visão geral (Overview)

curl https://app.usenotifica.com.br/v1/analytics/overview \
-H "Authorization: Bearer nk_live_sua_chave" \
-H "Content-Type: application/json" \
-d '{
"period": "last_30_days"
}'

Resposta:

{
"period": {
"start": "2023-12-16T00:00:00Z",
"end": "2024-01-15T23:59:59Z"
},
"summary": {
"total_sent": 152430,
"total_delivered": 148120,
"delivery_rate": 97.17,
"total_opened": 89230,
"open_rate": 60.24,
"total_clicked": 28450,
"click_rate": 19.21,
"total_failed": 4310,
"failure_rate": 2.83,
"total_bounced": 1850,
"bounce_rate": 1.21
},
"comparison": {
"sent": { "value": 152430, "change": 12.5, "trend": "up" },
"delivery_rate": { "value": 97.17, "change": 1.2, "trend": "up" },
"open_rate": { "value": 60.24, "change": -2.1, "trend": "down" }
}
}

Analytics por canal

curl https://app.usenotifica.com.br/v1/analytics/channels \
-H "Authorization: Bearer nk_live_sua_chave" \
-d '{
"period": "last_30_days",
"channels": ["email", "whatsapp", "sms", "in_app"]
}'

Resposta:

{
"period": "last_30_days",
"channels": {
"email": {
"sent": 85420,
"delivered": 82150,
"delivery_rate": 96.17,
"opened": 52300,
"open_rate": 63.66,
"clicked": 18500,
"click_rate": 22.52,
"bounced": 1850,
"bounce_rate": 2.17,
"complained": 45,
"complaint_rate": 0.05
},
"whatsapp": {
"sent": 45000,
"delivered": 44800,
"delivery_rate": 99.56,
"read": 44200,
"read_rate": 98.66,
"replied": 3200,
"reply_rate": 7.14
},
"sms": {
"sent": 18000,
"delivered": 17200,
"delivery_rate": 95.56,
"replied": 450,
"reply_rate": 2.62
},
"in_app": {
"sent": 4010,
"delivered": 4010,
"delivery_rate": 100.0,
"opened": 3890,
"open_rate": 97.01,
"clicked": 2100,
"click_rate": 52.37
}
}
}

Insights por canal

CanalQuando usarMétrica chave
EmailComunicações detalhadas, faturasTaxa de abertura > 25%
WhatsAppUrgente, alta aberturaTaxa de leitura > 90%
SMSAlertas críticos, OTPsTaxa de entrega > 95%
In-AppEngajamento no produtoTaxa de clique > 40%

Séries temporais

curl "https://app.usenotifica.com.br/v1/analytics/timeseries?period=last_30_days&granularity=day" \
-H "Authorization: Bearer nk_live_sua_chave"

Resposta:

{
"granularity": "day",
"data": [
{
"date": "2024-01-01",
"sent": 5200,
"delivered": 5050,
"opened": 3200,
"clicked": 980,
"failed": 150
},
{
"date": "2024-01-02",
"sent": 4800,
"delivered": 4650,
"opened": 2800,
"clicked": 850,
"failed": 150
}
// ... mais dias
]
}

Granularidades disponíveis

  • hour — Últimas 24 horas
  • day — Últimos 90 dias
  • week — Últimos 52 semanas
  • month — Últimos 24 meses

Top templates

curl https://app.usenotifica.com.br/v1/analytics/templates \
-H "Authorization: Bearer nk_live_sua_chave" \
-d '{
"period": "last_30_days",
"limit": 10,
"sort_by": "sent"
}'

Resposta:

{
"period": "last_30_days",
"templates": [
{
"id": "tmpl_welcome",
"name": "welcome_email",
"channel": "email",
"sent": 45200,
"delivered": 43800,
"delivery_rate": 96.90,
"opened": 32500,
"open_rate": 74.20,
"clicked": 12800,
"click_rate": 29.22
},
{
"id": "tmpl_order_conf",
"name": "order_confirmation",
"channel": "whatsapp",
"sent": 32100,
"delivered": 31950,
"delivery_rate": 99.53,
"read": 31500,
"read_rate": 98.59
}
]
}

Dashboard em tempo real

O dashboard da Notifica oferece:

Métricas em tempo real

  • Notificações enviadas por minuto
  • Taxa de entrega ao vivo
  • Filas e processamento

Gráficos

  • Volume por canal (linha temporal)
  • Taxas de conversão (funil)
  • Mapa de calor de entregas (por hora/dia)
  • Comparação período anterior

Alertas

Configure alertas para:

  • Taxa de bounce > 5%
  • Taxa de falha > 10%
  • Volume anormal (spike ou drop)
  • Qualidade de WhatsApp caindo

Código: Relatórios automatizados

Node.js — Relatório diário

const cron = require('node-cron');

// Todo dia às 9h, enviar relatório para o time
cron.schedule('0 9 * * *', async () => {
const yesterday = new Date();
yesterday.setDate(yesterday.getDate() - 1);

const report = await fetch(
`${NOTIFICA_URL}/analytics/overview`,
{
method: 'POST',
headers: { 'Authorization': `Bearer ${API_KEY}` },
body: JSON.stringify({
period: 'last_24_hours',
date: yesterday.toISOString().split('T')[0]
})
}
).then(r => r.json());

// Enviar para Slack/Email
await sendToSlack({
text: `📊 Relatório de Notificações - ${yesterday.toLocaleDateString('pt-BR')}`,
attachments: [
{
fields: [
{ title: 'Enviadas', value: report.summary.total_sent, short: true },
{ title: 'Taxa de Entrega', value: `${report.summary.delivery_rate}%`, short: true },
{ title: 'Taxa de Abertura', value: `${report.summary.open_rate}%`, short: true },
{ title: 'Taxa de Clique', value: `${report.summary.click_rate}%`, short: true }
]
}
]
});
});

Python — Exportar CSV

import csv
import requests
from datetime import datetime, timedelta

def export_analytics_csv(start_date: str, end_date: str, filename: str):
# Buscar dados da API
response = requests.post(
f'{BASE_URL}/analytics/timeseries',
headers={'Authorization': f'Bearer {API_KEY}'},
json={
'period': 'custom',
'start_date': start_date,
'end_date': end_date,
'granularity': 'day'
}
)
data = response.json()['data']

# Exportar para CSV
with open(filename, 'w', newline='') as f:
writer = csv.DictWriter(f, fieldnames=[
'date', 'sent', 'delivered', 'opened',
'clicked', 'failed', 'delivery_rate'
])
writer.writeheader()

for row in data:
row['delivery_rate'] = round(
row['delivered'] / row['sent'] * 100, 2
) if row['sent'] > 0 else 0
writer.writerow(row)

print(f'Relatório exportado: {filename}')

# Uso
export_analytics_csv(
'2024-01-01',
'2024-01-31',
'relatorio_janeiro.csv'
)

Benchmarks da indústria

Compare seus números com a média do mercado:

MétricaBoaExcelente
Taxa de entrega (email)> 95%> 98%
Taxa de abertura (email)> 20%> 35%
Taxa de clique (email)> 2%> 5%
Taxa de entrega (WhatsApp)> 95%> 99%
Taxa de leitura (WhatsApp)> 90%> 98%
Taxa de bounce< 2%< 0.5%
Taxa de reclamação< 0.1%< 0.05%

Otimizando performance

Se sua taxa de abertura está baixa

  1. Melhore o assunto — Personalize, use emojis, teste A/B
  2. Horário de envio — Evite madrugada, teste manhã/tarde
  3. Segmente — Envie conteúdo relevante para cada público
  4. Limpe sua lista — Remova emails inativos

Se sua taxa de entrega está baixa

  1. Verifique DNS — DKIM, SPF, DMARC configurados?
  2. Reputação de domínio — Use ferramentas como Sender Score
  3. Conteúdo — Evite palavras de spam, equilibre texto/imagem
  4. Warm up — Aumente volume gradualmente para novos domínios

Se sua taxa de bounce está alta

  1. Double opt-in — Confirme emails no cadastro
  2. Valide na entrada — Use serviços de validação de email
  3. Limpeza periódica — Remova hard bounces imediatamente

FAQ

Q: Dados ficam disponíveis por quanto tempo?
A: 2 anos para analytics agregados, 90 dias para logs detalhados.

Q: Posso exportar dados brutos?
A: Sim, via API ou solicite exportação em CSV/JSON para o suporte.

Q: Tem integração com Google Analytics?
A: Em breve! Por enquanto, use UTM tags nos links e webhooks.

Q: Consigo ver dados em tempo real?
A: Sim, o dashboard atualiza a cada 30 segundos.


Próximo passo

Parabéns! Você completou todos os guias de integração. Agora explore a API Reference Completa para consultar todos os endpoints disponíveis.

Para suporte: [email protected]