กลับไปที่ช่วงพักโฆษณาที่ข้าม

ในฐานะผู้เผยแพร่วิดีโอ คุณอาจต้องการป้องกันไม่ให้ผู้ชม ที่ผ่านโฆษณาตอนกลางของคุณ เมื่อผู้ใช้กรอผ่านช่วงพักโฆษณา คุณสามารถนำหน่วยโฆษณากลับไปยังจุดเริ่มต้นของช่วงพักโฆษณา แล้วค่อยกลับมาที่หน้านี้ ไปยังตำแหน่งที่ผู้ใช้ค้นหาหลังจากช่วงพักโฆษณาสิ้นสุดลง ช่วงเวลานี้ ที่เรียกว่า "snapback"

โปรดดูแผนภาพด้านล่างเป็นตัวอย่าง ผู้ชมของคุณกำลังดูวิดีโอ และตัดสินใจค้นหาจากช่วง 5 นาทีจนถึง 15 นาที อย่างไรก็ตาม มีช่วงพักโฆษณาที่ 10 นาทีซึ่งคุณต้องการให้ผู้ชมดูก่อนที่จะดูเนื้อหาต่อได้

หากต้องการแสดงช่วงพักโฆษณา ให้ทำตามขั้นตอนต่อไปนี้

  1. ตรวจสอบว่าผู้ใช้ทำการค้นหาที่ข้ามผ่านช่วงพักโฆษณาที่ยังไม่ได้ดูหรือไม่ ให้ย้อนกลับไปที่ช่วงพักโฆษณา
  2. หลังจากช่วงพักโฆษณาสิ้นสุดลง ให้นำโฆษณากลับไปยังกรอวิดีโอเดิม

ในรูปแบบแผนภาพ จะมีลักษณะดังนี้

ต่อไปนี้เป็นวิธีติดตั้ง Snapack โดยใช้ IMA DAI SDK ดังที่แสดงใน ตัวอย่างขั้นสูง

ป้องกันไม่ให้ระบบเลิกดูช่วงพักโฆษณา

ตรวจสอบว่าผู้ใช้กรอผ่านช่วงพักโฆษณาที่ไม่ได้ดูหรือไม่ หากใช่ ให้นําผู้ใช้กลับไปยังช่วงพักโฆษณา ตัวอย่างขั้นสูงของ Roku อาศัยการกดปุ่มระยะไกลสำหรับ ผู้ใช้กรอวิดีโอ - แต่ละครั้งที่ผู้ใช้กดปุ่มไปข้างหน้า ข้ามไปข้างหน้าในสตรีมเป็นจำนวนวินาทีที่กำหนดไว้ เรื่อง ที่จัดการการข้ามนี้ จะต้องตรวจสอบว่าการข้าม นำผู้ชมผ่านหรือเข้าสู่ช่วงพักโฆษณา และหากใช่ จะส่งผู้ใช้ ตรงจุดเริ่มต้นของช่วงพักโฆษณานั้นแทน

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

นำผู้ใช้กลับไปยังจุดที่กรอไปก่อนหน้านี้

ในเครื่องจัดการ adBreakEnded ให้ตรวจสอบว่าโฆษณาก่อนหน้า เล่น break จากผลของ Snapback ในกรณีนี้ ให้ส่งคืน ไปยังสถานที่ที่พวกเขาพยายามจะเสาะหา ในตอนแรก ( เพราะไม่ได้อยู่ระหว่างช่วงพักโฆษณาที่เพิ่งเล่นไป)

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