Pular para o conteúdo

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/summary

Exemplo de Requisição

Terminal window
curl -X GET "https://api.efflux.media/api/external/analytics/summary" \
-H "X-API-Key: SUA_API_KEY"

Resposta

{
"totalContent": 150,
"activeContent": 85,
"totalPlayers": 50,
"totalPlays": 125000,
"totalDurationSeconds": 3750000,
"lastPlayedAt": "2024-01-20T18:45:30Z"
}

Objeto de Resumo de Analytics

CampoTipoDescrição
totalContentinteiroNúmero total de itens de conteúdo
activeContentinteiroNúmero de itens de conteúdo ativos
totalPlayersinteiroNúmero total de dispositivos player
totalPlaysinteiroContagem total de reproduções em todos os conteúdos
totalDurationSecondsinteiroDuração total de reprodução em segundos
lastPlayedAtdatetimeTimestamp 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: active que 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 40m
console.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`);

Endpoints Futuros