Snapback

Sebagai penayang video, Anda mungkin ingin mencegah penonton agar tidak mencari iklan mid-roll Anda. Saat pengguna mencari melewati jeda iklan, Anda dapat mengarahkan mereka kembali ke awal jeda iklan tersebut, lalu mengembalikannya ke lokasi pencarian setelah jeda iklan selesai. Fitur ini disebut "snapback".

Sebagai contoh, lihat diagram di bawah. Penonton Anda sedang menonton video, dan memutuskan untuk mencari dari tanda 5 menit hingga 15 menit. Namun, ada jeda iklan pada tanda 10 menit yang Anda inginkan untuk ditonton sebelum mereka dapat menonton konten setelahnya:

Untuk menampilkan jeda iklan ini, lakukan langkah-langkah berikut:

  1. Periksa apakah pengguna menjalankan pencarian yang melewati jeda iklan yang belum ditonton, dan jika ya, kembalikan ke jeda iklan tersebut.
  2. Setelah jeda iklan selesai, kembalikan ke pencarian awal.

Dalam bentuk diagram, formatnya terlihat seperti ini:

Berikut cara menerapkan alur kerja ini di IMA SDK HTML5, seperti yang dilakukan di Contoh Lanjutan.

Mencegah upaya membuat jeda iklan tidak ditonton

Periksa apakah pengguna telah menjalankan pencarian yang melewati jeda iklan yang belum ditonton, dan jika ya, arahkan mereka kembali ke jeda iklan. Di HTML5 SDK, tetapkan pemroses peristiwa pada peristiwa seeked pemutar konten untuk memicu onSeekEnd(). Metode tersebut (ditampilkan di bawah) memeriksa titik tanda sebelum waktu pencarian pengguna. Jika belum diputar, cari ke awal jeda iklan, bukan titik pencarian awal yang diinginkan, lalu simpan titik pencarian yang diinginkan di snapForwardTime.

function onSeekEnd() {
  if (isLiveStream) { return; }
  if (isSnapback) {
    isSnapback = false;
    return;
  }
  var currentTime = videoElement.currentTime;
  var previousCuePoint =
      streamManager.previousCuePointForStreamTime(currentTime);
  if (previousCuePoint && !previousCuePoint.played) {
    isSnapback = true;
    snapForwardTime = currentTime;
    videoElement.currentTime = previousCuePoint.start;
}

Mengembalikan pengguna ke pencarian awal

Sekarang, saat Anda mendapatkan peristiwa AD_BREAK_ENDED, periksa apakah snapForwardTime sudah ditetapkan. Jika ya, arahkan pengguna ke titik tersebut di streaming, karena jeda iklan yang baru saja mereka tonton adalah hasil dari snapback:

function onAdBreakEnded(e) {
  videoElement.controls = true;
  clickElement.style.display = 'none';
  adUiDiv.style.display = 'none';
  if (snapForwardTime && snapForwardTime > videoElement.currentTime) {
    videoElement.currentTime = snapForwardTime;
    snapForwardTime = null;
  }
}