বিজ্ঞাপন নেটওয়ার্ক মধ্যস্থতা অ্যাডাপ্টার উন্নয়ন

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

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

পূর্বশর্ত

  • Xcode 15.3 বা উচ্চতর
  • 8.0 বা উচ্চতর স্থাপনার লক্ষ্য
  • Google মোবাইল বিজ্ঞাপন iOS SDK ডাউনলোডের মধ্যস্থতা অ্যাডাপ্টার ফোল্ডার থেকে অতিরিক্ত শিরোনাম

একটি মধ্যস্থতা অ্যাডাপ্টার তৈরি করতে আপনার বিজ্ঞাপন নেটওয়ার্কের সাথে Google-এর সাথে একটি প্রতিষ্ঠিত কাজের সম্পর্ক থাকতে হবে।

নমুনা বিজ্ঞাপন নেটওয়ার্ক

নমুনা বিজ্ঞাপন নেটওয়ার্কের জন্য কীভাবে একটি অ্যাডাপ্টার তৈরি করতে হয় এই নির্দেশিকাটি প্রদর্শন করে৷ নমুনা বিজ্ঞাপন নেটওয়ার্ক SDK-তে এমন ক্লাস রয়েছে যা বেশিরভাগ বিজ্ঞাপন নেটওয়ার্ক দ্বারা অফার করা ক্লাসগুলির প্রতিনিধি:

@interface SampleBanner : UILabel

@property(nonatomic, copy) NSString *adUnit;
@property(nonatomic, weak) id<SampleBannerAdDelegate> delegate;
- (void)fetchAd:(SampleAdRequest *)request;

@end

typedef NS_ENUM(NSInteger, SampleErrorCode) {
  SampleErrorCodeBadRequest = 0,
  SampleErrorCodeUnknown = 1,
  SampleErrorCodeNetworkError = 2,
  SampleErrorCodeNoInventory = 3,
};

@interface SampleAdRequest : NSObject

@property(nonatomic, assign) BOOL testMode;
@property(nonatomic, copy) NSArray *keywords;

@end

@interface SampleInterstitial : NSObject

@property(nonatomic, copy) NSString *adUnit;
@property(nonatomic, weak) id<SampleInterstitialAdDelegate> delegate;
@property(nonatomic, assign, getter=isInterstitialLoaded) BOOL interstitialLoaded;
- (void)fetchAd:(SampleAdRequest *)request;
- (void)show;

@end

@protocol SampleBannerAdDelegate
- (void)bannerDidLoad:(SampleBanner *)banner;
- (void)banner:(SampleBanner *)banner didFailToLoadAdWithError:(SampleErrorCode)error;
- (void)bannerWillLeaveApplication:(SampleBanner *)banner;

@end

@protocol SampleInterstitialAdDelegate<NSObject>
- (void)interstitialDidLoad:(SampleInterstitial *)interstitial;
- (void)interstitial:(SampleInterstitial *)interstitial
    didFailToLoadAdWithError:(SampleErrorCode)error;
- (void)interstitialWillPresentScreen:(SampleInterstitial *)interstitial;
- (void)interstitialWillDismissScreen:(SampleInterstitial *)interstitial;
- (void)interstitialDidDismissScreen:(SampleInterstitial *)interstitial;
- (void)interstitialWillLeaveApplication:(SampleInterstitial *)interstitial;

@end

এই ক্লাসগুলি সম্পর্কে আরও তথ্যের জন্য সম্পূর্ণ নমুনা SDK বাস্তবায়ন দেখুন৷

সংযোগকারী

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

- (id)initWithGADMAdNetworkConnector:(id<GADMAdNetworkConnector>)c {
  if ((self = [super init])) {
    _connector = c;
  }
  return self;
}

সার্ভার পরামিতি

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

self.interstitialAd.adUnit = [[self.connector credentials] objectForKey:@"ad_unit"];

মধ্যস্থতা নেটওয়ার্ক সেটআপ

বিজ্ঞাপন নেটওয়ার্কগুলিকে অবশ্যই তাদের নেটওয়ার্কের জন্য প্রয়োজনীয় সার্ভার প্যারামিটারগুলি AdMob-কে জানাতে হবে৷ এটি AdMob কে সামনের প্রান্তে আপনার নেটওয়ার্ক কনফিগার করতে সক্ষম করে।

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

মধ্যস্থতা বিজ্ঞাপন নেটওয়ার্ক কনফিগার করার বিষয়ে আরও তথ্যের জন্য এই নিবন্ধটি দেখুন।

একটি মধ্যস্থতা বিজ্ঞাপন অনুরোধ করুন

মধ্যস্থতা ব্যানার অনুরোধের জন্য, অ্যাডাপ্টার ইনস্ট্যান্টিয়েট করার সাথে সাথে getBannerWithSize পদ্ধতিটি কল করা হয়। এই পদ্ধতি কিছুই ফেরত দেয় না। এটি নেটওয়ার্কে একটি অ্যাসিঙ্ক্রোনাস বিজ্ঞাপন আনা শুরু করতে অ্যাডাপ্টারকে সংকেত দেয়। আপনার অ্যাডাপ্টারকে আপনার SDK-এর জন্য কলব্যাক শুনতে দিন। যদি আপনার SDK প্রদত্ত বিজ্ঞাপনের আকার সমর্থন না করে বা ব্যানার বিজ্ঞাপন সমর্থন না করে, তাহলে সংযোগকারীতে adapter:didFailAd: পদ্ধতিটি ব্যবহার করুন৷

নমুনা বিজ্ঞাপন নেটওয়ার্কের জন্য getBannerWithSize এর একটি বাস্তবায়ন এইরকম দেখাচ্ছে:

- (void)getBannerWithSize:(GADAdSize)adSize {
  //The adapter should fail immediately if the adSize is not supported
  if (!GADAdSizeEqualToSize(adSize, GADAdSizeBanner) &&
      !GADAdSizeEqualToSize(adSize, GADAdSizeMediumRectangle) &&
      !GADAdSizeEqualToSize(adSize, GADAdSizeFullBanner) &&
      !GADAdSizeEqualToSize(adSize, GADAdSizeLeaderboard)) {
    NSString *errorDesc =
        [NSString stringWithFormat:@"Invalid ad type %@, not going to get ad.",
                                   NSStringFromGADAdSize(adSize)];
    NSDictionary *errorInfo = [NSDictionary
        dictionaryWithObjectsAndKeys:errorDesc, NSLocalizedDescriptionKey, nil];
    NSError *error = [NSError errorWithDomain:GADErrorDomain
                                         code:GADErrorMediationInvalidAdSize
                                     userInfo:errorInfo];
    [self.connector adapter:self didFailAd:error];
    return;
  }
  self.bannerAd = [[SampleBanner alloc]
      initWithFrame:CGRectMake(0, 0, adSize.size.width, adSize.size.height)];

  self.bannerAd.delegate = self;
  self.bannerAd.adUnit = [[self.connector credentials] objectForKey:@"ad_unit"];

  // Setup request parameters.
  SampleAdRequest *request = [[SampleAdRequest alloc] init];
  request.testMode = self.connector.testMode;
  request.keywords = self.connector.userKeywords;
  [self.bannerAd fetchAd:request];
  NSLog(@"Requesting banner from Sample Ad Network");
}

অতিরিক্ত টার্গেটিং পরামিতি

সংযোগকারীতে কিছু সাধারণ টার্গেটিং তথ্য রয়েছে যা আপনি বিজ্ঞাপন লক্ষ্য করার জন্য উল্লেখ করতে পারেন:

  • userKeywords
  • testMode
  • childDirectedTreatment

মধ্যস্থতা অতিরিক্ত

মধ্যস্থতা অতিরিক্তগুলি আপনার বিজ্ঞাপন নেটওয়ার্ককে অতিরিক্ত টার্গেটিং প্যারামিটার বা ইনপুটগুলিকে সমর্থন করার অনুমতি দেয় যা সংযোগকারীর দ্বারা প্রদত্ত অতিরিক্ত অনুরোধের পরামিতিগুলির দ্বারা আচ্ছাদিত নয়৷ এই কার্যকারিতা একটি ক্লাসের মাধ্যমে প্রদান করা যেতে পারে যা GADAdNetworkExtras প্রোটোকল প্রয়োগ করে। SampleAdNetworkExtras ক্লাসটি একটি উদাহরণ হিসাবে নীচে দেখানো হয়েছে:

@interface SampleAdNetworkExtras : NSObject <GADAdNetworkExtras>
/// Should ad volume audio be muted.
@property(nonatomic, assign) BOOL muteAudio;

@end

বিজ্ঞাপনের অনুরোধ করার সময় প্রকাশকদের অবশ্যই আপনার GADAdNetworkExtras সাবক্লাসের একটি উদাহরণ পাস করতে হবে। আপনার GADAdNetworkExtras সাবক্লাসের এই উদাহরণটি সংযোগকারীর মাধ্যমে অ্যাক্সেস করা যেতে পারে। আপনার নেটওয়ার্কের জন্য বিজ্ঞাপনের অনুরোধ তৈরি করার সময় আপনি কীভাবে মধ্যস্থতা অতিরিক্ত ব্যবহার করতে পারেন তা এখানে রয়েছে:

SampleAdRequest *request = [[SampleAdRequest alloc] init];
SampleAdNetworkExtras *myAdNetworkExtras = [self.connector networkExtras];
request.muteAudio = myAdNetworkExtras.muteAudio;
[self.bannerAd fetchAd:request];

সংযোগকারীর মাধ্যমে আপনার GADAdNetworkExtras সাবক্লাস অ্যাক্সেস করা যায় তা নিশ্চিত করতে, networkExtrasClass প্রয়োগ করুন এবং আপনার GADAdNetworkExtras সাবক্লাস ফেরত দিন:

+ (Class<GADAdNetworkExtras>)networkExtrasClass {
  return [SampleAdNetworkExtras class];
}

যদি আপনার অ্যাডাপ্টার মধ্যস্থতা অতিরিক্ত ব্যবহার না করে, তাহলে networkExtrasClass পদ্ধতিটি Nil প্রদান করে।

মধ্যস্থতা জানান

আপনার অ্যাডাপ্টারকে আপনার নেটওয়ার্কের জন্য বিজ্ঞাপন শ্রোতাকে প্রয়োগ করতে দিন এবং সংযোগকারীর মাধ্যমে প্রাসঙ্গিক বিজ্ঞাপন ইভেন্ট কলব্যাকগুলি ফরোয়ার্ড করুন৷ নীচের টেবিলটি ব্যাখ্যা করে যে কখন প্রতিটি প্রতিনিধি পদ্ধতিতে কল করতে হবে:

পদ্ধতি কখন ফোন করতে হবে
adapter:didReceiveAdView: ব্যানার অনুরোধ সফল হয়েছে.
adapter:didFailAd: ব্যানার অনুরোধ ব্যর্থ হয়েছে.
adapterDidGetAdClick: ব্যানারে ক্লিক করা হয়েছে।
adapterWillPresentFullScreenModal: ব্যানার একটি ইন-অ্যাপ ওভারলে উপস্থাপন করবে।
adapterWillDismissFullScreenModal: ইন-অ্যাপ ওভারলে বন্ধ হয়ে যাবে।
adapterDidDismissFullScreenModal: ইন-অ্যাপ ওভারলে বন্ধ করা হয়েছে।
adapterWillLeaveApplication: অ্যাপ্লিকেশনটি পটভূমিতে স্থাপন করা হবে বা বন্ধ করা হবে কারণ ব্যবহারকারী একটি বিজ্ঞাপনে ক্লিক করেছেন যা অন্য অ্যাপ্লিকেশন চালু করবে।

নিম্নলিখিত উদাহরণটি ত্রুটি এবং স্থিতি বার্তা ফরোয়ার্ড করতে নমুনা বিজ্ঞাপন নেটওয়ার্ক থেকে SampleBannerAdDelegate ইন্টারফেস প্রয়োগ করে:

- (void)bannerDidLoad:(SampleBanner *)banner {
  [self.connector adapter:self didReceiveAdView:banner];
}

- (void)banner:(SampleBanner *)banner didFailWithError:(SampleErrorCode)error {
  [self.connector adapter:self
                didFailAd:[NSError errorWithDomain:@"Ad request failed"
                                              code:error
                                          userInfo:nil]];
}

- (void)bannerWillLeaveApplication:(SampleBanner *)banner {
  [self.connector adapterDidGetAdClick:self];
  [self.connector adapterWillLeaveApplication:self];
}

ইন-অ্যাপ ওভারলে বনাম বাহ্যিক অ্যাপ্লিকেশন চালু করুন

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

যদি একটি ব্যানার ক্লিক একটি পূর্ণ-স্ক্রীন ওভারলে খোলে, ওভারলে উপস্থাপন করার সময় adapterWillPresentFullScreenModal: কল করুন। ওভারলে বন্ধ হয়ে গেলে, adapterWillDismissFullScreenModal: এবং adapterDidDismissFullScreenModal: উভয়কে কল করুন।

যদি একটি ব্যানার ক্লিক (অথবা একটি পূর্ণ-স্ক্রীন ওভারলে ক্লিক) ব্যবহারকারীকে অ্যাপ্লিকেশনটি ছেড়ে চলে যায়, তাহলে adapterWillLeaveApplication: কলব্যাক করুন৷

আপনার কাছে এখন ব্যানারগুলির জন্য একটি কার্যকরী মধ্যস্থতা অ্যাডাপ্টার রয়েছে৷ রেফারেন্সের জন্য, SampleAdapter একটি সম্পূর্ণ বাস্তবায়ন GitHub এ পাওয়া যাবে।

একটি ইন্টারস্টিশিয়াল অ্যাডাপ্টার প্রয়োগ করুন

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

- (void)getInterstitial {
  self.interstitialAd = [[SampleInterstitial alloc] init];
  self.interstitialAd.delegate = self;
  self.interstitialAd.adUnit =
      [[self.connector credentials] objectForKey:@"ad_unit"];

  SampleAdRequest *request = [[SampleAdRequest alloc] init];
  // Setup request parameters.
  request.testMode = self.connector.testMode;
  request.keywords = self.connector.userKeywords;

  [self.interstitialAd fetchAd:request];
  NSLog(@"Requesting interstitial from Sample Ad Network");
}

ঠিক যেমন MediationBannerAdapter এর সাথে, আপনি সংযোগকারী থেকে প্রকাশক সনাক্তকরণ এবং বিজ্ঞাপন লক্ষ্য করার তথ্য পেতে পারেন।

মধ্যস্থতা জানান

আপনার অ্যাডাপ্টারকে আপনার নেটওয়ার্কের জন্য বিজ্ঞাপন প্রতিনিধি বাস্তবায়ন করতে দিন এবং সংযোগকারীর মাধ্যমে প্রাসঙ্গিক বিজ্ঞাপন ইভেন্ট কলব্যাকগুলি ফরোয়ার্ড করুন৷ নীচের টেবিলটি ব্যাখ্যা করে যে কখন প্রতিটি প্রতিনিধি পদ্ধতিতে কল করতে হবে:

পদ্ধতি কখন ফোন করতে হবে
adapterDidReceiveInterstitial: ইন্টারস্টিশিয়াল অনুরোধ সফল হয়েছে৷
adapter:didFailInterstitial: ইন্টারস্টিশিয়াল অনুরোধ ব্যর্থ হয়েছে৷
adapterDidGetAdClick: ইন্টারস্টিশিয়াল ক্লিক করা হয়েছে.
adapterWillPresentInterstitial: ইন্টারস্টিশিয়াল দেখানো হবে।
adapterWillDismissInterstitial: ইন্টারস্টিশিয়ালটি খারিজ হতে চলেছে৷
adapterDidDismissInterstitial: ইন্টারস্টিশিয়ালটি খারিজ করা হয়েছে।
adapterWillLeaveApplication: অ্যাপ্লিকেশনটি ব্যাকগ্রাউন্ড বা সমাপ্ত হবে কারণ ব্যবহারকারী একটি বিজ্ঞাপনে ক্লিক করেছে যা অন্য অ্যাপ্লিকেশন চালু করবে।

নিম্নলিখিত উদাহরণ ত্রুটি এবং স্থিতি বার্তা ফরোয়ার্ড করার জন্য নমুনা বিজ্ঞাপন নেটওয়ার্কের SampleInterstitialAdDelegate ইন্টারফেস প্রয়োগ করে:

- (void)interstitialDidLoad:(SampleInterstitial *)interstitial {
  [self.connector adapterDidReceiveInterstitial:self];
}

- (void)interstitial:(SampleInterstitial *)interstitial
    didFailWithError:(SampleErrorCode)error {
  [self.connector adapter:self
      didFailInterstitial:[NSError errorWithDomain:@"Ad request failed"
                                              code:error
                                          userInfo:nil]];
}

- (void)interstitialWillPresentScreen:(SampleInterstitial *)interstitial {
  [self.connector adapterWillPresentInterstitial:self];
}

- (void)interstitialWillDismissScreen:(SampleInterstitial *)interstitial {
  [self.connector adapterWillDismissInterstitial:self];
}

- (void)interstitialDidDismissScreen:(SampleInterstitial *)interstitial {
  [self.connector adapterDidDismissInterstitial:self];
}

একটি ইন্টারস্টিশিয়াল উপস্থাপন করুন

একবার অ্যাডাপ্টারটি adapterDidReceiveInterstitial কল করলে, presentInterstitialFromRootViewController কল না হওয়া পর্যন্ত ইন্টারস্টিশিয়াল দেখানোর জন্য অপেক্ষা করুন। অ্যাপ ডেভেলপার সিদ্ধান্ত নেয় কখন ইন্টারস্টিশিয়াল দেখাতে হবে, যা প্রাপ্তির কয়েক মিনিট পর হতে পারে।

এখানে presentInterstitialFromRootViewController: নমুনা বিজ্ঞাপন নেটওয়ার্কের জন্য:

- (void)presentInterstitialFromRootViewController:
    (UIViewController *)rootViewController {
  if ([self.interstitialAd isLoaded]) {
    [self.interstitialAd show];
  }
}

আপনার মধ্যস্থতা অ্যাডাপ্টার ইন্টারস্টিশিয়াল বিজ্ঞাপনগুলি পরিচালনা করার জন্য প্রস্তুত৷ রেফারেন্সের জন্য, SampleAdapter একটি সম্পূর্ণ বাস্তবায়ন GitHub এ পাওয়া যাবে।

FAQ

আমার কি অ্যাডাপ্টারটিকে আমার SDK লাইব্রেরির অংশ হিসাবে বা একটি পৃথক লাইব্রেরি হিসাবে অন্তর্ভুক্ত করা উচিত?
আমরা আপনার SDK লাইব্রেরির অংশ হিসাবে অ্যাডাপ্টার অন্তর্ভুক্ত করার পরামর্শ দিই যাতে বিকাশকারীদের আপনার নেটওয়ার্ক অন্তর্ভুক্ত করার জন্য শুধুমাত্র একটি লাইব্রেরি উল্লেখ করতে হয়।
যদি আমার অ্যাডাপ্টার শুধুমাত্র ব্যানার বিজ্ঞাপন সমর্থন করে তাহলে আমি কি করব?

যদি আপনার অ্যাডাপ্টার শুধুমাত্র ব্যানার সমর্থন করে, তাহলে ইন্টারস্টিশিয়াল অনুরোধের জন্য মধ্যস্থতায় একটি ত্রুটি ইভেন্ট ফরোয়ার্ড করুন:

- (void)getInterstitial {
  NSDictionary *errorInfo = @{ NSLocalizedDescriptionKey : @"Some error" };
  NSError *error = [NSError errorWithDomain:GADErrorDomain
                                       code:GADErrorInvalidRequest
                                   userInfo:errorInfo];
  [self.connector adapter:self didFailInterstitial:error];
  return;
}
যদি আমার অ্যাডাপ্টার শুধুমাত্র ইন্টারস্টিশিয়াল বিজ্ঞাপন সমর্থন করে তাহলে আমি কি করব?

যদি আপনার অ্যাডাপ্টার শুধুমাত্র ইন্টারস্টিশিয়াল সমর্থন করে, তাহলে এটিকে ব্যানার অনুরোধের জন্য মধ্যস্থতার জন্য একটি ত্রুটি ইভেন্ট ফরোয়ার্ড করুন:

- (void)getBannerWithSize:(GADAdSize)adSize {
  NSDictionary *errorInfo = @{ NSLocalizedDescriptionKey : @"Some error" };
  NSError *error =
      [NSError errorWithDomain:GADErrorDomain
                          code:GADErrorInvalidRequest
                      userInfo:errorInfo];
  [self.connector adapter:self didFailAd:error];
  return;
}