IMA SDK সেট আপ করুন

প্ল্যাটফর্ম নির্বাচন করুন: HTML5 Android iOS tvOS

IMA SDK-এর মাধ্যমে আপনার ওয়েবসাইট ও অ্যাপে মাল্টিমিডিয়া বিজ্ঞাপন যুক্ত করা সহজ। IMA SDK যেকোনো VAST-সম্মত অ্যাড সার্ভার থেকে বিজ্ঞাপনের জন্য অনুরোধ করতে পারে এবং আপনার অ্যাপে বিজ্ঞাপনের প্লেব্যাক পরিচালনা করতে পারে। IMA ক্লায়েন্ট-সাইড SDK-এর সাহায্যে, আপনি কন্টেন্ট ভিডিও প্লেব্যাকের নিয়ন্ত্রণ বজায় রাখেন, আর SDK বিজ্ঞাপনের প্লেব্যাক পরিচালনা করে। বিজ্ঞাপনগুলো অ্যাপের কন্টেন্ট ভিডিও প্লেয়ারের উপরে অবস্থিত একটি আলাদা ভিডিও প্লেয়ারে প্লে হয়।

এই নির্দেশিকাটি একটি ভিডিও প্লেয়ার অ্যাপে IMA SDK কীভাবে ইন্টিগ্রেট করতে হয় তা দেখায়। একটি সম্পূর্ণ নমুনা ইন্টিগ্রেশন দেখতে বা অনুসরণ করতে, GitHub থেকে BasicExample ডাউনলোড করুন।

আইএমএ ক্লায়েন্ট-সাইড ওভারভিউ

ক্লায়েন্ট-সাইডে IMA বাস্তবায়নে চারটি প্রধান SDK উপাদান জড়িত। এই নির্দেশিকাটি এই উপাদানগুলি প্রদর্শন করে:

  • IMAAdDisplayContainer : একটি কন্টেইনার অবজেক্ট যা নির্দিষ্ট করে দেয় IMA কোথায় বিজ্ঞাপনের UI উপাদানগুলো রেন্ডার করবে এবং দৃশ্যমানতা পরিমাপ করে, যার মধ্যে Active View এবং Open Measurement অন্তর্ভুক্ত।
  • IMAAdsLoader : এমন একটি অবজেক্ট যা বিজ্ঞাপনের জন্য অনুরোধ করে এবং অনুরোধের প্রতিক্রিয়া থেকে উদ্ভূত ইভেন্টগুলি পরিচালনা করে। আপনার কেবল একটিই অ্যাডস লোডার ইনস্ট্যানশিয়েট করা উচিত, যা অ্যাপ্লিকেশনটির জীবনকাল জুড়ে পুনরায় ব্যবহার করা যেতে পারে।
  • IMAAdsRequest : একটি অবজেক্ট যা একটি বিজ্ঞাপন অনুরোধ নির্ধারণ করে। বিজ্ঞাপন অনুরোধে VAST অ্যাড ট্যাগের জন্য URL এবং বিজ্ঞাপনের ডাইমেনশনের মতো অতিরিক্ত প্যারামিটার উল্লেখ করা থাকে।
  • IMAAdsManager : একটি অবজেক্ট যা বিজ্ঞাপনের অনুরোধের প্রতিক্রিয়া ধারণ করে, বিজ্ঞাপনের প্লেব্যাক নিয়ন্ত্রণ করে এবং SDK দ্বারা প্রেরিত বিজ্ঞাপন ইভেন্টগুলো শোনে।

পূর্বশর্ত

শুরু করার আগে আপনার নিম্নলিখিত জিনিসগুলো প্রয়োজন হবে:

১. একটি নতুন Xcode প্রজেক্ট তৈরি করুন

Xcode-এ Objective-C অথবা Swift ব্যবহার করে একটি নতুন tvOS প্রজেক্ট তৈরি করুন। প্রজেক্টের নাম হিসেবে BasicExample ব্যবহার করুন।

২. Xcode প্রজেক্টে IMA SDK যোগ করুন

IMA SDK ইনস্টল করতে, আপনার পছন্দের পদ্ধতিটি বেছে নিন।

সুপারিশকৃত: সুইফট প্যাকেজ ম্যানেজার ব্যবহার করে IMA SDK ইনস্টল করুন।

ইন্টারেক্টিভ মিডিয়া অ্যাডস এসডিকে সংস্করণ ৪.৮.২ থেকে সুইফট প্যাকেজ ম্যানেজার সমর্থন করে। সুইফট প্যাকেজটি ইম্পোর্ট করতে এই ধাপগুলো অনুসরণ করুন।

  1. Xcode-এ, File > Add Packages... -এ গিয়ে IMA SDK Swift Package-টি ইনস্টল করুন।

  2. প্রদর্শিত প্রম্পটে, IMA SDK Swift Package GitHub রিপোজিটরিটি খুঁজুন:

    https://github.com/googleads/swift-package-manager-google-interactive-media-ads-tvos
    
  3. আপনি IMA SDK Swift প্যাকেজের যে সংস্করণটি ব্যবহার করতে চান, তা নির্বাচন করুন। নতুন প্রোজেক্টের জন্য, আমরা আপ টু নেক্সট মেজর ভার্সন ব্যবহার করার পরামর্শ দিই।

আপনার কাজ শেষ হয়ে গেলে, Xcode আপনার প্যাকেজ নির্ভরতাগুলো সমাধান করে এবং ব্যাকগ্রাউন্ডে সেগুলো ডাউনলোড করে নেয়। প্যাকেজ নির্ভরতা কীভাবে যোগ করতে হয়, সে সম্পর্কে আরও বিস্তারিত জানতে Apple-এর নিবন্ধটি দেখুন।

CocoaPods ব্যবহার করে IMA SDK ইনস্টল করুন

IMA SDK ইনস্টল করতে CocoaPods ব্যবহার করুন। CocoaPods ইনস্টল বা ব্যবহার করার বিষয়ে আরও তথ্যের জন্য, CocoaPods ডকুমেন্টেশন দেখুন। CocoaPods ইনস্টল করার পরে, নিম্নলিখিতগুলি করুন:

  1. আপনার BasicExample.xcodeproj ফাইলটি যে ডিরেক্টরিতে আছে, সেই একই ডিরেক্টরিতে Podfile নামে একটি টেক্সট ফাইল তৈরি করুন এবং নিম্নলিখিত কনফিগারেশনটি যোগ করুন:

    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :tvos, '15'
    
    target "BasicExample" do
      pod 'GoogleAds-IMA-tvOS-SDK', '~> 4.16.0'
    end
    
    
  2. যে ডিরেক্টরিতে Podfile রয়েছে, সেখান থেকে pod install --repo-update চালান।

  3. BasicExample.xcworkspace ফাইলটি খুলে নিশ্চিত করুন যে এতে দুটি প্রজেক্ট রয়েছে: BasicExample এবং Pods (CocoaPods দ্বারা ইনস্টল করা ডিপেন্ডেন্সি), এর মাধ্যমে ইনস্টলেশন সফল হয়েছে কিনা তা যাচাই করুন।

ম্যানুয়ালি IMA SDK ডাউনলোড এবং ইনস্টল করা

আপনি যদি সুইফট প্যাকেজ ম্যানেজার ব্যবহার করতে না চান, তাহলে IMA SDK ডাউনলোড করে আপনার প্রজেক্টে ম্যানুয়ালি যোগ করুন।

৩. আইএমএ এসডিকে আমদানি করুন

একটি ইম্পোর্ট স্টেটমেন্ট ব্যবহার করে IMA ফ্রেমওয়ার্ক যোগ করুন।

উদ্দেশ্য-সি

#import "ViewController.h"
#import <AVKit/AVKit.h>

@import GoogleInteractiveMediaAds;

সুইফট

import AVFoundation
import GoogleInteractiveMediaAds
import UIKit

৪. একটি ভিডিও প্লেয়ার তৈরি করুন এবং IMA SDK সংহত করুন।

নিম্নলিখিত উদাহরণটি IMA SDK চালু করে:

উদ্দেশ্য-সি

NSString *const kContentURLString =
    @"https://storage.googleapis.com/interactive-media-ads/media/stock.mp4";
NSString *const kAdTagURLString =
    @"https://pubads.g.doubleclick.net/gampad/ads?"
    @"iu=/21775744923/external/vmap_ad_samples&sz=640x480&"
    @"cust_params=sample_ar%3Dpremidpostlongpod&ciu_szs=300x250&gdfp_req=1&ad_rule=1&"
    @"output=vmap&unviewed_position_start=1&env=vp&cmsid=496&vid=short_onecue&correlator=";

@interface ViewController () <IMAAdsLoaderDelegate, IMAAdsManagerDelegate>
@property(nonatomic) IMAAdsLoader *adsLoader;
@property(nonatomic) IMAAdDisplayContainer *adDisplayContainer;
@property(nonatomic) IMAAdsManager *adsManager;
@property(nonatomic) IMAAVPlayerContentPlayhead *contentPlayhead;
@property(nonatomic) AVPlayerViewController *contentPlayerViewController;
@property(nonatomic, getter=isAdBreakActive) BOOL adBreakActive;
@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  self.view.backgroundColor = [UIColor blackColor];
  [self setupAdsLoader];
  [self setupContentPlayer];
}

- (void)viewDidAppear:(BOOL)animated {
  [super viewDidAppear:animated];
  [self requestAds];
}

// Add the content video player as a child view controller.
- (void)showContentPlayer {
  [self addChildViewController:self.contentPlayerViewController];
  self.contentPlayerViewController.view.frame = self.view.bounds;
  [self.view insertSubview:self.contentPlayerViewController.view atIndex:0];
  [self.contentPlayerViewController didMoveToParentViewController:self];
}

// Remove and detach the content video player.
- (void)hideContentPlayer {
  // The whole controller needs to be detached so that it doesn't capture resume events from the
  // remote and play content underneath the ad.
  [self.contentPlayerViewController willMoveToParentViewController:nil];
  [self.contentPlayerViewController.view removeFromSuperview];
  [self.contentPlayerViewController removeFromParentViewController];
}

সুইফট

class ViewController: UIViewController, IMAAdsLoaderDelegate, IMAAdsManagerDelegate {
  static let contentURLString =
    "https://devstreaming-cdn.apple.com/videos/streaming/examples/"
    + "img_bipbop_adv_example_fmp4/master.m3u8"
  static let adTagURLString =
    "https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&"
    + "sz=640x480&cust_params=sample_ct%3Dlinear&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&"
    + "unviewed_position_start=1&env=vp&correlator="

  var adsLoader: IMAAdsLoader!
  var adDisplayContainer: IMAAdDisplayContainer!
  var adsManager: IMAAdsManager!
  var contentPlayhead: IMAAVPlayerContentPlayhead?
  var playerViewController: AVPlayerViewController!
  var adBreakActive = false

  deinit {
    NotificationCenter.default.removeObserver(self)
  }

  override func viewDidLoad() {
    super.viewDidLoad()
    self.view.backgroundColor = UIColor.black
    setUpContentPlayer()
    setUpAdsLoader()
  }

  override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    requestAds()
  }

এই উদাহরণে, viewDidLoad() IMAAdsLoader ইনিশিয়ালাইজ করে, এবং viewDidAppear() ভিউটি দৃশ্যমান হওয়ার পর বিজ্ঞাপনের জন্য অনুরোধ করে। showContentPlayer() এবং hideContentPlayer() হেল্পার মেথডগুলো বিজ্ঞাপন চলার সময় কন্টেন্টের দৃশ্যমানতা টগল করে।

এই উদাহরণটি বিজ্ঞাপন অনুরোধের জন্য VAST বিজ্ঞাপন ট্যাগ নির্ধারণ করতে adTagURLString ধ্রুবক ভেরিয়েবল এবং IMA SDK পরিচালনা করতে নিম্নলিখিত উপাদানগুলি ব্যবহার করে:

  • adsLoader : বিজ্ঞাপনের অনুরোধ এবং প্রতিক্রিয়া পরিচালনা করে। আমরা অ্যাপের জীবনচক্রের জন্য একটিমাত্র ইনস্ট্যান্স ব্যবহার করার পরামর্শ দিই।
  • adDisplayContainer : বিজ্ঞাপন রেন্ডার করার জন্য ভিউ নির্দিষ্ট করে।
  • adsManager : বিজ্ঞাপনের প্লেব্যাক পরিচালনা করে এবং বিজ্ঞাপনের ইভেন্ট শোনে।
  • contentPlayhead : কন্টেন্টের অগ্রগতি ট্র্যাক করে রোলের মাঝখানে বিজ্ঞাপন বিরতি চালু করে।
  • adBreakActive : বিজ্ঞাপন বিরতি চলছে কিনা তা নির্দেশ করে, যাতে বিজ্ঞাপনের উপর দিয়ে স্ক্রল করা না যায়।

৫. কন্টেন্ট প্লেহেড ট্র্যাকার এবং এন্ড-অফ-স্ট্রিম অবজারভার বাস্তবায়ন করুন।

মিড-রোল বিজ্ঞাপন চালানোর জন্য, IMA SDK-কে আপনার ভিডিও কন্টেন্টের বর্তমান অবস্থান ট্র্যাক করতে হয়। IMA-তে বর্তমান অবস্থানটি পাঠানোর জন্য, এমন একটি ক্লাস তৈরি করুন যা IMAContentPlayhead ইমপ্লিমেন্ট করে। আপনি যদি একটি AVPlayer ব্যবহার করেন, যেমনটি এই উদাহরণে দেখানো হয়েছে, তাহলে IMA SDK আপনার হয়ে বর্তমান অবস্থানের তথ্য পাঠানোর জন্য IMAAVPlayerContentPlayhead ক্লাসটি সরবরাহ করে। আপনি যদি AVPlayer ব্যবহার না করেন, তাহলে আপনার নিজের একটি ক্লাসে IMAContentPlayhead ইমপ্লিমেন্ট করুন।

উদ্দেশ্য-সি

- (void)setupContentPlayer {
  // Create a content video player. Create a playhead to track content progress so the SDK knows
  // when to play ads in a VMAP playlist.
  NSURL *contentURL = [NSURL URLWithString:kContentURLString];
  AVPlayer *player = [AVPlayer playerWithURL:contentURL];
  self.contentPlayerViewController = [[AVPlayerViewController alloc] init];
  self.contentPlayerViewController.player = player;
  self.contentPlayerViewController.view.frame = self.view.bounds;
  self.contentPlayhead =
      [[IMAAVPlayerContentPlayhead alloc] initWithAVPlayer:self.contentPlayerViewController.player];

  // Track end of content.
  AVPlayerItem *contentPlayerItem = self.contentPlayerViewController.player.currentItem;
  [[NSNotificationCenter defaultCenter] addObserver:self
                                           selector:@selector(contentDidFinishPlaying:)
                                               name:AVPlayerItemDidPlayToEndTimeNotification
                                             object:contentPlayerItem];

  // Attach content video player to view hierarchy.
  [self showContentPlayer];
}

সুইফট

func setUpContentPlayer() {
  // Load AVPlayer with path to our content.
  let contentURL = URL(string: ViewController.contentURLString)!
  let player = AVPlayer(url: contentURL)
  playerViewController = AVPlayerViewController()
  playerViewController.player = player

  // Set up our content playhead and contentComplete callback.
  contentPlayhead = IMAAVPlayerContentPlayhead(avPlayer: player)
  NotificationCenter.default.addObserver(
    self,
    selector: #selector(ViewController.contentDidFinishPlaying(_:)),
    name: NSNotification.Name.AVPlayerItemDidPlayToEndTime,
    object: player.currentItem)

  showContentPlayer()
}

আপনার কন্টেন্ট শেষ হলে AVPlayerItemDidPlayToEndTimeNotification ব্যবহার করে IMAAdsLoadercontentComplete কল করার জন্য একটি লিসেনার সেট আপ করুন। contentComplete কল করার ফলে IMA SDK জানতে পারে যে আপনার কন্টেন্ট প্লে হওয়া শেষ হয়েছে এবং এরপর পোস্ট-রোল বিজ্ঞাপন প্রদর্শন করতে পারে।

উদ্দেশ্য-সি

- (void)contentDidFinishPlaying:(NSNotification *)notification {
  // Notify the SDK that the postrolls should be played.
  [self.adsLoader contentComplete];
}

- (void)dealloc {
  [[NSNotificationCenter defaultCenter] removeObserver:self];
}

সুইফট

@objc func contentDidFinishPlaying(_ notification: Notification) {
  adsLoader.contentComplete()
}

৬. বিজ্ঞাপন লোডার চালু করুন এবং বিজ্ঞাপনের জন্য অনুরোধ করুন।

একগুচ্ছ বিজ্ঞাপনের অনুরোধ করতে, একটি IMAAdsLoader ইনস্ট্যান্স তৈরি করুন। এই লোডারটি একটি নির্দিষ্ট বিজ্ঞাপন ট্যাগ URL-এর সাথে যুক্ত IMAAdsRequest অবজেক্টগুলো প্রসেস করে।

সর্বোত্তম অনুশীলন হিসেবে, আপনার অ্যাপের সম্পূর্ণ জীবনচক্রের জন্য IMAAdsLoader এর কেবল একটি ইনস্ট্যান্সই বজায় রাখুন। অতিরিক্ত বিজ্ঞাপনের অনুরোধ করার জন্য, একটি নতুন IMAAdsRequest অবজেক্ট তৈরি করুন, কিন্তু একই IMAAdsLoader পুনরায় ব্যবহার করুন। আরও তথ্যের জন্য, IMA SDK FAQ দেখুন।

উদ্দেশ্য-সি

- (void)setupAdsLoader {
  self.adsLoader = [[IMAAdsLoader alloc] init];
  self.adsLoader.delegate = self;
}

- (void)requestAds {
  // Pass the main view as the container for ad display.
  self.adDisplayContainer = [[IMAAdDisplayContainer alloc] initWithAdContainer:self.view
                                                                viewController:self];
  IMAAdsRequest *request = [[IMAAdsRequest alloc] initWithAdTagUrl:kAdTagURLString
                                                adDisplayContainer:self.adDisplayContainer
                                                   contentPlayhead:self.contentPlayhead
                                                       userContext:nil];
  [self.adsLoader requestAdsWithRequest:request];
}

সুইফট

func setUpAdsLoader() {
  adsLoader = IMAAdsLoader(settings: nil)
  adsLoader.delegate = self
}

func requestAds() {
  // Create ad display container for ad rendering.
  adDisplayContainer = IMAAdDisplayContainer(adContainer: self.view, viewController: self)
  // Create an ad request with our ad tag, display container, and optional user context.
  let request = IMAAdsRequest(
    adTagUrl: ViewController.adTagURLString,
    adDisplayContainer: adDisplayContainer,
    contentPlayhead: contentPlayhead,
    userContext: nil)

  adsLoader.requestAds(with: request)
}

৭. একটি অ্যাডস লোডার ডেলিগেট সেট আপ করুন।

একটি সফল লোড ইভেন্টে, IMAAdsLoader তার নির্ধারিত ডেলিগেটের adsLoadedWithData মেথডকে কল করে এবং এতে IMAAdsManager এর একটি ইনস্ট্যান্স পাস করে। IMAAdsManager ইনস্ট্যান্সটি পাওয়ার পর, অ্যাডস ম্যানেজারকে ইনিশিয়ালাইজ করুন, যা অ্যাড ট্যাগ URL-এর রেসপন্সের উপর ভিত্তি করে স্বতন্ত্র বিজ্ঞাপন লোড করে।

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

উদ্দেশ্য-সি

#pragma mark - IMAAdsLoaderDelegate

- (void)adsLoader:(IMAAdsLoader *)loader adsLoadedWithData:(IMAAdsLoadedData *)adsLoadedData {
  // Initialize and listen to the ads manager loaded for this request.
  self.adsManager = adsLoadedData.adsManager;
  self.adsManager.delegate = self;
  [self.adsManager initializeWithAdsRenderingSettings:nil];
}

- (void)adsLoader:(IMAAdsLoader *)loader failedWithErrorData:(IMAAdLoadingErrorData *)adErrorData {
  // Fall back to playing content.
  NSLog(@"Error loading ads: %@", adErrorData.adError.message);
  [self.contentPlayerViewController.player play];
}

সুইফট

func adsLoader(_ loader: IMAAdsLoader, adsLoadedWith adsLoadedData: IMAAdsLoadedData) {
  // Grab the instance of the IMAAdsManager and set ourselves as the delegate.
  adsManager = adsLoadedData.adsManager
  adsManager.delegate = self
  adsManager.initialize(with: nil)
}

func adsLoader(_ loader: IMAAdsLoader, failedWith adErrorData: IMAAdLoadingErrorData) {
  print("Error loading ads: \(adErrorData.adError.message ?? "No error message available.")")
  showContentPlayer()
  playerViewController.player?.play()
}

৮. একজন বিজ্ঞাপন ব্যবস্থাপক প্রতিনিধি সেট আপ করুন

সবশেষে, ইভেন্ট এবং অবস্থার পরিবর্তন পরিচালনা করার জন্য অ্যাডস ম্যানেজারের নিজস্ব একটি ডেলিগেট প্রয়োজন। IMAAdManagerDelegate মধ্যে বিজ্ঞাপনের ইভেন্ট ও ত্রুটি সামলানোর জন্য মেথড রয়েছে, সেইসাথে আপনার ভিডিও কন্টেন্ট প্লে এবং পজ করার মেথডও আছে।

প্লেব্যাক শুরু হচ্ছে

didReceiveAdEvent মেথডটি সমস্ত IMAAdEvent ইভেন্ট পরিচালনা করে। এই সাধারণ উদাহরণটির জন্য, কন্টেন্ট ও বিজ্ঞাপনের প্লেব্যাক শুরু করতে অ্যাডস ম্যানেজারকে জানানোর জন্য LOADED ইভেন্টটি লিসেন করুন। যখন ব্যবহারকারী কোনো আইকনে ট্যাপ করার পর একটি আইকন ফলব্যাক ডায়ালগ বন্ধ করে, তখন IMA SDK, ICON_FALLBACK_IMAGE_CLOSED ইভেন্টটি ট্রিগার করে। এই কাজটি সম্পন্ন হওয়ার পর, বিজ্ঞাপনের প্লেব্যাক পুনরায় শুরু হয়।

উদ্দেশ্য-সি

#pragma mark - IMAAdsManagerDelegate

- (void)adsManager:(IMAAdsManager *)adsManager didReceiveAdEvent:(IMAAdEvent *)event {
  switch (event.type) {
    case kIMAAdEvent_LOADED: {
      // Play each ad once it has loaded.
      [adsManager start];
      break;
    }
    case kIMAAdEvent_ICON_FALLBACK_IMAGE_CLOSED: {
      // Resume ad after user has closed dialog.
      [adsManager resume];
      break;
    }
    default:
      break;
  }
}

সুইফট

func adsManager(_ adsManager: IMAAdsManager, didReceive event: IMAAdEvent) {
  switch event.type {
  case IMAAdEventType.LOADED:
    // Play each ad once it has been loaded.
    adsManager.start()
  case IMAAdEventType.ICON_FALLBACK_IMAGE_CLOSED:
    // Resume playback after the user has closed the dialog.
    adsManager.resume()
  default:
    break
  }
}

ত্রুটি পরিচালনা

বিজ্ঞাপনের ত্রুটির জন্যও একটি হ্যান্ডলার যোগ করুন। আগের ধাপের মতোই, কোনো ত্রুটি ঘটলে কন্টেন্ট প্লেব্যাক পুনরায় শুরু করুন।

উদ্দেশ্য-সি

- (void)adsManager:(IMAAdsManager *)adsManager didReceiveAdError:(IMAAdError *)error {
  // Fall back to playing content.
  NSLog(@"AdsManager error: %@", error.message);
  [self showContentPlayer];
  [self.contentPlayerViewController.player play];
}

সুইফট

func adsManager(_ adsManager: IMAAdsManager, didReceive error: IMAAdError) {
  // Fall back to playing content
  print("AdsManager error: \(error.message ?? "No error message available.")")
  showContentPlayer()
  playerViewController.player?.play()
}

প্লে এবং পজ ইভেন্ট ট্রিগার করা

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

উদ্দেশ্য-সি

- (void)adsManagerDidRequestContentPause:(IMAAdsManager *)adsManager {
  // Pause the content for the SDK to play ads.
  [self.contentPlayerViewController.player pause];
  [self hideContentPlayer];
  // Trigger an update to send focus to the ad display container.
  self.adBreakActive = YES;
  [self setNeedsFocusUpdate];
}

- (void)adsManagerDidRequestContentResume:(IMAAdsManager *)adsManager {
  // Resume the content since the SDK is done playing ads (at least for now).
  [self showContentPlayer];
  [self.contentPlayerViewController.player play];
  // Trigger an update to send focus to the content player.
  self.adBreakActive = NO;
  [self setNeedsFocusUpdate];
}

সুইফট

func adsManagerDidRequestContentPause(_ adsManager: IMAAdsManager) {
  // Pause the content for the SDK to play ads.
  playerViewController.player?.pause()
  hideContentPlayer()
  // Trigger an update to send focus to the ad display container.
  adBreakActive = true
  setNeedsFocusUpdate()
}

func adsManagerDidRequestContentResume(_ adsManager: IMAAdsManager) {
  // Resume the content since the SDK is done playing ads (at least for now).
  showContentPlayer()
  playerViewController.player?.play()
  // Trigger an update to send focus to the content player.
  adBreakActive = false
  setNeedsFocusUpdate()
}

ব্যাস! আপনি এখন IMA SDK ব্যবহার করে বিজ্ঞাপনের অনুরোধ ও প্রদর্শন করতে পারছেন। SDK-এর অন্যান্য বৈশিষ্ট্য সম্পর্কে জানতে, অন্যান্য গাইড অথবা GitHub-এ থাকা নমুনাগুলো দেখুন।

পরবর্তী পদক্ষেপ

tvOS প্ল্যাটফর্মে বিজ্ঞাপনের আয় সর্বাধিক করতে, IDFA ব্যবহারের জন্য অ্যাপ ট্রান্সপারেন্সি অ্যান্ড ট্র্যাকিং পারমিশনের অনুরোধ করুন