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

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

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

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

এই পৃষ্ঠায় দেখানো হয়েছে কীভাবে SDK ব্যবহার করে নেটিভ বিজ্ঞাপন লোড করতে হয়। পরামর্শ: আমাদের নেটিভ অ্যাডস প্লেবুক- এ নেটিভ বিজ্ঞাপন সম্পর্কে আরও জানুন।

আপনি কিছু গ্রাহক সাফল্যের গল্পও দেখে নিতে পারেন: কেস স্টাডি ১ , কেস স্টাডি ২

পূর্বশর্ত

চালিয়ে যাওয়ার আগে, Google Mobile Ads SDK সেট আপ করুন

সর্বদা টেস্ট অ্যাড দিয়ে পরীক্ষা করুন

আপনার অ্যাপ তৈরি ও পরীক্ষা করার সময়, লাইভ বা প্রোডাকশন অ্যাডের পরিবর্তে টেস্ট অ্যাড ব্যবহার করা নিশ্চিত করুন।

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

ca-app-pub-3940256099942544/2247696110

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

Google Mobile Ads SDK টেস্ট অ্যাড সম্পর্কে বিস্তারিত জানতে, ‘টেস্ট অ্যাড সক্ষম করুন’ দেখুন।

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

নেটিভ বিজ্ঞাপন AdLoader ক্লাসের মাধ্যমে লোড করা হয়, যেটির নিজস্ব Builder ক্লাস রয়েছে যা তৈরির সময় এটিকে কাস্টমাইজ করার জন্য ব্যবহৃত হয়। AdLoader তৈরি করার সময় এতে লিসেনার যোগ করার মাধ্যমে, একটি অ্যাপ নির্দিষ্ট করে দেয় যে এটি কোন ধরনের নেটিভ বিজ্ঞাপন গ্রহণ করতে প্রস্তুত। এরপর AdLoader শুধু সেই ধরনের বিজ্ঞাপনগুলোর জন্যই অনুরোধ করে।

একটি অ্যাডলোডার তৈরি করুন

নিম্নলিখিত কোডটি দেখায় কিভাবে একটি AdLoader তৈরি করতে হয় যা নেটিভ বিজ্ঞাপন লোড করতে পারে:

জাভা

// It is recommended to call AdLoader.Builder on a background thread.
new Thread(
        () -> {
          AdLoader adLoader =
              new AdLoader.Builder(context, "AD_UNIT_ID")
                  .forNativeAd(
                      new NativeAd.OnNativeAdLoadedListener() {
                        @Override
                        // The native ad loaded successfully. You can show the ad.
                        public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {}
                      })
                  .withAdListener(
                      new AdListener() {
                        @Override
                        // The native ad load failed. Check the adError message for failure
                        // reasons.
                        public void onAdFailedToLoad(@NonNull LoadAdError adError) {}
                      })
                  // Use the NativeAdOptions.Builder class to specify individual options
                  // settings.
                  .withNativeAdOptions(new NativeAdOptions.Builder().build())
                  .build();
        })
    .start();

কোটলিন

// It is recommended to call AdLoader.Builder on a background thread.
CoroutineScope(Dispatchers.IO).launch {
  val adLoader =
    AdLoader.Builder(context, "AD_UNIT_ID")
      .forNativeAd { nativeAd ->
        // The native ad loaded successfully. You can show the ad.
      }
      .withAdListener(
        object : AdListener() {
          override fun onAdFailedToLoad(adError: LoadAdError) {
            // The native ad load failed. Check the adError message for failure reasons.
          }
        }
      )
      // Use the NativeAdOptions.Builder class to specify individual options settings.
      .withNativeAdOptions(NativeAdOptions.Builder().build())
      .build()
}

AD_UNIT_ID জায়গায় আপনার টেস্ট ডিভাইসের আইডি বসান।

forNativeAd() মেথডটি NativeAd ফরম্যাটের জন্য AdLoader প্রস্তুত করার দায়িত্বে থাকে। যখন কোনো বিজ্ঞাপন সফলভাবে লোড হয়, তখন লিসেনার অবজেক্টের onNativeAdLoaded() মেথডটি কল করা হয়।

AdLoader-এর সাথে একটি AdListener সেট আপ করুন (ঐচ্ছিক)

AdLoader তৈরি করার সময়, withAdListener ফাংশনটি লোডারের জন্য একটি AdListener সেট করে। এই মেথডটি তার একমাত্র প্যারামিটার হিসেবে একটি AdListener গ্রহণ করে, যা বিজ্ঞাপনের লাইফসাইকেল ইভেন্ট সংঘটিত হলে AdLoader থেকে কলব্যাক গ্রহণ করে।

জাভা

adLoaderBuilder.withAdListener(
    // Override AdListener callbacks here.
    new AdListener() {});

কোটলিন

adLoaderBuilder.withAdListener(
  // Override AdListener callbacks here.
  object : AdListener() {}
)

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

একবার আপনি একটি AdLoader তৈরি করে ফেললে, এবার বিজ্ঞাপন অনুরোধ করার জন্য এটি ব্যবহার করার পালা। এর জন্য দুটি পদ্ধতি রয়েছে: loadAd() এবং loadAds()

loadAd()

এই পদ্ধতিটি একটিমাত্র বিজ্ঞাপনের জন্য অনুরোধ পাঠায়।

জাভা

adLoader.loadAd(new AdRequest.Builder().build());

কোটলিন

adLoader.loadAd(AdRequest.Builder().build())

loadAds()

এই পদ্ধতিটি একাধিক (সর্বোচ্চ পাঁচটি) বিজ্ঞাপনের জন্য অনুরোধ পাঠায়:

জাভা

// Load three native ads.
adLoader.loadAds(new AdRequest.Builder().build(), 3);

কোটলিন

// Load three native ads.
adLoader.loadAds(AdRequest.Builder().build(), 3)

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

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

` loadAds() ` মেথডটি একটি অতিরিক্ত প্যারামিটার গ্রহণ করে: অনুরোধটির জন্য SDK কতগুলো বিজ্ঞাপন লোড করার চেষ্টা করবে। এই সংখ্যার সর্বোচ্চ সীমা পাঁচটি, এবং SDK যে অনুরোধ করা বিজ্ঞাপনের সঠিক সংখ্যাই ফেরত দেবে, তার কোনো নিশ্চয়তা নেই।

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

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

কলব্যাক

loadAd() কল করার পরে, নেটিভ অ্যাড অবজেক্টটি সরবরাহ করতে বা একটি ত্রুটি রিপোর্ট করতে পূর্বে সংজ্ঞায়িত লিসেনার মেথডগুলিতে একটিমাত্র কলব্যাক করা হয়।

loadAds() কল করার পরে, এই ধরনের একাধিক কলব্যাক তৈরি হয় (কমপক্ষে একটি, এবং অনুরোধ করা বিজ্ঞাপনের সংখ্যার চেয়ে বেশি নয়)। যে অ্যাপগুলি একাধিক বিজ্ঞাপনের অনুরোধ করে, তাদের লোডিং প্রক্রিয়া শেষ হয়েছে কিনা তা নির্ধারণ করতে নিজেদের কলব্যাক ইমপ্লিমেন্টেশনে ` AdLoader.isLoading() কল করা উচিত।

onNativeAdLoaded() কলব্যাকে কিভাবে isLoading() চেক করতে হয়, তার একটি উদাহরণ এখানে দেওয়া হলো:

জাভা

adLoaderBuilder
    .forNativeAd(
        nativeAd -> {
          // This callback is invoked when a native ad is successfully loaded.
        })
    .build();

কোটলিন

adLoaderBuilder
  .forNativeAd { nativeAd ->
    // This callback is invoked when a native ad is successfully loaded.
  }
  .build()

সম্পদ মুক্ত করুন

লোড হওয়া নেটিভ অ্যাডগুলোর ক্ষেত্রে অবশ্যই destroy() মেথডটি ব্যবহার করুন। এটি ব্যবহৃত রিসোর্স মুক্ত করে এবং মেমোরি লিক প্রতিরোধ করে।

আপনার অ্যাক্টিভিটির onDestroy() মেথডে সমস্ত NativeAd রেফারেন্স ধ্বংস করা হয়েছে কিনা তা যাচাই করুন।

আপনার onNativeAdLoaded কলব্যাকে, ডি-রেফারেন্স করা হবে এমন যেকোনো বিদ্যমান নেটিভ অ্যাড ধ্বংস করে দিন।

আরেকটি গুরুত্বপূর্ণ বিষয় হলো অ্যাক্টিভিটিটি ডেস্ট্রয়ড হয়েছে কিনা তা যাচাই করা এবং যদি হয়ে থাকে, তাহলে রিটার্ন করা অ্যাক্টিভিটির উপর destroy() কল করে সাথে সাথে রিটার্ন করা:

জাভা

nativeAd.destroy();

কোটলিন

nativeAd.destroy()

সর্বোত্তম অনুশীলন

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

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

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

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

  • অপ্রয়োজনীয় হয়ে গেলে নেটিভ বিজ্ঞাপনগুলো মুছে ফেলুন।

ভিডিও বিজ্ঞাপনের জন্য হার্ডওয়্যার অ্যাক্সিলারেশন

আপনার নেটিভ অ্যাড ভিউতে ভিডিও বিজ্ঞাপন সফলভাবে দেখানোর জন্য হার্ডওয়্যার অ্যাক্সিলারেশন সক্রিয় থাকতে হবে।

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

হার্ডওয়্যার ত্বরণ সক্ষম করা

যদি আপনার অ্যাপটি বিশ্বব্যাপী হার্ডওয়্যার অ্যাক্সিলারেশন চালু থাকা অবস্থায় সঠিকভাবে কাজ না করে, তবে আপনি প্রতিটি অ্যাক্টিভিটির জন্যও এটি নিয়ন্ত্রণ করতে পারেন। হার্ডওয়্যার অ্যাক্সিলারেশন চালু বা বন্ধ করতে, আপনার AndroidManifest.xml ফাইলের <application> এবং <activity> এলিমেন্টগুলোতে android:hardwareAccelerated অ্যাট্রিবিউটটি ব্যবহার করুন। নিচের উদাহরণটি পুরো অ্যাপের জন্য হার্ডওয়্যার অ্যাক্সিলারেশন চালু করে কিন্তু একটি অ্যাক্টিভিটির জন্য তা বন্ধ রাখে:

<application android:hardwareAccelerated="true">
    <!-- For activities that use ads, hardwareAcceleration should be true. -->
    <activity android:hardwareAccelerated="true" />
    <!-- For activities that don't use ads, hardwareAcceleration can be false. -->
    <activity android:hardwareAccelerated="false" />
</application>

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

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

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