নেটিভ বিজ্ঞাপন

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

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

বিস্তৃতভাবে বলতে গেলে, নেটিভ বিজ্ঞাপন সফলভাবে বাস্তবায়নের দুটি অংশ রয়েছে: SDK ব্যবহার করে একটি বিজ্ঞাপন লোড করা এবং তারপর আপনার অ্যাপে বিজ্ঞাপনের সামগ্রী প্রদর্শন করা।

এই পৃষ্ঠাটি দেখায় কিভাবে SDK ব্যবহার করে নেটিভ বিজ্ঞাপন লোড করতে হয়।

পূর্বশর্ত

সর্বদা পরীক্ষামূলক বিজ্ঞাপন দিয়ে পরীক্ষা করুন

আপনার অ্যাপ তৈরি এবং পরীক্ষা করার সময়, লাইভ, প্রোডাকশন বিজ্ঞাপনের পরিবর্তে পরীক্ষামূলক বিজ্ঞাপন ব্যবহার করুন।

iOS-এ নেটিভ বিজ্ঞাপনের জন্য আমাদের ডেডিকেটেড টেস্ট বিজ্ঞাপন ইউনিট আইডি ব্যবহার করা হল পরীক্ষামূলক বিজ্ঞাপন লোড করার সবচেয়ে সহজ উপায়:

ca-app-pub-3940256099942544/3986624511

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

Google মোবাইল বিজ্ঞাপন SDK পরীক্ষার বিজ্ঞাপন কীভাবে কাজ করে সে সম্পর্কে আরও তথ্যের জন্য, পরীক্ষার বিজ্ঞাপন দেখুন।

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

নেটিভ বিজ্ঞাপনগুলিতে GADAdLoader ক্লাস লোড করা হয়, যা GADAdLoaderDelegate প্রোটোকল অনুসারে তাদের প্রতিনিধিদের কাছে বার্তা পাঠায়।

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

একটি বিজ্ঞাপন লোড করার আগে, আপনাকে বিজ্ঞাপন লোডারটি শুরু করতে হবে। নিম্নলিখিত কোডটি দেখায় কিভাবে একটি GADAdLoader শুরু করতে হয়:

সুইফট

adLoader = AdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    // The UIViewController parameter is optional.
    rootViewController: rootViewController,
    adTypes: [ .native ],
    options: [ ... ad loader options objects ... ])
adLoader.delegate = self

অবজেক্টিভ-সি

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    // The UIViewController parameter is nullable.
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;

আপনার একটি বিজ্ঞাপন ইউনিট আইডি (আপনি টেস্ট আইডি ব্যবহার করতে পারেন), কোন নেটিভ ফর্ম্যাটের জন্য অনুরোধ করতে চান তা নির্দিষ্ট করার জন্য adTypes অ্যারেতে পাস করার জন্য ধ্রুবক এবং options প্যারামিটারে আপনি যে কোনও বিকল্প সেট করতে চান তা প্রয়োজন হবে। options প্যারামিটারের সম্ভাব্য মানগুলির তালিকা সেটিং নেটিভ বিজ্ঞাপন বিকল্প পৃষ্ঠায় পাওয়া যাবে।

adTypes অ্যারেতে এই ধ্রুবক থাকা উচিত:

বিজ্ঞাপন লোডার প্রতিনিধি বাস্তবায়ন করুন

বিজ্ঞাপন লোডার প্রতিনিধিকে আপনার বিজ্ঞাপনের ধরণের জন্য নির্দিষ্ট প্রোটোকল বাস্তবায়ন করতে হবে। নেটিভ বিজ্ঞাপনের জন্য, GADNativeAdLoaderDelegate প্রোটোকলে একটি বার্তা অন্তর্ভুক্ত থাকে যা একটি নেটিভ বিজ্ঞাপন লোড হওয়ার পরে প্রতিনিধির কাছে পাঠানো হয়।

সুইফট

public func adLoader(_ adLoader: AdLoader,
            didReceive nativeAd: NativeAd)

অবজেক্টিভ-সি

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd *)nativeAd;

বিজ্ঞাপনের অনুরোধ করুন

আপনার GADAdLoader চালু হয়ে গেলে, বিজ্ঞাপনের অনুরোধ করার জন্য এর loadRequest: পদ্ধতিটি কল করুন:

সুইফট

adLoader.load(Request())

অবজেক্টিভ-সি

[self.adLoader loadRequest:[GADRequest request]];

GADAdLoaderloadRequest: পদ্ধতিটি ব্যানার এবং ইন্টারস্টিশিয়ালের মতো একই GADRequest অবজেক্ট গ্রহণ করে। আপনি অন্যান্য বিজ্ঞাপনের ধরণের মতো টার্গেটিং তথ্য যোগ করার জন্য অনুরোধ অবজেক্ট ব্যবহার করতে পারেন।

একাধিক বিজ্ঞাপন লোড করুন (ঐচ্ছিক)

একটি একক অনুরোধে একাধিক বিজ্ঞাপন লোড করতে, GADAdLoader শুরু করার সময় GADMultipleAdsAdLoaderOptions অবজেক্ট সেট করুন।

সুইফট

let multipleAdOptions = MultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = AdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    // The UIViewController parameter is optional.
    rootViewController: self,
    adTypes: [ .native ],
    options: [ multipleAdOptions ])

অবজেক্টিভ-সি

GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
    [[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    // The UIViewController parameter is nullable.
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ multipleAdsOptions ]];

প্রতি অনুরোধে বিজ্ঞাপনের সংখ্যা পাঁচটিতে সীমাবদ্ধ, এবং এটি নিশ্চিত নয় যে SDK অনুরোধ করা বিজ্ঞাপনের সঠিক সংখ্যাটি ফেরত দেবে।

ফেরত দেওয়া গুগল বিজ্ঞাপনগুলি একে অপরের থেকে আলাদা হবে, যদিও সংরক্ষিত ইনভেন্টরি বা তৃতীয় পক্ষের ক্রেতাদের বিজ্ঞাপনগুলি অনন্য হওয়ার নিশ্চয়তা দেওয়া হয় না।

যদি আপনি মধ্যস্থতা ব্যবহার করেন, তাহলে GADMultipleAdsAdLoaderOptions ক্লাস ব্যবহার করবেন না, কারণ একাধিক নেটিভ বিজ্ঞাপনের অনুরোধ মধ্যস্থতার জন্য কনফিগার করা বিজ্ঞাপন ইউনিট আইডির জন্য কাজ করে না।

লোডিং কখন শেষ হবে তা নির্ধারণ করা হচ্ছে

কোনও অ্যাপ loadRequest: কল করার পর, এটি নিম্নলিখিত কলগুলির মাধ্যমে অনুরোধের ফলাফল পেতে পারে:

একটি একক বিজ্ঞাপনের অনুরোধের ফলে ঐ পদ্ধতিগুলির একটিতে একটি কল আসবে।

একাধিক বিজ্ঞাপনের অনুরোধের ফলে উপরের পদ্ধতিগুলিতে কমপক্ষে একটি কলব্যাক করা হবে, তবে অনুরোধ করা বিজ্ঞাপনের সর্বাধিক সংখ্যার বেশি নয়।

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

সুইফট

class ViewController: UIViewController, NativeAdLoaderDelegate {

  var adLoader: GADAdLoader!

  override func viewDidLoad() {
    super.viewDidLoad()

    let multipleAdOptions = MultipleAdsAdLoaderOptions()
    multipleAdOptions.numberOfAds = 5;
    adLoader = AdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
        // The UIViewController parameter is optional.
        rootViewController: rootViewController,
        adTypes: [ .native ],
        options: [ multipleAdOptions ])

    adLoader.delegate = self
    adLoader.load(Request())
  }

  func adLoader(_ adLoader: AdLoader,
       didReceive nativeAd: NativeAd) {
    // A native ad has loaded, and can be displayed.
  }

  func adLoaderDidFinishLoading(_ adLoader: AdLoader) {
    // The adLoader has finished loading ads, and a new request can be sent.
  }

}

অবজেক্টিভ-সি

@interface ViewController () <GADNativeAdLoaderDelegate, GADVideoControllerDelegate>
@property(nonatomic, strong) GADAdLoader *adLoader;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

  GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
      [[GADMultipleAdsAdLoaderOptions alloc] init];
  multipleAdsOptions.numberOfAds = 5;
  self.adLoader = [[GADAdLoader alloc]
        initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
      // The UIViewController parameter is nullable.
      rootViewController:rootViewController
                 adTypes:@[ GADAdLoaderAdTypeNative ]
                 options:@[ multipleAdsOptions ]];

  self.adLoader.delegate = self;
  [self.adLoader loadRequest:[GADRequest request]];
}

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd *)nativeAd {
  // A native ad has loaded, and can be displayed.
}

- (void)adLoaderDidFinishLoading:(GADAdLoader *) adLoader {
  // The adLoader has finished loading ads, and a new request can be sent.
}

@end

ব্যর্থ অনুরোধগুলি পরিচালনা করা

উপরের প্রোটোকলগুলি GADAdLoaderDelegate প্রোটোকলকে প্রসারিত করে, যা বিজ্ঞাপন লোড না হলে প্রেরিত বার্তাকে সংজ্ঞায়িত করে।

সুইফট

public func adLoader(_ adLoader: AdLoader,
    didFailToReceiveAdWithError error: NSError)

অবজেক্টিভ-সি

- (void)adLoader:(GADAdLoader *)adLoader
    didFailToReceiveAdWithError:(NSError *)error;

নেটিভ বিজ্ঞাপন ইভেন্ট সম্পর্কে বিজ্ঞপ্তি পান

নেটিভ বিজ্ঞাপনের ইন্টারঅ্যাকশন সম্পর্কিত ইভেন্ট সম্পর্কে বিজ্ঞপ্তি পেতে, নেটিভ বিজ্ঞাপনের ডেলিগেট প্রপার্টি সেট করুন:

সুইফট

nativeAd.delegate = self

অবজেক্টিভ-সি

nativeAd.delegate = self;

তারপর নিম্নলিখিত ডেলিগেট কলগুলি গ্রহণ করতে GADNativeAdDelegate প্রয়োগ করুন:

সুইফট

func nativeAdDidRecordImpression(_ nativeAd: NativeAd) {
  // The native ad was shown.
}

func nativeAdDidRecordClick(_ nativeAd: NativeAd) {
  // The native ad was clicked on.
}

func nativeAdWillPresentScreen(_ nativeAd: NativeAd) {
  // The native ad will present a full screen view.
}

func nativeAdWillDismissScreen(_ nativeAd: NativeAd) {
  // The native ad will dismiss a full screen view.
}

func nativeAdDidDismissScreen(_ nativeAd: NativeAd) {
  // The native ad did dismiss a full screen view.
}

func nativeAdWillLeaveApplication(_ nativeAd: NativeAd) {
  // The native ad will cause the app to become inactive and
  // open a new app.
}

অবজেক্টিভ-সি

- (void)nativeAdDidRecordImpression:(GADNativeAd *)nativeAd {
  // The native ad was shown.
}

- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
  // The native ad was clicked on.
}

- (void)nativeAdWillPresentScreen:(GADNativeAd *)nativeAd {
  // The native ad will present a full screen view.
}

- (void)nativeAdWillDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad will dismiss a full screen view.
}

- (void)nativeAdDidDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad did dismiss a full screen view.
}

- (void)nativeAdWillLeaveApplication:(GADNativeAd *)nativeAd {
  // The native ad will cause the app to become inactive and
  // open a new app.
}

সেরা অনুশীলন

বিজ্ঞাপন লোড করার সময় এই নিয়মগুলি অনুসরণ করুন।

  • যেসব অ্যাপ তালিকায় নেটিভ বিজ্ঞাপন ব্যবহার করে, তাদের বিজ্ঞাপনের তালিকা আগে থেকেই ক্যাশে করা উচিত।

  • বিজ্ঞাপন প্রি-ক্যাশে করার সময়, আপনার ক্যাশে সাফ করুন এবং এক ঘন্টা পরে পুনরায় লোড করুন।

  • adLoaderDidFinishLoading: দ্বারা নির্দেশিত পূর্ববর্তী অনুরোধটি লোড করা শেষ না হওয়া পর্যন্ত GADAdLoader এ আবার loadRequest: কল করবেন না।

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

  • যখন আর ব্যবহার করা হবে না, তখন নেটিভ বিজ্ঞাপনগুলি ধ্বংস করুন।

আপনার বিজ্ঞাপন প্রদর্শন করুন

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