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

প্ল্যাটফর্ম নির্বাচন করুন: অ্যান্ড্রয়েড আইওএস ফ্লাটার ইউনিটি

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

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

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

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

পূর্বশর্ত

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

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

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

/21775744923/example/native

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

Google মোবাইল বিজ্ঞাপন 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 AdManagerAdRequest.Builder().build());

কোটলিন

adLoader.loadAd(AdManagerAdRequest.Builder().build())

loadAds()

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

জাভা

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

কোটলিন

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

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

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

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

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

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

কলব্যাক

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

রিলিজ রিসোর্স

লোড করা নেটিভ বিজ্ঞাপনগুলিতে destroy() পদ্ধতিটি ব্যবহার করতে ভুলবেন না। এটি ব্যবহৃত রিসোর্সগুলি প্রকাশ করে এবং মেমরি লিক প্রতিরোধ করে।

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

আপনার onNativeAdLoaded কলব্যাকে, রেফারেন্সবিহীন যেকোনো বিদ্যমান নেটিভ বিজ্ঞাপন ধ্বংস করতে ভুলবেন না।

আরেকটি গুরুত্বপূর্ণ পরীক্ষা হল কার্যকলাপটি ধ্বংস হয়ে গেছে কিনা এবং যদি তাই হয়, তাহলে ফেরত আসা বিজ্ঞাপনে destroy() কল করুন এবং অবিলম্বে ফিরে আসুন:

জাভা

nativeAd.destroy();

কোটলিন

nativeAd.destroy()

সেরা অনুশীলন

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

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

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

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

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

ভিডিও বিজ্ঞাপনের জন্য হার্ডওয়্যার ত্বরণ

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

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

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

যদি আপনার অ্যাপটি বিশ্বব্যাপী হার্ডওয়্যার অ্যাক্সিলারেশন চালু করার সাথে সাথে সঠিকভাবে আচরণ না করে, তাহলে আপনি এটি পৃথক কার্যকলাপের জন্যও নিয়ন্ত্রণ করতে পারেন। হার্ডওয়্যার অ্যাক্সিলারেশন সক্ষম বা অক্ষম করতে, আপনার 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>

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

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

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