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

নেটিভ বিজ্ঞাপন হল বিজ্ঞাপন সম্পদ যা ব্যবহারকারীদের কাছে UI উপাদানের মাধ্যমে উপস্থাপন করা হয় যা প্ল্যাটফর্মের নেটিভ। সেগুলি একই ধরণের ভিউ ব্যবহার করে দেখানো হয় যা দিয়ে আপনি ইতিমধ্যেই আপনার লেআউট তৈরি করছেন এবং তারা যে ব্যবহারকারীর অভিজ্ঞতার ভিজ্যুয়াল ডিজাইনের সাথে মেলে সেটিকে ফর্ম্যাট করা যেতে পারে৷ কোডিং পদে, এর মানে হল যে যখন একটি নেটিভ বিজ্ঞাপন লোড হয়, তখন আপনার অ্যাপটি একটি NativeAd অবজেক্ট পায় যাতে এর সম্পদ থাকে এবং অ্যাপটি (Google Mobile Ads SDK-এর পরিবর্তে) সেগুলি প্রদর্শনের জন্য দায়ী।

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

পূর্বশর্ত

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

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

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

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

জাভা

AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
        @Override
        public void onNativeAdLoaded(NativeAd NativeAd) {
            // Show the ad.
        }
    })
    .withAdListener(new AdListener() {
        @Override
        public void onAdFailedToLoad(LoadAdError adError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(new NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build();

কোটলিন

val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd { ad : NativeAd ->
        // Show the ad.
    }
    .withAdListener(object : AdListener() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build()

NativeAd ফরম্যাটের জন্য প্রস্তুতি নিন

NativeAd ফরম্যাটের জন্য AdLoader প্রস্তুত করার জন্য উপরের প্রথম পদ্ধতিটি দায়ী:

forNativeAd()
এই পদ্ধতিতে কল করা AdLoader কে নেটিভ বিজ্ঞাপনের অনুরোধ করতে কনফিগার করে। একটি বিজ্ঞাপন সফলভাবে লোড হলে, শ্রোতা বস্তুর onNativeAdLoaded() পদ্ধতি বলা হয়।

যখন AdLoader একটি বিজ্ঞাপন অনুরোধ করে, তখন Google সেই বিজ্ঞাপনটি নির্বাচন করে এবং ফেরত দেয় যা প্রকাশকের ফলনকে সর্বোচ্চ করে।

একটি AdLoader সঙ্গে AdListener ব্যবহার করুন

উপরের AdLoader তৈরির সময়, withAdListener ফাংশন একটি AdListener সেট করে।

এটি একটি ঐচ্ছিক পদক্ষেপ। পদ্ধতিটি একটি AdListener কে তার একমাত্র প্যারামিটার হিসাবে নেয়, যেটি AdLoader থেকে কলব্যাক গ্রহণ করে যখন বিজ্ঞাপনের জীবনচক্রের ঘটনা ঘটে:

জাভা

.withAdListener(new AdListener() {
    // AdListener callbacks can be overridden here.
})

কোটলিন

.withAdListener(object : AdListener() {
    // AdListener callbacks can be overridden here.
})

বিজ্ঞাপন লোড হচ্ছে

একবার আপনি একটি AdLoader করা শেষ করলে, এটি বিজ্ঞাপন লোড করার জন্য ব্যবহার করার সময়। এর জন্য দুটি পদ্ধতি উপলব্ধ: loadAd() এবং loadAds()

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

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

জাভা

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

কোটলিন

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

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

জাভা

adLoader.loadAds(new AdRequest.Builder().build(), 3);

কোটলিন

adLoader.loadAds(AdRequest.Builder().build(), 3)

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

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

loadAd() এ কল করার পর, নেটিভ অ্যাড অবজেক্ট ডেলিভার করতে বা একটি ত্রুটি রিপোর্ট করতে উপরে বর্ণিত শ্রোতা পদ্ধতিতে একটি একক কলব্যাক করা হবে।

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

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

জাভা

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd ad) {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading()) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }
}).build();
adLoader.loadAds(new AdRequest.Builder().build(), 3);

কোটলিন

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }.build()
adLoader.loadAds(AdRequest.Builder().build(), 3)

পরিষ্কার আপ

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

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

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

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

জাভা

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd ad) {
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed()` is a method on Activity.
        if (isDestroyed()) {
            ad.destroy();
            return;
        }
        ...
    }
}).build();

কোটলিন

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd { nativeAd ->
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed` is a method on Activity.
        if (isDestroyed) {
            nativeAd.destroy()
            return@forNativeAd
        }
        ...
    }.build()

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

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

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

ca-app-pub-3940256099942544/2247696110

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

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

কখন বিজ্ঞাপনের জন্য অনুরোধ করতে হবে

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

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

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

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

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

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

একটি নেটিভ বিজ্ঞাপন প্রদর্শন করুন

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

,

নেটিভ বিজ্ঞাপন হল বিজ্ঞাপন সম্পদ যা ব্যবহারকারীদের কাছে UI উপাদানের মাধ্যমে উপস্থাপন করা হয় যা প্ল্যাটফর্মের নেটিভ। সেগুলি একই ধরণের ভিউ ব্যবহার করে দেখানো হয় যা দিয়ে আপনি ইতিমধ্যেই আপনার লেআউট তৈরি করছেন এবং তারা যে ব্যবহারকারীর অভিজ্ঞতার ভিজ্যুয়াল ডিজাইনের সাথে মেলে সেটিকে ফর্ম্যাট করা যেতে পারে৷ কোডিং পদে, এর মানে হল যে যখন একটি নেটিভ বিজ্ঞাপন লোড হয়, তখন আপনার অ্যাপটি একটি NativeAd অবজেক্ট পায় যাতে এর সম্পদ থাকে এবং অ্যাপটি (Google Mobile Ads SDK-এর পরিবর্তে) সেগুলি প্রদর্শনের জন্য দায়ী।

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

পূর্বশর্ত

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

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

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

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

জাভা

AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
        @Override
        public void onNativeAdLoaded(NativeAd NativeAd) {
            // Show the ad.
        }
    })
    .withAdListener(new AdListener() {
        @Override
        public void onAdFailedToLoad(LoadAdError adError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(new NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build();

কোটলিন

val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd { ad : NativeAd ->
        // Show the ad.
    }
    .withAdListener(object : AdListener() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build()

NativeAd ফরম্যাটের জন্য প্রস্তুতি নিন

NativeAd ফরম্যাটের জন্য AdLoader প্রস্তুত করার জন্য উপরের প্রথম পদ্ধতিটি দায়ী:

forNativeAd()
এই পদ্ধতিতে কল করা AdLoader কে নেটিভ বিজ্ঞাপনের অনুরোধ করতে কনফিগার করে। একটি বিজ্ঞাপন সফলভাবে লোড হলে, শ্রোতা বস্তুর onNativeAdLoaded() পদ্ধতি বলা হয়।

যখন AdLoader একটি বিজ্ঞাপন অনুরোধ করে, তখন Google সেই বিজ্ঞাপনটি নির্বাচন করে এবং ফেরত দেয় যা প্রকাশকের ফলনকে সর্বোচ্চ করে।

একটি AdLoader সঙ্গে AdListener ব্যবহার করুন

উপরের AdLoader তৈরির সময়, withAdListener ফাংশন একটি AdListener সেট করে।

এটি একটি ঐচ্ছিক পদক্ষেপ। পদ্ধতিটি একটি AdListener কে তার একমাত্র প্যারামিটার হিসাবে নেয়, যেটি AdLoader থেকে কলব্যাক গ্রহণ করে যখন বিজ্ঞাপনের জীবনচক্রের ঘটনা ঘটে:

জাভা

.withAdListener(new AdListener() {
    // AdListener callbacks can be overridden here.
})

কোটলিন

.withAdListener(object : AdListener() {
    // AdListener callbacks can be overridden here.
})

বিজ্ঞাপন লোড হচ্ছে

একবার আপনি একটি AdLoader করা শেষ করলে, এটি বিজ্ঞাপন লোড করার জন্য ব্যবহার করার সময়। এর জন্য দুটি পদ্ধতি উপলব্ধ: loadAd() এবং loadAds()

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

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

জাভা

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

কোটলিন

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

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

জাভা

adLoader.loadAds(new AdRequest.Builder().build(), 3);

কোটলিন

adLoader.loadAds(AdRequest.Builder().build(), 3)

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

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

loadAd() এ কল করার পর, নেটিভ অ্যাড অবজেক্ট ডেলিভার করতে বা একটি ত্রুটি রিপোর্ট করতে উপরে বর্ণিত শ্রোতা পদ্ধতিতে একটি একক কলব্যাক করা হবে।

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

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

জাভা

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd ad) {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading()) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }
}).build();
adLoader.loadAds(new AdRequest.Builder().build(), 3);

কোটলিন

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }.build()
adLoader.loadAds(AdRequest.Builder().build(), 3)

পরিষ্কার আপ

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

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

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

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

জাভা

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd ad) {
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed()` is a method on Activity.
        if (isDestroyed()) {
            ad.destroy();
            return;
        }
        ...
    }
}).build();

কোটলিন

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd { nativeAd ->
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed` is a method on Activity.
        if (isDestroyed) {
            nativeAd.destroy()
            return@forNativeAd
        }
        ...
    }.build()

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

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

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

ca-app-pub-3940256099942544/2247696110

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

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

কখন বিজ্ঞাপনের জন্য অনুরোধ করতে হবে

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

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

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

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

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

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

একটি নেটিভ বিজ্ঞাপন প্রদর্শন করুন

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