Os diagramas a seguir ilustram a linha do tempo do indicador de reprodução e a linha do tempo correspondente das ações de um usuário. Os pormenores de cada ação e os pedidos que a acompanham são apresentados a seguir.
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
Botão Reproduzir automaticamente ou Reproduzir pressionado, o vídeo começa a carregar. | 0 | 0 | /api/v1/sessions |
Essa chamada sinaliza a intenção do usuário de reproduzir um vídeo.
Retorna uma ID de sessão ({sid}
) ao cliente usada para identificar todas as chamadas de rastreamento subsequentes na sessão. O estado do player ainda não é “reproduzindo”, mas “iniciando”.
Os parâmetros obrigatórios da sessão devem ser incluídos no mapa params
no corpo da solicitação. Para obter informações sobre sessões, consulte a documentação da API da coleção de mídia.
No back-end, essa chamada gera uma chamada de inicialização do Adobe Analytics.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType":"sessionStart, params" {
"media.playerName": "sample-html5-api-player",
"analytics.trackingServer": "[ _YOUR_TS_ ]",
"analytics.reportSuite": "[ _YOUR_RSID_ ]",
"analytics.visitorId": "[ _YOUR_VISITOR_ID_ ]",
"media.contentType": "VOD",
"media.length": 60.3333333333333,
"media.id": "VA API Sample Player",
"visitor.marketingCloudOrgId": "[YOUR_MCID]",
"media.name": "ClickMe",
"media.channel": "sample-channel",
"media.sdkVersion": "va-api-0.0.0",
"analytics.enableSSL": false
}
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
Temporizador do evento ping de início do aplicativo | 0 | 0 | /api/v1/sessions/{sid}/events |
Inicie o temporizador de ping do aplicativo. O primeiro evento de ping deve disparar 1 segundo se houver anúncios precedentes, 10 segundos se não houver.
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
Rastrear início de ad break antes da exibição | 0 | 0 | /api/v1/sessions/{sid}/events |
Os anúncios somente podem ser rastreados em um ad break.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType":"adBreakStart",
"params": {
"media.ad.podFriendlyName": "ad_pod1",
"media.ad.podIndex": 0,
"media.ad.podSecond": 0
}
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
Rastrear início do anúncio nº 1 antes da exibição | 0 | 0 | /api/v1/sessions/{sid}/events |
Comece a rastrear o primeiro anúncio precedente, que tem 15 segundos de duração. Incluindo metadados personalizados com este adStart
.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType":"adStart",
"params": {
"media.ad.podFriendlyName": "ad_pod1",
"media.ad.name": "Ad 1",
"media.ad.id": "001",
"media.ad.length": 15,
"media.ad.podPosition": 1,
"media.ad.playerName": "Sample Player",
"media.ad.advertiser": "Ad Guys",
"media.ad.campaignId": "1",
"media.ad.creativeId": "42",
"media.ad.siteId": "XYZ",
"media.ad.creativeURL": "https://example.com",
"media.ad.placementId": "sample_placement"
},
"customMetadata": {
"myCustomData1": "CustomData1",
"myCustomData2": "CustomData2"
}
}
OBSERVAÇÃO: Entre os eventos AdBreakStart e AdStart, não deve haver nenhum evento de reprodução adicional.
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
O aplicativo envia o evento de ping | 1 | 0 | /api/v1/sessions/{sid}/events |
Envie um ping ao back-end a cada 1 segundo enquanto estiver em um anúncio.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
O aplicativo envia o evento de ping | 2 | 0 | /api/v1/sessions/{sid}/events |
Envie um ping ao back-end a cada 1 segundo enquanto estiver em um anúncio.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
O aplicativo envia o evento de ping | 3 | 0 | /api/v1/sessions/{sid}/events |
Envie um ping ao back-end a cada 1 segundo enquanto estiver em um anúncio.
Anúncios subsequentes na linha do tempo ignorarão a exibição da série de pings de um segundo
por razões de brevidade…
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
Rastrear conclusão do anúncio nº 1 antes da exibição | 15 | 0 | /api/v1/sessions/{sid}/events |
Rastreie o final do primeiro anúncio precedente.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adComplete"
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
Rastrear início do anúncio nº 2 antes da exibição | 15 | 0 | /api/v1/sessions/{sid}/events |
Rastreie o início do segundo anúncio precedente, que tem 7 segundos de duração.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adStart",
"params": {
"media.ad.podFriendlyName": "ad_pod1",
"media.ad.name": "Ad 2",
"media.ad.id": "002",
"media.ad.length": 7,
"media.ad.podPosition": 1,
"media.ad.playerName": "Sample Player",
"media.ad.advertiser": "Ad Guys",
"media.ad.campaignId": "2",
"media.ad.creativeId": "44",
"media.ad.siteId": "XYZ",
"media.ad.creativeURL": "https://example.com",
"media.ad.placementId": "sample_placement2"
},
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
O aplicativo envia o evento de ping | 20 | 0 | /api/v1/sessions/{sid}/events |
Envie um ping ao back-end a cada 1 segundo.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
Rastrear conclusão do anúncio nº 2 antes da exibição | 22 | 0 | /api/v1/sessions/{sid}/events |
Rastreie o final do segundo anúncio precedente.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adComplete"
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
Rastrear conclusão de ad break antes da exibição | 22 | 0 | /api/v1/sessions/{sid}/events |
O ad break está concluído. Ao longo do ad break, o estado da reprodução permaneceu "reproduzindo".
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adBreakComplete"
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
Rastrear evento de reprodução | 22 | 0 | /api/v1/sessions/{sid}/events |
Depois do evento adBreakComplete
, coloque o player no estado “reproduzindo” usando o evento play
.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "play"
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
O aplicativo envia o evento de ping | 30 | 8 | /api/v1/sessions/{sid}/events |
Envie um ping ao back-end a cada 10 segundos.
{
"playerTime": {
"playhead": 8,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
Ocorreu um evento de início de buffer | 33 | 11 | /api/v1/sessions/{sid}/events |
Rastreie a alteração do player para o estado de “buffering”.
{
"playerTime": {
"playhead": 11,
"ts": "<timestamp>"
}, "eventType": "bufferStart"
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
Buffering encerrado, o aplicativo rastreia a retomada do conteúdo | 36 | 11 | /api/v1/sessions/{sid}/events |
O buffering termina após 3 segundos; coloque o reprodutor no estado "reproduzindo". Você deve enviar outro evento de rastreamento de reprodução a partir do buffering. A chamada play
depois de um bufferStart
infere uma chamada de "bufferEnd" ao back-end, assim, um evento bufferEnd
não é necessário.
{
"playerTime": {
"playhead": 11,
"ts": "<timestamp>"
},
"eventType": "play"
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
O aplicativo envia o evento de ping | 40 | 15 | /api/v1/sessions/{sid}/events |
Envie um ping ao back-end a cada 10 segundos.
{
"playerTime": {
"playhead": 15,
"ts": "<timestamp>"
}, "eventType": "ping"
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
Rastrear início de ad break durante a exibição | 46 | 21 | /api/v1/sessions/{sid}/events |
Anúncio intermediário de 8 segundos: envie adBreakStart
.
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
},
"eventType": "adBreakStart",
"params": {
"media.ad.podFriendlyName": "ad_pod2",
"media.ad.podIndex": 1,
"media.ad.podSecond": 21
}
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
Rastrear início do anúncio nº 3 durante a exibição | 46 | 21 | /api/v1/sessions/{sid}/events |
Rastreie o anúncio intermediário.
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
},
"eventType": "adStart",
"params": {
"media.ad.podFriendlyName": "ad_pod2",
"media.ad.name": "Ad 3",
"media.ad.id": "003",
"media.ad.length": 8,
"media.ad.podPosition": 2,
"media.ad.playerName": "Sample Player",
"media.ad.advertiser": "Ad Guys",
"media.ad.campaignId": "7",
"media.ad.creativeId": "40",
"media.ad.siteId": "XYZ",
"media.ad.creativeURL": "https://example.com",
"media.ad.placementId": "sample_placement2"
},
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
O aplicativo envia o evento de ping | 50 | 21 | /api/v1/sessions/{sid}/events |
Envie um ping ao back-end a cada 10 segundos.
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
}, "eventType": "ping"
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
Rastrear conclusão do anúncio nº 1 durante a exibição | 54 | 21 | /api/v1/sessions/{sid}/events |
O anúncio intermediário está concluído.
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
},
"eventType": "adComplete"
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
Rastrear conclusão de ad break durante a exibição | 54 | 21 | /api/v1/sessions/{sid}/events |
O ad break está concluído.
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
},
"eventType": "adBreakComplete"
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
O aplicativo envia o evento de ping | 60 | 27 | /api/v1/sessions/{sid}/events |
Envie um ping ao back-end a cada 10 segundos.
{
"playerTime": {
"playhead": 27,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
O usuário pressionou Pause | 64 | 31 | /api/v1/sessions/{sid}/events |
A ação do usuário altera o estado de reprodução para “pausado”.
{
"playerTime": {
"playhead": 31,
"ts": "<timestamp>"
},
"eventType": "pauseStart"
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
O aplicativo envia o evento de ping | 70 | 31 | /api/v1/sessions/{sid}/events |
Envie um ping ao back-end a cada 10 segundos. O player ainda está no estado "buffering"; o usuário fica preso nos 20 segundos de conteúdo. Procurando…
{
"playerTime": {
"playhead": 31,
"ts": "<timestamp>"
}, "eventType": "ping"
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
O usuário pressionou Play para retomar o conteúdo principal | 74 | 31 | /api/v1/sessions/{sid}/events |
Mova o estado de reprodução para "reproduzindo". A chamada play
depois de um pauseStart
infere uma chamada de "retomada" ao back-end, assim, um evento resume
não é necessário.
{
"playerTime": {
"playhead": 31,
"ts": "<timestamp>"
}, "eventType": "play"
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
O aplicativo envia o evento de ping | 80 | 37 | /api/v1/sessions/{sid}/events |
Envie um ping ao back-end a cada 10 segundos.
{
"playerTime": {
"playhead": 37,
"ts": "<timestamp>"
}, "eventType": "ping"
}
Ação | Linha do tempo de ação (segundos) | Posição do indicador de reprodução (segundos) | Solicitação de cliente |
---|---|---|---|
O usuário termina de assistir ao conteúdo até o fim. | 88 | 45 | /api/v1/sessions/{sid}/events |
Envie sessionComplete
ao back-end para indicar que o usuário terminou de assistir todo o conteúdo.
{
"playerTime": {
"playhead": 45,
"ts": "<timestamp>"
}, "eventType": "sessionComplete"
}
Nenhum evento de busca? - Não há suporte explícito na API Media Collection para eventos seekStart
ou seekComplete
. Isso ocorre porque certos players geram um número muito grande desses eventos quando o usuário final está depurando, e várias centenas de usuários podem facilmente afunilar a largura de banda da rede de um serviço de backend. A Adobe oferece suporte explícito para eventos de busca, calculando a duração da pulsação com base no carimbo de data e hora do dispositivo, em vez da posição do indicador de reprodução.