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

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

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