স্ন্যাপব্যাক

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

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

এই বিজ্ঞাপন বিরতি দেখানোর জন্য, নিম্নলিখিত পদক্ষেপগুলি নিন:

  1. ব্যবহারকারী একটি অনুসন্ধান চালাচ্ছেন কিনা তা পরীক্ষা করে দেখুন যেটি একটি অদেখা বিজ্ঞাপন বিরতি অতিক্রম করেছে এবং যদি তাই হয়, তাহলে তাদের বিজ্ঞাপন বিরতিতে নিয়ে যান।
  2. বিজ্ঞাপন বিরতি সম্পূর্ণ হওয়ার পরে, তাদের তাদের আসল সন্ধানে ফিরিয়ে দিন।

ডায়াগ্রাম আকারে, এটি এইরকম দেখায়:

IMA DAI SDK-তে এই কর্মপ্রবাহটি কীভাবে বাস্তবায়ন করা যায় তা এখানে রয়েছে, যেমনটি AdvancedExample- এ করা হয়েছে।

একটি বিজ্ঞাপন বিরতি অপ্রত্যাশিত ছেড়ে থেকে একটি অনুসন্ধান প্রতিরোধ করুন

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

- (IBAction)videoControlsTouchStarted:(id)sender {
  self.seekStartTime = self.contentPlayer.currentTime;
}

- (IBAction)videoControlsTouchEnded:(id)sender {
  self.seekEndTime = CMTimeMake(self.progressBar.value, 1);
  IMACuepoint *lastCuepoint =
      [self.streamManager previousCuepointForStreamTime:CMTimeGetSeconds(self.seekEndTime)];
  if (!lastCuepoint.played && (lastCuepoint.startTime > CMTimeGetSeconds(self.seekStartTime))) {
    self.snapbackMode = YES
    // Add 1 to the seek time to get the keyframe at the start of the ad to be your landing place.
    [self.contentPlayer seekToTime:CMTimeMakeWithSeconds(lastCuepoint.startTime + 1, NSEC_PER_SEC)];
  }
}

ব্যবহারকারীকে তাদের আসল সন্ধানে ফিরিয়ে দিন

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

- (void)streamManager:(IMAStreamManager *)streamManager didReceiveAdEvent:(IMAAdEvent *)event {
  switch (event.type) {
    case kIMAAdEvent_AD_BREAK_ENDED: {
      if (self.snapbackMode) {
        self.snapbackMode = NO;
        if (CMTimeCompare(self.seekEndTime, self.contentPlayer.currentTime)) {
          [self.contentPlayer seekToTime:self.seekEndTime];
        }
      }
      break;
    }
  }
}