Rastreamento da reprodução principal no Roku track-core-playback-on-roku
Esta documentação abrange o rastreamento na versão 2.x do SDK.
-
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:table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 3-align-center 7-align-center 11-align-center 15-align-center 19-align-center 23-align-center 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:table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 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:table 0-row-2 1-row-2 2-row-2 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:
code language-none mediaInfo = adb_media_init_mediainfo( "<MEDIA_NAME>", "<MEDIA_ID>", 600, ADBMobile().MEDIA_STREAM_TYPE_VOD, ADBMobile().MEDIA_TYPE_VIDEO )
ou
code language-none 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:
code language-none mediaInfo = adb_media_init_mediainfo( "<MEDIA_NAME>", "<MEDIA_ID>", 600, ADBMobile().MEDIA_STREAM_TYPE_AOD, ADBMobile().MEDIA_TYPE_AUDIO )
ou
code language-none 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.
- Metadados padrão
Implementar metadados padrão no Roku
<div class="extension note">
<div>NOTE</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:
code language-none 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:code language-none ADBMobile().mediaTrackSessionStart(mediaInfo,mediaContextData)
note tip TIP O segundo valor é o nome de objeto dos metadados de vídeo personalizados, criado na etapa 2. note important IMPORTANT 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 entretrackSessionStart
etrackPlay
).note note NOTE Se não estiver utilizando metadados de vídeo personalizados, basta enviar um objeto vazio para o argumento data
emtrackSessionStart
, 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
.code language-none ADBMobile().mediaTrackPlay()
-
Atualizar valor do indicador de reprodução
Quando o indicador de reprodução de mídia for alterado, notifique o SDK chamando a API
mediaUpdatePlayhead
.
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 poderá ser especificado como o número de segundos desde a meia-noite UTC daquele dia.code language-none ADBMobile().mediaUpdatePlayhead(position)
note note NOTE Considere o seguinte ao chamar a API mediaUpdatePlayhead
:- Ao usar marcadores de progresso, a duração do conteúdo é necessária e o indicador de reprodução precisa ser atualizado para o número de segundos desde o início do item de mídia, começando com 0.
- Ao usar SDKs de mídia, você deve chamar a 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
.code language-none 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
.code language-none ADBMobile().mediaTrackSessionEnd()
note important IMPORTANT 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 setrackComplete
() é chamado antes detrackSessionEnd
. Qualquer outra chamada de API detrack*
é ignorada depois detrackSessionEnd
, exceto portrackSessionStart
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
:code language-none 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 chametrackPause()
:- O usuário faz uma pausa explicitamente no aplicativo.
- O player se coloca no estado Pausa.
- (Aplicativos móveis) - O usuário coloca o aplicativo em segundo plano, mas você deseja que ele mantenha a sessão aberta.
- (Aplicativos móveis) - Qualquer tipo de interrupção de sistema que ocorra e faça com que um aplicativo seja colocado em segundo plano. Por exemplo, o usuário recebe uma chamada ou um pop-up de outro aplicativo ocorre, mas você deseja que o aplicativo mantenha a sessão ativa para que o usuário possa retomar o vídeo do ponto em que foi interrompido.
-
Identifique o evento do reprodutor para reprodução e/ou continuação do vídeo a partir da pausa e chame
trackPlay
:code language-none ADBMobile().mediaTrackPlay()
note tip TIP Esta pode ser a mesma fonte de evento utilizada na Etapa 4. Verifique se cada chamada trackPause()
da API está emparelhada a uma chamadatrackPlay()
da API quando a reprodução continuar.
- Cenários de rastreamento: Reprodução de VOD sem anúncios
- Reprodutor de exemplo incluído com o SDK do Roku para um exemplo completo de rastreamento.