Esta documentação abrange o rastreamento na versão 2.x do SDK.
Se estiver implementando uma versão 1.x do SDK, você pode baixar o Guia dos desenvolvedores 1.x para Android aqui: Baixar SDKs.
Configuração de rastreamento inicial
Identifique quando o usuário aciona a intenção de reproduzir (o usuário clica em Reproduzir e/ou a reprodução automática está ativada) e crie uma instância MediaObject
.
Nome da variável | Descrição | Obrigatório |
---|---|---|
name |
Nome da mídia | Sim |
mediaId |
Identificador exclusivo de mídia | Sim |
length |
Duração da mídia | Sim |
streamType |
Tipo de fluxo (consulte Constantes de StreamType abaixo) | Sim |
mediaType |
Tipo de mídia (consulte Constantes de MediaType abaixo) | Sim |
StreamType
Constantes de:
Nome da constante | Descrição |
---|---|
VOD |
Tipo de fluxo para vídeo sob demanda. |
LIVE |
Tipo de fluxo para conteúdo LIVE. |
LINEAR |
Tipo de fluxo para conteúdos lineares. |
AOD |
Tipo de fluxo para áudio sob demanda |
AUDIOBOOK |
Tipo de fluxo para audiobook |
PODCAST |
Tipo de fluxo para podcast |
MediaType
Constantes de:
Nome da constante | Descrição |
---|---|
Audio |
Tipo de mídia para fluxos de áudio. |
Video |
Tipo de mídia para fluxos de vídeo. |
MediaHeartbeat.createMediaObject(<MEDIA_NAME>,
<MEDIA_ID>, <MEDIA_LENGTH>, <STREAM_TYPE>, <MEDIA_TYPE>);
Anexar metadados
Opcionalmente, anexe objetos de metadados padrão e/ou personalizados à sessão de rastreamento por meio de variáveis de dados de contexto.
Metadados padrão
Implementar metadados padrão no Android
Anexar o objeto de metadados padrão ao objeto de mídia é opcional.
Metadados personalizados
Crie um dicionário para as variáveis personalizadas e preencha com os dados desta mídia. Por exemplo:
HashMap<String, String> mediaMetadata =
new HashMap<String, String>();
mediaMetadata.put("isUserLoggedIn", "false");
mediaMetadata.put("tvStation", "Sample TV Station");
mediaMetadata.put("programmer", "Sample programmer");
Rastrear a intenção de iniciar a reprodução
Para começar a rastrear uma sessão de mídia, chame trackSessionStart
na instância do Heartbeat de mídia. Por exemplo:
public void onVideoLoad(Observable observable, Object data) {
_heartbeat.trackSessionStart(mediaInfo, mediaMetadata);
}
O segundo valor é o nome de objeto dos metadados de mídia personalizados, criado na etapa 2.
trackSessionStart
rastreia a intenção de reproduzir do usuário e não o início da reprodução. Essa API é utilizada para carregar os dados/metadados de mídia e estimar a métrica de tempo do início de QoS (duração entre trackSessionStart
e trackPlay
).
Se não estiver utilizando metadados de mídia personalizados, basta enviar um objeto vazio para o argumento em trackSessionStart
.
Rastrear o início real da reprodução
Identifique o evento do reprodutor de mídia para o início da reprodução, em que o primeiro quadro da mídia é renderizado na tela, e chame trackPlay
:
// Video is rendered on the screen) and call trackPlay.
public void onVideoPlay(Observable observable, Object data) {
_heartbeat.trackPlay();
}
Rastrear a conclusão da reprodução
Identifique o evento do reprodutor de mídia para a conclusão da reprodução, em que o usuário assistiu ao conteúdo até o fim, e chame trackComplete
:
public void onVideoComplete(Observable observable, Object data) {
_heartbeat.trackComplete();
}
Rastrear o final da sessão
Identifique o evento do reprodutor de mídia para o descarregamento/encerramento da reprodução, em que o usuário fecha a mídia, e/ou a mídia é concluída e descarregada, e chame trackSessionEnd
:
// Closes the media and/or the media completed and unloaded,
// and call trackSessionEnd().
public void onMainVideoUnload(Observable observable, Object data) {
_heartbeat.trackSessionEnd();
}
trackSessionEnd
marca o fim de uma sessão de rastreamento de mídia. Se a sessão tiver sido assistida até o final, onde o usuário assistiu ao conteúdo até o fim, verifique se trackComplete
() é chamado antes de trackSessionEnd
. Qualquer outra chamada de API de track*
é ignorada depois de trackSessionEnd
, exceto por trackSessionStart
para uma nova sessão de rastreamento de mídia.
Rastrear todos os cenários de pausa possíveis
Identifique o evento no reprodutor de mídia para pausa de mídia e chame trackPause
:
public void onVideoPause(Observable observable, Object data) {
_heartbeat.trackPause();
}
Pausar cenários
Identifique qualquer cenário no qual o reprodutor de vídeo será pausado e verifique se trackPause
foi chamado corretamente. Os seguintes cenários exigem que o aplicativo chame trackPause()
:
Identifique o evento do reprodutor para reprodução e/ou retomada da pausa da mídia e chame trackPlay
.
// trackPlay()
public void onVideoPlay(Observable observable, Object data) {
_heartbeat.trackPlay();
}
Esta pode ser a mesma fonte de evento utilizada na Etapa 4. Verifique se cada chamada da API de trackPause()
está emparelhada a uma chamada da API de trackPlay()
quando a reprodução de mídia for retomada.
Consulte as informações adicionais sobre o rastreamento da reprodução principal: