পিকচার-ইন-পিকচার বিজ্ঞাপন বাস্তবায়ন করুন (বিটা)

প্ল্যাটফর্ম নির্বাচন করুন: অ্যান্ড্রয়েড আইওএস

পিকচার-ইন-পিকচার

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

এই নির্দেশিকায় Google Mobile Ads SDK ব্যবহার করে আপনার অ্যাপে পিকচার-ইন-পিকচার বিজ্ঞাপনের অনুরোধ ও প্রদর্শন করার পদ্ধতি বর্ণনা করা হয়েছে।

শুরু করার আগে

চালিয়ে যাওয়ার আগে, নিম্নলিখিতগুলি করুন:

একটি বিজ্ঞাপন লোড করুন

একটি GADPictureInPictureAd অবজেক্ট লোড করতে, একটি বিজ্ঞাপন অনুরোধ তৈরি করুন এবং load পদ্ধতিটি কল করুন:

সুইফট

private func loadPictureInPictureAd() async {
  do {
    // Capture the PictureInPictureAd reference for later use.
    pipAd = try await PictureInPictureAd.load(
      with: adUnitID, request: Request())
    // Set the delegate to be notified of ad events.
    pipAd?.delegate = self
  } catch {
    print(
      "Picture-in-Picture ad failed to load: \(error.localizedDescription)")
  }
}

adUnitID এর জায়গায় আপনার বিজ্ঞাপন ইউনিটের আইডি বসান।

উদ্দেশ্য-সি

- (void)loadPictureInPictureAd {
  GADRequest *request = [GADRequest request];

  [GADPictureInPictureAd
       loadWithAdUnitID:kAdUnitID
                request:request
      completionHandler:^(GADPictureInPictureAd *_Nullable ad, NSError *_Nullable error) {
        if (error) {
          NSLog(@"Picture-in-Picture ad failed to load: %@", error);
          return;
        }
        // Capture the PictureInPictureAd reference for later use.
        self.pipAd = ad;
        // Set the delegate to be notified of ad events.
        self.pipAd.delegate = self;
      }];
}

kAdUnitID এর জায়গায় আপনার অ্যাড ইউনিট আইডি বসান।

বিজ্ঞাপনটি দেখান

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

সুইফট

private func showPictureInPictureAd() {
  // Use the loaded PictureInPictureAd instance.
  guard let pipAd else {
    print("No ad to show.")
    return
  }
  let options = PictureInPictureAdOptions()
  // Uses the Google Mobile Ads SDK's default screen position.
  options.position = .default
  // Binds the ad lifecycle to the host screen.
  options.presentationScope = .screen

  pipAd.show(with: options)
}

উদ্দেশ্য-সি

- (void)showPictureInPictureAd {
  // Use the loaded PictureInPictureAd instance.
  if (!self.pipAd) {
    NSLog(@"No ad to show.");
    return;
  }
  GADPictureInPictureAdOptions *options =
      [[GADPictureInPictureAdOptions alloc] init];
  // Uses the Google Mobile Ads SDK's default screen position.
  options.position = GADPictureInPictureAdPositionDefault;
  // Binds the ad lifecycle to the host screen.
  options.presentationScope = GADPictureInPictureAdPresentationScopeScreen;

  [self.pipAd showWithOptions:options];
}

অবস্থান নির্ধারণ করুন

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

সুইফট

private func createTopLeftPositionOptions() -> PictureInPictureAdOptions {
  let options = PictureInPictureAdOptions()
  // Sets the ad position to the top-left corner of the screen.
  options.position = .topLeft
  return options
}

উদ্দেশ্য-সি

- (GADPictureInPictureAdOptions *)createTopLeftPositionOptions {
  GADPictureInPictureAdOptions *options =
      [[GADPictureInPictureAdOptions alloc] init];
  // Sets the ad position to the top-left corner of the screen.
  options.position = GADPictureInPictureAdPositionTopLeft;
  return options;
}

সকল উপলব্ধ পদের জন্য, GADPictureInPictureAdPosition দেখুন।

উপস্থাপনার পরিধি নির্ধারণ করুন।

ডিফল্টরূপে, Google Mobile Ads SDK একটি পিকচার-ইন-পিকচার বিজ্ঞাপনকে বর্তমান হোস্ট স্ক্রিনের সাথে সংযুক্ত করে। যখন হোস্ট স্ক্রিনের ভিউ হায়ারার্কি আর মেমরিতে থাকে না, তখন Google Mobile Ads SDK বিজ্ঞাপনটি বাতিল করে দেয়। হোস্ট স্ক্রিনটি মেমরি থেকে মুছে যাওয়ার পরেও বিজ্ঞাপনটি দৃশ্যমান রাখতে, প্রেজেন্টেশন স্কোপটি অ্যাপ্লিকেশনে সেট করুন:

সুইফট

private func createApplicationScopedOptions() -> PictureInPictureAdOptions {
  let options = PictureInPictureAdOptions()
  // Keeps the ad visible beyond the host screen's lifecycle.
  options.presentationScope = .application
  return options
}

উদ্দেশ্য-সি

- (GADPictureInPictureAdOptions *)createApplicationScopedOptions {
  GADPictureInPictureAdOptions *options =
      [[GADPictureInPictureAdOptions alloc] init];
  // Keeps the ad visible beyond the host screen's lifecycle.
  options.presentationScope = GADPictureInPictureAdPresentationScopeApplication;
  return options;
}

আরও তথ্যের জন্য, ‘বিজ্ঞাপনটি বিভিন্ন স্ক্রিনে দৃশ্যমান রাখুন’ দেখুন।

বিজ্ঞাপন ইভেন্ট কলব্যাক সেট করুন

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

সুইফট

func pictureInPictureAdDidShow(_ pictureInPictureAd: PictureInPictureAd) {
  print("Picture-in-Picture ad shown.")
}

func pictureInPictureAdDidHide(_ pictureInPictureAd: PictureInPictureAd) {
  print("Picture-in-Picture ad hidden.")
}

func pictureInPictureAdDidFailToShow(
  _ pictureInPictureAd: PictureInPictureAd, error: Error
) {
  print("Picture-in-Picture ad failed to show: \(error.localizedDescription)")
}

func pictureInPictureAdDidRecordImpression(
  _ pictureInPictureAd: PictureInPictureAd
) {
  print("Picture-in-Picture ad recorded an impression.")
}

func pictureInPictureAdDidRecordClick(
  _ pictureInPictureAd: PictureInPictureAd
) {
  print("Picture-in-Picture ad recorded a click.")
}

func pictureInPictureAdWillPresentScreen(
  _ pictureInPictureAd: PictureInPictureAd
) {
  print("Picture-in-Picture ad will present screen.")
}

func pictureInPictureAdWillDismissScreen(
  _ pictureInPictureAd: PictureInPictureAd
) {
  print("Picture-in-Picture ad will dismiss screen.")
}

func pictureInPictureAdDidDismissScreen(
  _ pictureInPictureAd: PictureInPictureAd
) {
  print("Picture-in-Picture ad dismissed screen.")
}

উদ্দেশ্য-সি

- (void)pictureInPictureAdDidShow:(GADPictureInPictureAd *)pictureInPictureAd {
  NSLog(@"Picture-in-Picture ad shown.");
}

- (void)pictureInPictureAdDidHide:(GADPictureInPictureAd *)pictureInPictureAd {
  NSLog(@"Picture-in-Picture ad hidden.");
}

- (void)pictureInPictureAdDidFailToShow:(GADPictureInPictureAd *)pictureInPictureAd
                              withError:(NSError *)error {
  NSLog(@"Picture-in-Picture ad failed to show: %@", error);
}

- (void)pictureInPictureAdDidRecordImpression:(GADPictureInPictureAd *)pictureInPictureAd {
  NSLog(@"Picture-in-Picture ad recorded an impression.");
}

- (void)pictureInPictureAdDidRecordClick:(GADPictureInPictureAd *)pictureInPictureAd {
  NSLog(@"Picture-in-Picture ad recorded a click.");
}

- (void)pictureInPictureAdWillPresentScreen:(GADPictureInPictureAd *)pictureInPictureAd {
  NSLog(@"Picture-in-Picture ad will present screen.");
}

- (void)pictureInPictureAdWillDismissScreen:(GADPictureInPictureAd *)pictureInPictureAd {
  NSLog(@"Picture-in-Picture ad will dismiss screen.");
}

- (void)pictureInPictureAdDidDismissScreen:(GADPictureInPictureAd *)pictureInPictureAd {
  NSLog(@"Picture-in-Picture ad dismissed screen.");
}

বিজ্ঞাপনটি লুকান

স্ক্রিন থেকে ভাসমান বিজ্ঞাপনটি সরাতে, hide মেথডটি কল করুন। এই মেথডটি বিজ্ঞাপনের হিডেন ইভেন্ট কলব্যাকটি চালু করে:

সুইফট

private func hidePictureInPictureAd() {
  // Use the loaded PictureInPictureAd instance.
  guard let pipAd else {
    print("No ad to hide.")
    return
  }
  pipAd.hide()
}

উদ্দেশ্য-সি

- (void)hidePictureInPictureAd {
  // Use the loaded PictureInPictureAd instance.
  if (!self.pipAd) {
    NSLog(@"No ad to hide.");
    return;
  }
  [self.pipAd hide];
}

বিজ্ঞাপন সংস্থানগুলি পরিষ্কার করুন

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

সুইফট

private func cleanUpPictureInPictureAd() {
  pipAd?.hide()
  pipAd = nil
}

উদ্দেশ্য-সি

- (void)cleanUpPictureInPictureAd {
  [self.pipAd hide];
  self.pipAd = nil;
}

বিজ্ঞাপনটি সব স্ক্রিনে দৃশ্যমান রাখুন

যখন আপনি প্রেজেন্টেশন স্কোপটি অ্যাপ্লিকেশনে সেট করেন, তখন আপনার অ্যাপ মেমরি থেকে হোস্টিং স্ক্রিনটি সরিয়ে দিলেও পিকচার-ইন-পিকচার বিজ্ঞাপনটি দৃশ্যমান থাকে। ব্যবহারকারী যখন হোস্ট স্ক্রিন থেকে অন্য স্ক্রিনে চলে যান, তখন বিজ্ঞাপনটির সাথে ইন্টারঅ্যাক্ট করতে বা সেটিকে বাতিল করতে, আপনার অ্যাপকে অবশ্যই পিকচার-ইন-পিকচার বিজ্ঞাপনটিতে অ্যাক্সেস বজায় রাখতে হবে। আমরা একটিমাত্র স্ক্রিনের ইনস্ট্যান্স ভেরিয়েবলের পরিবর্তে বিজ্ঞাপনটিকে একটি অ্যাপ-লেভেল সিঙ্গেলটন বা শেয়ার্ড স্টেট ম্যানেজারে রাখার পরামর্শ দিই।