Voltar para um intervalo de anúncio ignorado

Selecione a plataforma: HTML5 Android iOS tvOS Roku

Como editor de vídeos, talvez você queira impedir que os espectadores pulem os anúncios intermediários. Quando um usuário pula um intervalo comercial, você pode levá-lo de volta ao início desse intervalo de anúncio e, em seguida, retornar ao local de busca após a conclusão do intervalo de anúncio. Esse recurso é chamado de "ajuste".

Confira um exemplo no diagrama abaixo. O espectador está assistindo um vídeo e decide pular do minuto 5 para o minuto 15. No entanto, há um intervalo de anúncio no minuto 10 que você quer que ele assista antes de poder assistir o conteúdo depois dele:

Para mostrar esse intervalo de anúncio, siga estas etapas:

  1. Verifique se o usuário fez uma busca que pulou um intervalo de anúncio não assistido e, em caso afirmativo, leve-o de volta ao intervalo de anúncio.
  2. Depois que o intervalo de anúncio for concluído, retorne o usuário à busca original.

Em formato de diagrama, isso fica assim:

Confira como implementar o ajuste usando o SDK IMA DAI, conforme demonstrado no nosso exemplo avançado.

Impedir que uma busca deixe um intervalo de anúncio não assistido

Verifique se o usuário fez uma busca que pulou um intervalo de anúncio não assistido e, em caso afirmativo, leve-o de volta ao intervalo de anúncio. O exemplo avançado do Roku depende de pressionamentos de botões remotos para que o usuário faça uma busca. Cada vez que o usuário pressiona o botão "Avançar", ele pula para frente no stream por um número definido de segundos. O mesmo método que processa esse salto também verifica se o salto leva o usuário para um intervalo de anúncio ou o pula. Se isso acontecer, o usuário será enviado para o início desse intervalo:

Function handleFastForward(player as Object, streamManager as Object, updatedTime As Integer)
  previousAd = streamManager.getPreviousCuePoint(updatedTime)
  If previousAd = Invalid or previousAd.hasPlayed
    player.seek(updatedTime * 1000)
  Else If previousAd.start > player.currentTime
    player.isSnapback = True
    player.timeAfterSnapback = updatedTime
    player.seek(previousAd.start * 1000 + 1000)
  End If
End Function

Retornar o usuário à busca original

No gerenciador adBreakEnded, verifique se o intervalo de anúncio anterior foi reproduzido como resultado do snapback. Em caso afirmativo, retorne o usuário ao local que ele estava tentando buscar inicialmente (desde que não fosse o meio do intervalo de anúncio que acabou de ser reproduzido):

player.adBreakEnded = Function(adBreakInfo as Object)
  If m.isSnapback
    m.seek(m.timeAfterSnapback * 1000)
    m.isSnapback = False
  End If
End Function