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

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

অ্যাডভান্সড এক্সাম্পল- এ প্রদর্শিত পদ্ধতি অনুযায়ী, IMA DAI SDK ব্যবহার করে কীভাবে স্ন্যাপব্যাক প্রয়োগ করতে হয় তা এখানে দেওয়া হলো।
বিজ্ঞাপনের বিরতি দেখার আগে কোনো অনুসন্ধান বন্ধ করুন।
ব্যবহারকারী এমন কোনো সিক (seek) চালিয়েছেন কিনা যা কোনো না দেখা বিজ্ঞাপন বিরতি (ad break) পার করে গেছে, তা পরীক্ষা করুন এবং যদি তাই হয়, তবে তাকে সেই বিজ্ঞাপন বিরতিতে ফিরিয়ে নিয়ে যান। HTML5 SDK-তে, কন্টেন্ট প্লেয়ারের ' seeked ' ইভেন্টে একটি ইভেন্ট লিসেনার সেট করুন যা onSeekEnd() ট্রিগার করবে। সেই মেথডটি (যা নিচে দেখানো হলো) ব্যবহারকারীর সিক করার সময়ের আগের কিউ পয়েন্ট (cue point) পরীক্ষা করে। যদি সেটি প্লে না হয়ে থাকে, তবে ব্যবহারকারীর প্রাথমিক কাঙ্ক্ষিত সিক পয়েন্টের পরিবর্তে সেই বিজ্ঞাপন বিরতির শুরুতে চলে যান এবং সেই কাঙ্ক্ষিত সিক পয়েন্টটি ' 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;
}
ব্যবহারকারীকে তাদের মূল অনুসন্ধানে ফিরিয়ে দিন
এখন যখন আপনি একটি AD_BREAK_ENDED ইভেন্ট পাবেন, তখন snapForwardTime সেট করা আছে কিনা তা পরীক্ষা করে দেখুন। যদি তা থাকে, তবে ব্যবহারকারীকে স্ট্রিমের সেই নির্দিষ্ট অংশে নিয়ে যান, কারণ তারা এইমাত্র যে বিজ্ঞাপন বিরতিটি দেখেছেন তা ছিল একটি স্ন্যাপব্যাকের ফল।
function onAdBreakEnded(e) {
videoElement.controls = true;
clickElement.style.display = 'none';
adUiDiv.style.display = 'none';
if (snapForwardTime && snapForwardTime > videoElement.currentTime) {
videoElement.currentTime = snapForwardTime;
snapForwardTime = null;
}
}