Show Menu
TOPICS×

Rastrear o conteúdo baixado

Visão geral

O recurso Conteúdo baixado tem a capacidade de rastrear o consumo de mídia enquanto o usuário está offline. Por exemplo, um usuário baixa e instala um aplicativo em um dispositivo móvel. Em seguida, ele baixa o conteúdo usando o aplicativo no armazenamento local do dispositivo. Para rastrear esses dados baixados, a Adobe desenvolveu o recurso Conteúdo baixado. Com esse recurso, quando o usuário reproduz o conteúdo do armazenamento de um dispositivo, os dados de rastreamento são armazenados no dispositivo, independentemente da conectividade dele. Quando o usuário finaliza a sessão de reprodução e o dispositivo volta ao modo online, as informações de rastreamento armazenadas são enviadas ao back-end da API Media Collection, dentro de uma única carga. A partir daí, o processamento e o relatório continuam normalmente na API Media Collection.
Compare as duas abordagens:
  • Online
    Com esta abordagem em tempo real, o reprodutor de mídia envia dados de rastreamento sobre cada evento do reprodutor e envia pings de rede a cada dez segundos (a cada segundo para anúncios), um por um, para o back-end.
  • Offline (recurso Conteúdo baixado)
    Com essa abordagem de processamento em lote, os mesmos eventos de sessão precisam ser gerados, mas são armazenados no dispositivo até que sejam enviados para o back-end como uma única sessão (consulte o exemplo abaixo).
Cada abordagem tem suas vantagens e desvantagens:
  • O cenário online é rastreado em tempo real; isso requer uma verificação de conectividade antes de cada chamada de rede.
  • O cenário offline (recurso Conteúdo baixado) precisa apenas de uma verificação de conectividade de rede, mas também requer um espaço maior de memória no dispositivo.

Implementação

Esquemas de eventos

O recurso Conteúdo baixado é simplesmente a versão offline (padrão) da API Media Collection online, de modo que os dados de evento que seu reprodutor acumula e envia para o back-end devem usar os mesmos esquemas de evento que você usa quando faz chamadas online. Para obter informações sobre esses esquemas, consulte:

Ordem dos eventos

  • O primeiro evento na carga do lote deve ser
    sessionStart
    como de costume com a API Media Collection.
  • Você deve incluir
    media.downloaded: true
    nos parâmetros de metadados padrão (
    params
    chave) no evento
    sessionStart
    para indicar ao back-end que você está enviando o conteúdo baixado. Se este parâmetro não estiver presente ou for definido como "false" quando você enviar o conteúdo baixado, a API retornará um código de resposta 400 (Solicitação inválida). Esse parâmetro distingue o conteúdo baixado do conteúdo em tempo real para o back-end. (Observe que se
    media.downloaded: true
    estiver configurado em uma sessão em tempo real, isso também resultará em uma resposta 400 da API.)
  • É da responsabilidade da implementação armazenar corretamente os eventos do reprodutor na ordem em que aparecem.

Códigos de resposta

  • 201 - Criado: solicitação bem-sucedida; os dados são válidos e a sessão foi criada e será processada.
  • 400 - Solicitação inválida; a validação do esquema falhou, todos os dados são descartados, nenhum dado da sessão será processado.

Integração com o Adobe Analytics

Ao calcular as chamadas de início/fechamento do Analytics para o cenário de conteúdo baixado, o back-end define um campo adicional do Analytics chamado
ts.
Estes são carimbos de data e hora para o primeiro e o último evento recebido (início e conclusão). Esse mecanismo permite que uma sessão de mídia concluída seja colocada no momento correto (ou seja, mesmo que o usuário não volte a ficar online por vários dias, a sessão de mídia informa que ocorreu no momento em que o conteúdo foi realmente visualizado). Você deve ativar esse mecanismo no Adobe Analytics criando um
conjunto de relatórios opcionais de carimbo de data e hora.
Para ativar o conjunto de relatórios opcionais de carimbo de data e hora, consulte Carimbos de data e hora opcionais.

Comparação de sessões de amostra

[url]/api/v1/sessions

Conteúdo online

{ eventType: "sessionStart", playerTime: { playhead: 0, ts: 1529997923478}, params: { /* Standard metadata parameters as documented */ }, customMetadata: { /* Custom metadata parameters as documented */ }, qoeData: { /* QoE parameters as documented */ } }

Conteúdo baixado

[{ eventType: "sessionStart", playerTime:{ playhead: 0, ts: 1529997923478}, params:{ "media.downloaded": true ... }, customMetadata:{}, qoeData:{} }, {eventType: "play", playerTime: {playhead: 0, ts: 1529997928174}}, {eventType: "ping", playerTime: {playhead: 10, ts: 1529997937503}}, {eventType: "ping", playerTime: {playhead: 20, ts: 1529997947533}}, {eventType: "ping", playerTime: {playhead: 30, ts: 1529997957545},}, {eventType: "sessionComplete", playerTime: {playhead: 35, ts: 1529997960559} }]