Como publicador de videos, es posible que quieras evitar que los usuarios adelanten los anuncios durante el video. Cuando un usuario busca más allá de una pausa publicitaria, puedes llevarlo de regreso al inicio de esa pausa y, luego, regresarlo a su ubicación de búsqueda una vez que se haya completado esa pausa. Esta función se llama "recuperación".
Como ejemplo, consulta el siguiente diagrama. El usuario está mirando un video y decide adelantar desde el minuto 5 hasta el minuto 15. Sin embargo, hay una pausa publicitaria en el minuto 10 que quieres que miren antes de poder ver el contenido después de ella:
Para mostrar esta pausa publicitaria, sigue estos pasos:
- Comprueba si el usuario realizó una búsqueda que omitió una pausa publicitaria sin mirar y, si es así, llévalo de regreso a la pausa publicitaria.
- Una vez que finalice la pausa publicitaria, regrésalos a su búsqueda original.
En forma de diagrama, se ve así:
A continuación, se explica cómo implementar snapback con el SDK de DAI de IMA, como se muestra en nuestro ejemplo avanzado.
Evita que se omita una pausa publicitaria sin mirar
Comprueba si el usuario realizó una búsqueda que pasó una pausa publicitaria sin mirar y, si es así, llévalo de vuelta a la pausa publicitaria. El ejemplo avanzado de Roku se basa en las pulsaciones de botones del control remoto para que el usuario busque. Cada vez que el usuario presiona el botón Adelante, avanza en la transmisión una cantidad determinada de segundos. El mismo método que controla este salto también verifica si el salto lleva al usuario más allá de una pausa publicitaria o a ella, y, si es así, lo envía al inicio de esa pausa publicitaria:
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
Regresa al punto de búsqueda original del usuario
En tu controlador adBreakEnded
, verifica si la interrupción publicitaria anterior se reprodujo como resultado de un retroceso. Si es así, regresa al usuario al lugar al que intentaba avanzar inicialmente (siempre y cuando no haya sido a la mitad de la tanda publicitaria que acaba de reproducirse):
player.adBreakEnded = Function(adBreakInfo as Object)
If m.isSnapback
m.seek(m.timeAfterSnapback * 1000)
m.isSnapback = False
End If
End Function