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 os Guias dos desenvolvedores 1.x 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
.
MediaObject
referência:
Nome da variável | Descrição | Obrigatório |
---|---|---|
name |
Nome do vídeo | Sim |
mediaid |
identificador exclusivo do vídeo | Sim |
length |
Duração do vídeo | Sim |
streamType |
Tipo de fluxo (consulte Constantes de StreamType abaixo) | Sim |
mediaType |
Tipo de mídia (consulte Constantes de MediaType abaixo) | Sim |
StreamType
Constantes:
Nome da constante | Descrição |
---|---|
MEDIA_STREAM_TYPE_VOD |
Tipo de fluxo para vídeo sob demanda. |
MEDIA_STREAM_TYPE_LIVE |
Tipo de fluxo para conteúdo LIVE. |
MEDIA_STREAM_TYPE_LINEAR |
Tipo de fluxo para conteúdos lineares. |
MEDIA_STREAM_TYPE_AOD |
Tipo de fluxo para áudio sob demanda |
MEDIA_STREAM_TYPE_AUDIOBOOK |
Tipo de fluxo para audiobook |
MEDIA_STREAM_TYPE_PODCAST |
Tipo de fluxo para podcast |
MediaType
Constantes:
Nome da constante | Descrição |
---|---|
MEDIA_STREAM_TYPE_AUDIO |
Tipo de mídia para fluxos de áudio. |
MEDIA_STREAM_TYPE_VIDEO |
Tipo de mídia para fluxos de vídeo. |
Crie um objeto de informações de mídia para vídeo com conteúdo de VOD:
mediaInfo = adb_media_init_mediainfo(
"<MEDIA_NAME>",
"<MEDIA_ID>",
600,
ADBMobile().MEDIA_STREAM_TYPE_VOD,
ADBMobile().MEDIA_TYPE_VIDEO
)
ou
mediaInfo = adb_media_init_mediainfo()
mediaInfo.name = "<MEDIA_NAME>"
mediaInfo.id = "<MEDIA_ID>"
mediaInfo.length = 600
mediaInfo.streamType = ADBMobile().MEDIA_STREAM_TYPE_VOD
mediaInfo.mediaType = ADBMobile().MEDIA_TYPE_VIDEO
Crie um objeto de informações de mídia para vídeo com conteúdo AOD:
mediaInfo = adb_media_init_mediainfo(
"<MEDIA_NAME>",
"<MEDIA_ID>",
600,
ADBMobile().MEDIA_STREAM_TYPE_AOD,
ADBMobile().MEDIA_TYPE_AUDIO
)
ou
mediaInfo = adb_media_init_mediainfo()
mediaInfo.name = "<MEDIA_NAME>"
mediaInfo.id = "<MEDIA_ID>"
mediaInfo.length = 600
mediaInfo.streamType = ADBMobile().MEDIA_STREAM_TYPE_AOD
mediaInfo.mediaType = ADBMobile().MEDIA_TYPE_AUDIO
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.
Implementar metadados padrão no Roku
<div class="extension note">
<div>OBSERVAÇÃO</div>
<div>
<p>Anexar o objeto de metadados de vídeo padrão ao objeto de mídia é opcional.</p>
</div>
</div>
Metadados personalizados
Crie um objeto variável para as variáveis personalizadas e preencha com os dados deste vídeo. Por exemplo:
mediaContextData = {}
mediaContextData["cmk1"] = "cmv1"
mediaContextData["cmk2"] = "cmv2"
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 Media Heartbeat:
ADBMobile().mediaTrackSessionStart(mediaInfo,mediaContextData)
O segundo valor é o nome de objeto dos metadados de vídeo 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 vídeo 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 vídeo personalizados, basta enviar um objeto vazio para o argumento data
em trackSessionStart
, como mostrado na linha comentada do exemplo de iOS acima.
Rastrear o início real da reprodução
Identifique o evento no reprodutor de vídeo a partir do início da reprodução, onde o primeiro quadro do vídeo é renderizado na tela, e chame trackPlay
.
ADBMobile().mediaTrackPlay()
Atualizar valor do indicador de reprodução
Quando o indicador de reprodução de mídia for alterado, notifique o SDK, chamando o mediaUpdatePlayhead
API.
Para vídeos sob demanda (VOD), o valor é especificado em segundos a partir do início do item de mídia.
Para transmissões ao vivo, se o player não fornecer informações sobre a duração do conteúdo, o valor pode ser especificado como o número de segundos desde a meia-noite UTC daquele dia.
ADBMobile().mediaUpdatePlayhead(position)
Considere o seguinte ao chamar o mediaUpdatePlayhead
API:
mediaUpdatePlayhead
pelo menos uma vez por segundo.Rastrear a conclusão da reprodução
Identifique o evento no reprodutor de vídeo para a conclusão da reprodução, onde o usuário assistiu ao conteúdo até o fim, e chame trackComplete
.
ADBMobile().mediaTrackComplete()
Rastrear o final da sessão
Identifique o evento no reprodutor de vídeo para o descarregamento/encerramento da reprodução, onde o usuário fecha o vídeo, e/ou ele é concluído e descarregado, e chame trackSessionEnd
.
ADBMobile().mediaTrackSessionEnd()
trackSessionEnd
marca o fim de uma sessão de rastreamento de vídeo. 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 vídeo.
Rastrear todos os cenários de pausa possíveis
Identifique o evento no reprodutor de vídeo para vídeos pausados e chame trackPause
:
ADBMobile().mediaTrackPause()
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 continuação do vídeo a partir da pausa e chame trackPlay
:
ADBMobile().mediaTrackPlay()
Esta pode ser a mesma fonte de evento utilizada na Etapa 4. Verifique se cada chamada trackPause()
da API está emparelhada a uma chamada trackPlay()
da API quando a reprodução continuar.