একজন ভিডিও প্রকাশক হিসেবে, আপনি হয়তো আপনার দর্শকদের মিড-রোল বিজ্ঞাপনগুলো এড়িয়ে যাওয়া থেকে আটকাতে চাইতে পারেন। যখন কোনো ব্যবহারকারী একটি বিজ্ঞাপন বিরতি এড়িয়ে যান, তখন আপনি তাকে সেই বিরতির শুরুতে ফিরিয়ে নিয়ে যেতে পারেন এবং বিরতিটি শেষ হওয়ার পর তাকে তার আগের অবস্থানে ফিরিয়ে আনতে পারেন। এই বৈশিষ্ট্যটিকে "স্ন্যাপব্যাক" বলা হয়।
উদাহরণস্বরূপ, নিচের ডায়াগ্রামটি দেখুন। আপনার দর্শক একটি ভিডিও দেখছেন এবং তিনি ৫ মিনিটের পর থেকে ১৫ মিনিটের পর যেতে চান। কিন্তু, ১০ মিনিটের মাথায় একটি বিজ্ঞাপন বিরতি আছে, যার পরের কন্টেন্ট দেখার আগে আপনি চান যে দর্শক সেটি দেখুক।

এই বিজ্ঞাপন বিরতিটি দেখানোর জন্য, নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করুন:
- যাচাই করুন ব্যবহারকারী এমন কোনো অনুসন্ধান চালিয়েছেন কিনা যা কোনো না দেখা বিজ্ঞাপন বিরতি এড়িয়ে গেছে, এবং যদি তাই হয়, তবে তাকে বিজ্ঞাপন বিরতিতে ফিরিয়ে নিয়ে যান।
- বিজ্ঞাপন বিরতি শেষ হলে, তাদেরকে তাদের আগের অবস্থানে ফিরিয়ে দিন।
ডায়াগ্রাম আকারে, এটি দেখতে এইরকম:

আমাদের অ্যাডভান্সড এক্সাম্পল- এ প্রদর্শিত পদ্ধতি অনুযায়ী, IMA DAI SDK ব্যবহার করে snapack কীভাবে ইমপ্লিমেন্ট করতে হয় তা এখানে দেওয়া হলো।
বিজ্ঞাপনের বিরতি দেখার আগে কোনো অনুসন্ধান বন্ধ করুন।
ব্যবহারকারী এমন কোনো 'সিক' (seek) করেছেন কিনা যা কোনো না দেখা বিজ্ঞাপন বিরতি (ad break) পার করে গেছে, তা পরীক্ষা করুন এবং যদি তাই হয়, তবে তাকে সেই বিজ্ঞাপন বিরতিতে ফিরিয়ে নিয়ে যান। রোকু অ্যাডভান্সড (Roku advanced) স্যাম্পলটি ব্যবহারকারীর 'সিক' করার জন্য রিমোটের বাটন চাপার উপর নির্ভর করে - প্রতিবার ব্যবহারকারী ফরোয়ার্ড বাটন চাপলে, তিনি স্ট্রিমে একটি নির্দিষ্ট সংখ্যক সেকেন্ড এগিয়ে যান। যে পদ্ধতিটি এই লাফটি পরিচালনা করে, সেটিই আবার পরীক্ষা করে দেখে যে লাফটি ব্যবহারকারীকে কোনো বিজ্ঞাপন বিরতি পার করে বা তার মধ্যে নিয়ে যাচ্ছে কিনা, এবং যদি তাই হয়, তবে ব্যবহারকারীকে সেই বিজ্ঞাপন বিরতির শুরুতে পাঠিয়ে দেয়:
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 হ্যান্ডলারে, স্ন্যাপব্যাকের ফলে আগের অ্যাড ব্রেকটি প্লে হয়েছিল কিনা তা পরীক্ষা করে দেখুন। যদি হয়ে থাকে, তাহলে ব্যবহারকারীকে সেই জায়গায় ফিরিয়ে দিন যেখানে তিনি প্রথমে সিক করার চেষ্টা করছিলেন (তবে শর্ত হলো, সেটি যেন এইমাত্র প্লে হওয়া অ্যাড ব্রেকটির মাঝখানে না হয়ে থাকে):
player.adBreakEnded = Function(adBreakInfo as Object)
If m.isSnapback
m.seek(m.timeAfterSnapback * 1000)
m.isSnapback = False
End If
End Function