Snapback

Se você é editor de vídeo, talvez queira impedir que os espectadores escondam seus anúncios intermediários. Quando um usuário passa por um intervalo de anúncio, é possível voltar ao início dele e retornar ao local de busca depois que o intervalo for concluído. Esse recurso é chamado de "snapback".

Como exemplo, veja o diagrama abaixo. Seu espectador está assistindo um vídeo e decide passar da marca de 5 a 15 minutos. No entanto, há um intervalo de anúncio na marca de 10 minutos que você quer que eles assistam antes que possam assistir ao conteúdo depois dele:

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

  1. Confira se o usuário fez uma busca que ultrapassou um intervalo de anúncio não assistido e, em caso afirmativo, retorne a ele.
  2. Quando o intervalo de anúncio terminar, retorne à busca original.

Em forma de diagrama, o código fica assim:

Veja como implementar esse fluxo de trabalho no SDK do IMA para Roku, conforme feito no nosso exemplo avançado.

Evitar uma busca de deixar um intervalo de anúncio sem visualização

Confira se o usuário executou uma busca que ultrapassou um intervalo de anúncio não assistido. Caso tenha feito isso, leve-o de volta a ele. O exemplo avançado do Roku depende de pressionamentos de botão remoto para que o usuário busque. Cada vez que ele pressionar o botão "Avançar", ele vai avançar no stream por um número definido de segundos. O mesmo método que processa esse salto também verifica se ele ocorre após ou para um intervalo de anúncio e, em caso afirmativo, envia o usuário para o início desse intervalo de anúncio:

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

Levar o usuário de volta à 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