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 13 বা তার পরবর্তী সংস্করণ
- IMA SDK ইনস্টল করার পদ্ধতি:
- সুইফট প্যাকেজ ম্যানেজার (পছন্দনীয়)
- কোকোপড
- iOS-এর জন্য IMA SDK- এর একটি ডাউনলোড করা কপি
১. একটি নতুন Xcode প্রজেক্ট তৈরি করুন
এক্সকোডে অবজেক্টিভ-সি অথবা সুইফট ব্যবহার করে একটি নতুন আইওএস প্রজেক্ট তৈরি করুন। প্রজেক্টের নাম হিসেবে BasicExample ব্যবহার করুন।
২. Xcode প্রজেক্টে IMA SDK যোগ করুন।
IMA SDK ইনস্টল করতে, আপনার পছন্দের পদ্ধতিটি বেছে নিন।
সুপারিশকৃত: সুইফট প্যাকেজ ম্যানেজার ব্যবহার করে SDK ইনস্টল করুন।
ইন্টারেক্টিভ মিডিয়া অ্যাডস এসডিকে সংস্করণ ৩.১৮.৪ থেকে সুইফট প্যাকেজ ম্যানেজার সমর্থন করে। সুইফট প্যাকেজটি ইম্পোর্ট করতে, নিম্নলিখিত ধাপগুলো সম্পন্ন করুন:
Xcode-এ, File > Add Package Dependencies... -এ গিয়ে IMA SDK Swift Package-টি ইনস্টল করুন।
প্রম্পটে, IMA iOS SDK Swift Package GitHub রিপোজিটরিটি খুঁজুন:
swift-package-manager-google-interactive-media-ads-ios।আপনি IMA SDK Swift প্যাকেজের যে সংস্করণটি ব্যবহার করতে চান, তা নির্বাচন করুন। নতুন প্রোজেক্টের জন্য, আমরা ‘ আপ টু নেক্সট মেজর ভার্সন’ ব্যবহার করার পরামর্শ দিই।
আপনার কাজ শেষ হয়ে গেলে, Xcode আপনার প্যাকেজ নির্ভরতাগুলো সমাধান করে এবং ব্যাকগ্রাউন্ডে সেগুলো ডাউনলোড করে নেয়। প্যাকেজ নির্ভরতা কীভাবে যোগ করতে হয়, সে সম্পর্কে আরও বিস্তারিত জানতে Apple-এর নিবন্ধটি দেখুন।
CocoaPods ব্যবহার করে SDK ইনস্টল করুন
CocoaPods হলো Xcode প্রোজেক্টের জন্য একটি ডিপেন্ডেন্সি ম্যানেজার এবং IMA SDK ইনস্টল করার জন্য এটিই প্রস্তাবিত পদ্ধতি। CocoaPods ইনস্টল বা ব্যবহার করার বিষয়ে আরও তথ্যের জন্য, CocoaPods ডকুমেন্টেশন দেখুন। CocoaPods ইনস্টল হয়ে গেলে, IMA SDK ইনস্টল করার জন্য নিম্নলিখিত নির্দেশাবলী ব্যবহার করুন:
আপনার BasicExample.xcodeproj ফাইলটি যে ডিরেক্টরিতে আছে, সেই একই ডিরেক্টরিতে Podfile নামে একটি টেক্সট ফাইল তৈরি করুন এবং নিম্নলিখিত কনফিগারেশনটি যোগ করুন:
যে ডিরেক্টরিতে Podfile রয়েছে, সেখান থেকে
pod install --repo-update. কমান্ডটি চালান।BasicExample.xcworkspace ফাইলটি খুলে নিশ্চিত করুন যে এতে BasicExample এবং Pods (CocoaPods দ্বারা ইনস্টল করা ডিপেন্ডেন্সি) নামে দুটি প্রজেক্ট রয়েছে, এর মাধ্যমে ইনস্টলেশন সফল হয়েছে কিনা তা যাচাই করুন।
ম্যানুয়ালি SDK ডাউনলোড এবং ইনস্টল করুন
আপনি যদি সুইফট প্যাকেজ ম্যানেজার ব্যবহার করতে না চান, তাহলে IMA SDK ডাউনলোড করে আপনার প্রজেক্টে ম্যানুয়ালি যোগ করুন।
৩. একটি ভিডিও প্লেয়ার তৈরি করুন
প্রথমে, একটি ভিডিও প্লেয়ার তৈরি করুন। প্রাথমিকভাবে, এই প্লেয়ারটি IMA SDK ব্যবহার করে না এবং এতে প্লেব্যাক চালু করার জন্য কোনো মেথড থাকে না।
উদ্দেশ্য-সি
প্লেয়ারের নির্ভরতাগুলো ইম্পোর্ট করুন:
#import "ViewController.h"
@import AVFoundation;
খেলোয়াড়ের ভেরিয়েবলগুলো সেট করুন:
@interface ViewController () <IMAAdsLoaderDelegate, IMAAdsManagerDelegate>
/// Content video player.
@property(nonatomic, strong) AVPlayer *contentPlayer;
/// Play button.
@property(nonatomic, weak) IBOutlet UIButton *playButton;
/// UIView in which we will render our AVPlayer for content.
@property(nonatomic, weak) IBOutlet UIView *videoView;
ভিউটি লোড হলে ভিডিও প্লেয়ারটি চালু করুন:
@implementation ViewController
// The content URL to play.
NSString *const kTestAppContentUrl_MP4 =
@"https://storage.googleapis.com/gvabox/media/samples/stock.mp4";
// Ad tag
NSString *const kTestAppAdTagUrl = @"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=";
- (void)viewDidLoad {
[super viewDidLoad];
self.playButton.layer.zPosition = MAXFLOAT;
[self setupAdsLoader];
[self setUpContentPlayer];
}
#pragma mark Content Player Setup
- (void)setUpContentPlayer {
// Load AVPlayer with path to our content.
NSURL *contentURL = [NSURL URLWithString:kTestAppContentUrl_MP4];
self.contentPlayer = [AVPlayer playerWithURL:contentURL];
// Create a player layer for the player.
AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.contentPlayer];
// Size, position, and display the AVPlayer.
playerLayer.frame = self.videoView.layer.bounds;
[self.videoView.layer addSublayer:playerLayer];
// Set up our content playhead and contentComplete callback.
self.contentPlayhead = [[IMAAVPlayerContentPlayhead alloc] initWithAVPlayer:self.contentPlayer];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(contentDidFinishPlaying:)
name:AVPlayerItemDidPlayToEndTimeNotification
object:self.contentPlayer.currentItem];
}
- (IBAction)onPlayButtonTouch:(id)sender {
[self requestAds];
self.playButton.hidden = YES;
}
সুইফট
প্লেয়ারের নির্ভরতাগুলো ইম্পোর্ট করুন:
import AVFoundation
খেলোয়াড়ের ভেরিয়েবলগুলো সেট করুন:
class PlayerContainerViewController: UIViewController, IMAAdsLoaderDelegate, IMAAdsManagerDelegate {
static let contentURL = URL(
string: "https://storage.googleapis.com/gvabox/media/samples/stock.mp4")!
private var contentPlayer = AVPlayer(url: PlayerContainerViewController.contentURL)
private lazy var playerLayer: AVPlayerLayer = {
AVPlayerLayer(player: contentPlayer)
}()
ভিউটি লোড হলে ভিডিও প্লেয়ারটি চালু করুন:
private lazy var videoView: UIView = {
let videoView = UIView()
videoView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(videoView)
NSLayoutConstraint.activate([
videoView.bottomAnchor.constraint(
equalTo: view.safeAreaLayoutGuide.bottomAnchor),
videoView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
videoView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor),
videoView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor),
])
return videoView
}()
// MARK: - View controller lifecycle methods
override func viewDidLoad() {
super.viewDidLoad()
videoView.layer.addSublayer(playerLayer)
adsLoader.delegate = self
NotificationCenter.default.addObserver(
self,
selector: #selector(contentDidFinishPlaying(_:)),
name: .AVPlayerItemDidPlayToEndTime,
object: contentPlayer.currentItem)
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
playerLayer.frame = videoView.layer.bounds
}
override func viewWillTransition(
to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator
) {
coordinator.animate { _ in
// do nothing
} completion: { _ in
self.playerLayer.frame = self.videoView.layer.bounds
}
}
// MARK: - Public methods
func playButtonPressed() {
requestAds()
}
৪. IMA SDK আমদানি করুন
IMA SDK ইম্পোর্ট করতে, নিম্নলিখিতগুলি করুন:
উদ্দেশ্য-সি
IMA SDK আমদানি করুন:
@import GoogleInteractiveMediaAds;অ্যাপে ব্যবহৃত
IMAAdsLoader,IMAAVPlayerContentPlayhead, এবংIMAAdsManagerক্লাসগুলোর জন্য ভ্যারিয়েবল তৈরি করুন:// SDK /// Entry point for the SDK. Used to make ad requests. @property(nonatomic, strong) IMAAdsLoader *adsLoader; /// Playhead used by the SDK to track content video progress and insert mid-rolls. @property(nonatomic, strong) IMAAVPlayerContentPlayhead *contentPlayhead; /// Main point of interaction with the SDK. Created by the SDK as the result of an ad request. @property(nonatomic, strong) IMAAdsManager *adsManager;
সুইফট
IMA SDK আমদানি করুন:
import GoogleInteractiveMediaAdsঅ্যাপে ব্যবহৃত
IMAAdsLoader,IMAAVPlayerContentPlayhead, এবংIMAAdsManagerক্লাসগুলোর জন্য ভ্যারিয়েবল তৈরি করুন: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=" private let adsLoader = IMAAdsLoader() private var adsManager: IMAAdsManager? private lazy var contentPlayhead: IMAAVPlayerContentPlayhead = { IMAAVPlayerContentPlayhead(avPlayer: contentPlayer) }()
৫. কন্টেন্ট প্লেহেড ট্র্যাকার এবং এন্ড-অফ-স্ট্রিম অবজারভার বাস্তবায়ন করুন।
মিড-রোল বিজ্ঞাপন চালানোর জন্য, IMA SDK-কে আপনার ভিডিও কন্টেন্টের বর্তমান অবস্থান ট্র্যাক করতে হয়। এটি করার জন্য, এমন একটি ক্লাস তৈরি করুন যা IMAContentPlayhead ইমপ্লিমেন্ট করে। আপনি যদি AVPlayer ব্যবহার করেন, যেমনটি এই উদাহরণে দেখানো হয়েছে, তাহলে SDK আপনাকে IMAAVPlayerContentPlayhead ক্লাসটি সরবরাহ করে, যা আপনার জন্য এই কাজটি করে দেয়। আপনি যদি AVPlayer ব্যবহার না করেন, তাহলে আপনাকে নিজের একটি ক্লাসে IMAContentPlayhead ইমপ্লিমেন্ট করতে হবে।
আপনার কন্টেন্ট প্লে হওয়া শেষ হলে SDK-কে তা জানাতে হবে, যাতে এটি পোস্ট-রোল বিজ্ঞাপন প্রদর্শন করতে পারে। এটি করার জন্য, AVPlayerItemDidPlayToEndTimeNotification ব্যবহার করে IMAAdsLoader-এর contentComplete মেথডটি কল করুন।
উদ্দেশ্য-সি
প্লেয়ার সেটআপে IMAAVPlayerContentPlayhead ইনস্ট্যান্সটি তৈরি করুন:
// Set up our content playhead and contentComplete callback.
self.contentPlayhead = [[IMAAVPlayerContentPlayhead alloc] initWithAVPlayer:self.contentPlayer];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(contentDidFinishPlaying:)
name:AVPlayerItemDidPlayToEndTimeNotification
object:self.contentPlayer.currentItem];
কন্টেন্ট প্লে হওয়া শেষ হলে IMAAdsLoader.contentComplete() কল করার জন্য contentDidFinishPlaying() মেথডটি তৈরি করুন:
- (void)contentDidFinishPlaying:(NSNotification *)notification {
// Make sure we don't call contentComplete as a result of an ad completing.
if (notification.object == self.contentPlayer.currentItem) {
[self.adsLoader contentComplete];
}
}
সুইফট
প্লেয়ার সেটআপে কন্টেন্ট এন্ডেড অবজারভার তৈরি করুন:
NotificationCenter.default.addObserver(
self,
selector: #selector(contentDidFinishPlaying(_:)),
name: .AVPlayerItemDidPlayToEndTime,
object: contentPlayer.currentItem)
কন্টেন্ট প্লে হওয়া শেষ হলে IMAAdsLoader.contentComplete() কল করার জন্য contentDidFinishPlaying() মেথডটি তৈরি করুন:
@objc func contentDidFinishPlaying(_ notification: Notification) {
// Make sure we don't call contentComplete as a result of an ad completing.
if notification.object as? AVPlayerItem == contentPlayer.currentItem {
adsLoader.contentComplete()
}
}
৬. বিজ্ঞাপন লোডার চালু করুন এবং বিজ্ঞাপনের জন্য অনুরোধ করুন।
একগুচ্ছ বিজ্ঞাপনের জন্য অনুরোধ করতে, আপনাকে একটি IMAAdsLoader ইনস্ট্যান্স তৈরি করতে হবে। এই লোডারটি একটি নির্দিষ্ট বিজ্ঞাপন ট্যাগ URL-এর সাথে যুক্ত IMAAdsRequest অবজেক্টগুলো প্রসেস করে।
সর্বোত্তম অনুশীলন হিসেবে, আপনার অ্যাপের সম্পূর্ণ জীবনচক্রের জন্য IMAAdsLoader এর কেবল একটি ইনস্ট্যান্সই বজায় রাখুন। অতিরিক্ত বিজ্ঞাপনের অনুরোধ করার জন্য, একটি নতুন IMAAdsRequest অবজেক্ট তৈরি করুন, কিন্তু একই IMAAdsLoader পুনরায় ব্যবহার করুন। আরও তথ্যের জন্য, IMA SDK FAQ দেখুন।
উদ্দেশ্য-সি
- (void)setupAdsLoader {
self.adsLoader = [[IMAAdsLoader alloc] initWithSettings:nil];
self.adsLoader.delegate = self;
}
- (void)requestAds {
// Create an ad display container for ad rendering.
IMAAdDisplayContainer *adDisplayContainer =
[[IMAAdDisplayContainer alloc] initWithAdContainer:self.videoView
viewController:self
companionSlots:nil];
// Create an ad request with our ad tag, display container, and optional user context.
IMAAdsRequest *request = [[IMAAdsRequest alloc] initWithAdTagUrl:kTestAppAdTagUrl
adDisplayContainer:adDisplayContainer
contentPlayhead:self.contentPlayhead
userContext:nil];
[self.adsLoader requestAdsWithRequest:request];
}
সুইফট
private func requestAds() {
// Create ad display container for ad rendering.
let adDisplayContainer = IMAAdDisplayContainer(
adContainer: videoView, viewController: self, companionSlots: nil)
// Create an ad request with our ad tag, display container, and optional user context.
let request = IMAAdsRequest(
adTagUrl: PlayerContainerViewController.adTagURLString,
adDisplayContainer: adDisplayContainer,
contentPlayhead: contentPlayhead,
userContext: nil)
adsLoader.requestAds(with: request)
}
৭. একটি অ্যাডস লোডার ডেলিগেট সেট আপ করুন।
একটি সফল লোড ইভেন্টে, IMAAdsLoader তার নির্ধারিত ডেলিগেটের adsLoadedWithData মেথডকে কল করে এবং এতে IMAAdsManager এর একটি ইনস্ট্যান্স পাস করে। এরপর আপনি অ্যাডস ম্যানেজারকে ইনিশিয়ালাইজ করতে পারেন, যা অ্যাড ট্যাগ URL-এর রেসপন্স অনুযায়ী সংজ্ঞায়িত স্বতন্ত্র বিজ্ঞাপনগুলো লোড করে।
এছাড়াও, লোডিং প্রক্রিয়ার সময় ঘটতে পারে এমন যেকোনো ত্রুটি অবশ্যই সমাধান করুন। যদি বিজ্ঞাপন লোড না হয়, তবে নিশ্চিত করুন যেন বিজ্ঞাপন ছাড়াই মিডিয়া প্লেব্যাক চলতে থাকে, যাতে ব্যবহারকারীর অভিজ্ঞতায় কোনো ব্যাঘাত না ঘটে।
উদ্দেশ্য-সি
- (void)adsLoader:(IMAAdsLoader *)loader adsLoadedWithData:(IMAAdsLoadedData *)adsLoadedData {
// Grab the instance of the IMAAdsManager and set ourselves as the delegate.
self.adsManager = adsLoadedData.adsManager;
self.adsManager.delegate = self;
// Create ads rendering settings to tell the SDK to use the in-app browser.
IMAAdsRenderingSettings *adsRenderingSettings = [[IMAAdsRenderingSettings alloc] init];
adsRenderingSettings.linkOpenerPresentingController = self;
// Initialize the ads manager.
[self.adsManager initializeWithAdsRenderingSettings:adsRenderingSettings];
}
- (void)adsLoader:(IMAAdsLoader *)loader failedWithErrorData:(IMAAdLoadingErrorData *)adErrorData {
// Something went wrong loading ads. Log the error and play the content.
NSLog(@"Error loading ads: %@", adErrorData.adError.message);
[self.contentPlayer 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
// Create ads rendering settings and tell the SDK to use the in-app browser.
let adsRenderingSettings = IMAAdsRenderingSettings()
adsRenderingSettings.linkOpenerPresentingController = self
// Initialize the ads manager.
adsManager?.initialize(with: adsRenderingSettings)
}
func adsLoader(_ loader: IMAAdsLoader, failedWith adErrorData: IMAAdLoadingErrorData) {
if let message = adErrorData.adError.message {
print("Error loading ads: \(message)")
}
contentPlayer.play()
}
৮. একজন বিজ্ঞাপন ব্যবস্থাপক প্রতিনিধি সেট আপ করুন
সবশেষে, ইভেন্ট এবং অবস্থার পরিবর্তন পরিচালনা করার জন্য অ্যাডস ম্যানেজারের নিজস্ব একটি ডেলিগেট প্রয়োজন। IMAAdManagerDelegate মধ্যে অ্যাড ইভেন্ট ও ত্রুটি সামলানোর জন্য মেথড রয়েছে, সেইসাথে আপনার ভিডিও কন্টেন্ট প্লে এবং পজ করার মেথডও আছে।
প্লেব্যাক শুরু করুন
কন্টেন্ট এবং বিজ্ঞাপনের প্লেব্যাক শুরু করতে LOADED ইভেন্টটির জন্য অপেক্ষা করুন। আরও বিস্তারিত জানতে didReceiveAdEvent দেখুন।
উদ্দেশ্য-সি
- (void)adsManager:(IMAAdsManager *)adsManager didReceiveAdEvent:(IMAAdEvent *)event {
// When the SDK notified us that ads have been loaded, play them.
if (event.type == kIMAAdEvent_LOADED) {
[adsManager start];
}
}
সুইফট
func adsManager(_ adsManager: IMAAdsManager, didReceive event: IMAAdEvent) {
// When the SDK notifies us the ads have been loaded, play them.
if event.type == IMAAdEventType.LOADED {
adsManager.start()
}
}
ত্রুটিগুলি পরিচালনা করুন
বিজ্ঞাপনের ত্রুটির জন্যও একটি হ্যান্ডলার যোগ করুন। আগের ধাপের মতোই, কোনো ত্রুটি ঘটলে কন্টেন্ট প্লেব্যাক পুনরায় শুরু করুন।
উদ্দেশ্য-সি
- (void)adsManager:(IMAAdsManager *)adsManager didReceiveAdError:(IMAAdError *)error {
// Something went wrong with the ads manager after ads were loaded. Log the error and play the
// content.
NSLog(@"AdsManager error: %@", error.message);
[self.contentPlayer play];
}
সুইফট
func adsManager(_ adsManager: IMAAdsManager, didReceive error: IMAAdError) {
// Something went wrong with the ads manager after ads were loaded.
// Log the error and play the content.
if let message = error.message {
print("AdsManager error: \(message)")
}
contentPlayer.play()
}
প্লে এবং পজ ইভেন্টগুলির জন্য শুনুন
আপনাকে যে শেষ দুটি ডেলিগেট মেথড ইমপ্লিমেন্ট করতে হবে, সেগুলো IMA SDK-এর অনুরোধে মূল ভিডিও কন্টেন্টে প্লে এবং পজ ইভেন্ট ট্রিগার করে। অনুরোধ অনুযায়ী পজ এবং প্লে ট্রিগার করার ফলে বিজ্ঞাপন প্রদর্শনের সময় ব্যবহারকারী ভিডিও কন্টেন্টের কোনো অংশ দেখতে বঞ্চিত হন না।
উদ্দেশ্য-সি
- (void)adsManagerDidRequestContentPause:(IMAAdsManager *)adsManager {
// The SDK is going to play ads, so pause the content.
[self.contentPlayer pause];
}
- (void)adsManagerDidRequestContentResume:(IMAAdsManager *)adsManager {
// The SDK is done playing ads (at least for now), so resume the content.
[self.contentPlayer play];
}
সুইফট
func adsManagerDidRequestContentPause(_ adsManager: IMAAdsManager) {
// The SDK is going to play ads, so pause the content.
contentPlayer.pause()
}
func adsManagerDidRequestContentResume(_ adsManager: IMAAdsManager) {
// The SDK is done playing ads (at least for now), so resume the content.
contentPlayer.play()
}
ব্যাস! আপনি এখন IMA SDK ব্যবহার করে বিজ্ঞাপনের অনুরোধ ও প্রদর্শন করতে পারছেন। SDK-এর অন্যান্য বৈশিষ্ট্য সম্পর্কে জানতে, অন্যান্য গাইড অথবা GitHub-এ থাকা নমুনাগুলো দেখুন।
পরবর্তী পদক্ষেপ
iOS প্ল্যাটফর্মে বিজ্ঞাপনের আয় সর্বাধিক করতে, IDFA ব্যবহারের জন্য অ্যাপ ট্রান্সপারেন্সি অ্যান্ড ট্র্যাকিং পারমিশনের অনুরোধ করুন ।

