Analytics
Acesse dados de analytics incluindo contagens de reprodução, engajamento de conteúdo e métricas resumidas.
Escopo Necessário: analytics:read
Resumo de Analytics
Recupera um resumo agregado de analytics para o seu tenant.
GET /api/external/analytics/summaryExemplo de Requisição
curl -X GET "https://api.efflux.media/api/external/analytics/summary" \ -H "X-API-Key: SUA_API_KEY"const response = await fetch( 'https://api.efflux.media/api/external/analytics/summary', { headers: { 'X-API-Key': 'SUA_API_KEY' } });const summary = await response.json();import requests
response = requests.get( 'https://api.efflux.media/api/external/analytics/summary', headers={'X-API-Key': 'SUA_API_KEY'})summary = response.json()Resposta
{ "totalContent": 150, "activeContent": 85, "totalPlayers": 50, "totalPlays": 125000, "totalDurationSeconds": 3750000, "lastPlayedAt": "2024-01-20T18:45:30Z"}Objeto de Resumo de Analytics
| Campo | Tipo | Descrição |
|---|---|---|
totalContent | inteiro | Número total de itens de conteúdo |
activeContent | inteiro | Número de itens de conteúdo ativos |
totalPlayers | inteiro | Número total de dispositivos player |
totalPlays | inteiro | Contagem total de reproduções em todos os conteúdos |
totalDurationSeconds | inteiro | Duração total de reprodução em segundos |
lastPlayedAt | datetime | Timestamp do evento de reprodução mais recente |
Métricas Explicadas
Total de Conteúdo vs Conteúdo Ativo
- Total de Conteúdo: Todos os itens de conteúdo na sua biblioteca, independente do status
- Conteúdo Ativo: Apenas conteúdo com
status: activeque está disponível para reprodução
Contagens de Reprodução
- Total de Reproduções: Contagem acumulada de todas as reproduções de conteúdo
- Cada reprodução completa ou parcial de um item de conteúdo incrementa este contador
Métricas de Duração
- Total de Segundos de Duração: Soma de todas as durações de reprodução
- Útil para calcular tempo médio de visualização ou tempo total no ar
Para converter em formato legível:
function formatarDuracao(segundos) { const horas = Math.floor(segundos / 3600); const minutos = Math.floor((segundos % 3600) / 60); return `${horas}h ${minutos}m`;}
// Exemplo: 3750000 segundos = 1041h 40mconsole.log(formatarDuracao(3750000));Última Reprodução
- Timestamp do evento de reprodução mais recente em todo o conteúdo
- Útil para monitorar atividade do sistema e detectar problemas
Casos de Uso
Visão Geral do Dashboard
Exiba métricas de alto nível em um dashboard administrativo:
const summary = await fetchAnalyticsSummary();
const dashboard = { utilizacaoConteudo: `${summary.activeContent}/${summary.totalContent} ativos`, playersOnline: summary.totalPlayers, tempoTotalReproducao: formatarDuracao(summary.totalDurationSeconds), ultimaAtividade: new Date(summary.lastPlayedAt).toLocaleString('pt-BR')};Monitoramento de Saúde
Verifique se o sistema está reproduzindo conteúdo ativamente:
const summary = await fetchAnalyticsSummary();const umaHoraAtras = new Date(Date.now() - 60 * 60 * 1000);
if (new Date(summary.lastPlayedAt) < umaHoraAtras) { console.warn('Nenhuma atividade de reprodução na última hora'); // Disparar alerta ou investigação}Métricas de Engajamento
Calcule a duração média de reprodução:
const summary = await fetchAnalyticsSummary();const duracaoMediaReproducao = summary.totalDurationSeconds / summary.totalPlays;console.log(`Duração média de reprodução: ${duracaoMediaReproducao.toFixed(1)} segundos`);