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

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

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

পূর্বশর্ত

সম্পদ নিয়ন্ত্রণ

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

পছন্দের মিডিয়া অ্যাসপেক্ট রেশিও নিয়ন্ত্রণ

মিডিয়া অ্যাস্পেক্ট রেশিও কন্ট্রোল আপনাকে বিজ্ঞাপন সৃজনশীলের অ্যাস্পেক্ট রেশিওর জন্য একটি পছন্দ নির্দিষ্ট করতে দেয়।

NativeAdOptions.Builder.setMediaAspectRatio() NativeAdOptions.MediaAspectRatio মান দিয়ে কল করুন।

  • সেট না করা থাকলে, ফেরত আসা বিজ্ঞাপনের যেকোনো মিডিয়া অ্যাস্পেক্ট রেশিও থাকতে পারে।

  • সেট করা হলে, আপনি পছন্দের ধরণের আকৃতির অনুপাত নির্দিষ্ট করে ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে সক্ষম হবেন।

নিম্নলিখিত উদাহরণটি SDK-কে একটি নির্দিষ্ট আকৃতির অনুপাত সহ একটি রিটার্ন ছবি বা ভিডিও পছন্দ করার নির্দেশ দেয়।

জাভা

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder()
        .setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
        .build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

কোটলিন

val nativeAdOptions =
  NativeAdOptions.Builder()
    .setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
    .build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

AD_UNIT_ID এর পরিবর্তে আপনার বিজ্ঞাপন ইউনিট আইডি দিন।

ছবি ডাউনলোড নিয়ন্ত্রণ

ছবি ডাউনলোড নিয়ন্ত্রণ আপনাকে সিদ্ধান্ত নিতে দেয় যে SDK দ্বারা ছবির সম্পদ নাকি শুধুমাত্র URI ফেরত দেওয়া হবে।

একটি boolean মান সহ NativeAdOptions.Builder.setReturnUrlsForImageAssets() কল করুন।

  • ছবি ডাউনলোড নিয়ন্ত্রণ ডিফল্টরূপে নিষ্ক্রিয় থাকে।

  • বন্ধ করা থাকলে, Google মোবাইল বিজ্ঞাপন SDK আপনার জন্য ছবি এবং URI উভয়ই পূরণ করে।

  • সক্রিয় করা হলে, SDK কেবল URI পূরণ করে, যা আপনাকে আপনার বিবেচনার ভিত্তিতে প্রকৃত ছবিগুলি ডাউনলোড করতে দেয়।

নিম্নলিখিত উদাহরণটি SDK-কে শুধুমাত্র URI ফেরত দেওয়ার নির্দেশ দেয়।

জাভা

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setReturnUrlsForImageAssets(true).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID")
        .withNativeAdOptions(nativeAdOptions)
        .forNativeAd(
            nativeAd -> {
              List<Uri> imageUris = new ArrayList<>();
              for (Image image : nativeAd.getImages()) {
                imageUris.add(image.getUri());
              }
            })
        .build();

কোটলিন

val nativeAdOptions = NativeAdOptions.Builder().setReturnUrlsForImageAssets(true).build()

val loader =
  AdLoader.Builder(context, "AD_UNIT_ID")
    .withNativeAdOptions(nativeAdOptions)
    .forNativeAd { nativeAd ->
      val imageUris = nativeAd.images.mapNotNull { it.uri }
    }
    .build()

ইমেজ পেলোড নিয়ন্ত্রণ

কিছু বিজ্ঞাপনে কেবল একটির পরিবর্তে একাধিক ছবির সিরিজ থাকে। আপনার অ্যাপটি সমস্ত ছবি প্রদর্শনের জন্য প্রস্তুত কিনা, নাকি কেবল একটি তা নির্দেশ করতে এই বৈশিষ্ট্যটি ব্যবহার করুন।

boolean মান সহ NativeAdOptions.Builder.setRequestMultipleImages() কল করুন।

  • ইমেজ পেলোড নিয়ন্ত্রণগুলি ডিফল্টরূপে অক্ষম থাকে।

  • অক্ষম করা হলে, আপনার অ্যাপটি SDK-কে নির্দেশ দেয় যে সিরিজ ধারণকারী যেকোনো সম্পদের জন্য শুধুমাত্র প্রথম ছবি প্রদান করতে।

  • সক্রিয় থাকাকালীন, আপনার অ্যাপটি নির্দেশ করে যে এটি একাধিক সম্পদের জন্য সমস্ত ছবি প্রদর্শনের জন্য প্রস্তুত।

নিম্নলিখিত উদাহরণটি SDK-কে একাধিক চিত্র সম্পদ ফেরত দেওয়ার নির্দেশ দেয়।

জাভা

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setRequestMultipleImages(true).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

কোটলিন

val nativeAdOptions = NativeAdOptions.Builder().setRequestMultipleImages(true).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

অ্যাডচয়েস প্লেসমেন্ট

এই বিভাগে AdChoices ওভারলে কীভাবে স্থাপন করবেন তার বিস্তারিত বর্ণনা দেওয়া আছে। আপনার কাছে চারটি কোণার যেকোনো একটিতে এর স্থান নির্ধারণ করার অথবা একটি কাস্টম ভিউয়ের মধ্যে রেন্ডার করার বিকল্প রয়েছে।

AdChoices পজিশন নিয়ন্ত্রণ

AdChoices পজিশন কন্ট্রোল আপনাকে AdChoices আইকনটি কোন কোণে রেন্ডার করতে হবে তা বেছে নিতে দেয়।

NativeAdOptions.Builder.setAdChoicesPlacement() NativeAdOption.AdChoicesPlacement মান দিয়ে কল করুন।

  • যদি সেট না করা থাকে, তাহলে AdChoices আইকনের অবস্থান উপরের ডানদিকে সেট করা হবে।

  • যদি সেট করা থাকে, তাহলে অনুরোধ অনুসারে AdChoices কাস্টম অবস্থানে স্থাপন করা হবে।

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে একটি কাস্টম AdChoices ছবির অবস্থান সেট করতে হয়।

জাভা

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder()
        .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
        .build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

কোটলিন

val nativeAdOptions =
  NativeAdOptions.Builder()
    .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
    .build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

AdChoices কাস্টম ভিউ

AdChoices কাস্টম ভিউ বৈশিষ্ট্যটি আপনাকে AdChoices আইকনটিকে একটি কাস্টম স্থানে স্থাপন করতে দেয়। এটি AdChoices অবস্থান নিয়ন্ত্রণ থেকে আলাদা, যা কেবল চারটি কোণার একটির স্পেসিফিকেশনের অনুমতি দেয়।

AdChoicesView মান দিয়ে NativeAdView.setAdChoicesView() কল করুন।

নিম্নলিখিত উদাহরণটি দেখায় যে কীভাবে একটি কাস্টম AdChoices ভিউ সেট করতে হয়, AdChoicesView ভিতরে AdChoices আইকনটি রেন্ডার করা হয়।

জাভা

NativeAdView nativeAdView = new NativeAdView(context);
AdChoicesView adChoicesView = new AdChoicesView(context);
nativeAdView.setAdChoicesView(adChoicesView);

কোটলিন

val nativeAdView = NativeAdView(context)
val adChoicesView = AdChoicesView(context)
nativeAdView.adChoicesView = adChoicesView

ভিডিও নিয়ন্ত্রণ

এই বিভাগে ভিডিও বিজ্ঞাপনের জন্য প্লেব্যাক অভিজ্ঞতা কীভাবে কাস্টমাইজ করবেন তা বিশদভাবে বর্ণনা করা হয়েছে। আপনার কাছে প্রাথমিক নিঃশব্দ অবস্থা সেট করার এবং কাস্টম প্লেব্যাক নিয়ন্ত্রণ বাস্তবায়নের বিকল্প রয়েছে।

মিউট আচরণ শুরু করুন

"স্টার্ট মিউট" আচরণ আপনাকে ভিডিওর শুরুর অডিও অক্ষম বা সক্ষম করতে দেয়।

boolean মান দিয়ে VideoOptions.Builder.setStartMuted() কল করুন।

  • স্টার্ট মিউটেড আচরণটি ডিফল্টরূপে সক্রিয় থাকে।

  • যখন অক্ষম করা থাকে, তখন আপনার অ্যাপ অনুরোধ করে যে ভিডিওটি অডিও দিয়ে শুরু করা উচিত।

  • সক্রিয় থাকাকালীন, আপনার অ্যাপ অনুরোধ করে যে ভিডিওটি অডিও মিউট করে শুরু করা উচিত।

নিচের উদাহরণে দেখানো হয়েছে কিভাবে আন-মিউট অডিও দিয়ে ভিডিও শুরু করতে হয়।

জাভা

VideoOptions videoOptions = new VideoOptions.Builder().setStartMuted(false).build();

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setVideoOptions(videoOptions).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

কোটলিন

val videoOptions = VideoOptions.Builder().setStartMuted(false).build()

val nativeAdOptions = NativeAdOptions.Builder().setVideoOptions(videoOptions).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

কাস্টম প্লেব্যাক নিয়ন্ত্রণ

এটি আপনাকে ভিডিওটি চালানো, বিরতি দেওয়া বা নিঃশব্দ করার জন্য কাস্টম ভিডিও ইনপুট নিয়ন্ত্রণের অনুরোধ করতে দেয়।

boolean মান দিয়ে VideoOptions.Builder.setCustomControlsRequested() কল করুন।

  • কাস্টম প্লেব্যাক নিয়ন্ত্রণ ডিফল্টরূপে অক্ষম থাকে।

  • বন্ধ করা থাকলে, আপনার ভিডিওতে SDK রেন্ডার করা ইনপুট নিয়ন্ত্রণ দেখাবে।

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

VideoController

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে কাস্টম প্লেব্যাক নিয়ন্ত্রণ সহ একটি ভিডিও অনুরোধ করতে হয়।

জাভা

VideoOptions videoOptions = new VideoOptions.Builder().setCustomControlsRequested(true).build();

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setVideoOptions(videoOptions).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

কোটলিন

val videoOptions = VideoOptions.Builder().setCustomControlsRequested(true).build()

val nativeAdOptions = NativeAdOptions.Builder().setVideoOptions(videoOptions).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

কাস্টম নিয়ন্ত্রণ সক্রিয় আছে কিনা তা পরীক্ষা করুন

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

জাভা

MediaContent mediaContent = nativeAd.getMediaContent();
if (mediaContent != null) {
  VideoController videoController = mediaContent.getVideoController();
  boolean canShowCustomControls = videoController.isCustomControlsEnabled();
}

কোটলিন

val mediaContent = nativeAd.mediaContent
if (mediaContent != null) {
  val videoController = mediaContent.videoController
  val canShowCustomControls = videoController.isCustomControlsEnabled
}

কাস্টম ভিডিও নিয়ন্ত্রণ রেন্ডার করুন

নিম্নলিখিত সেরা অনুশীলনগুলি ব্যবহার করে কাস্টম ভিডিও নিয়ন্ত্রণগুলি রেন্ডার করুন:

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

কাস্টম ক্লিক জেসচার

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

আপনি কি ক্লিক হিসেবে ট্যাপ করার অনুমতি চান কিনা তা নির্দেশ করার জন্য NativeAdOptions.Builder.enableCustomClickGestureDirection() এ একটি NativeAdOptions.SwipeGestureDirection এবং একটি boolean ব্যবহার করুন।

নিম্নলিখিত উদাহরণটি ডানদিকে একটি কাস্টম সোয়াইপ অঙ্গভঙ্গি প্রয়োগ করে এবং স্বাভাবিক ট্যাব আচরণ সংরক্ষণ করে।

  • কাস্টম ক্লিক অঙ্গভঙ্গি ডিফল্টরূপে অক্ষম করা আছে।

  • অক্ষম থাকলে, আপনার অ্যাপ স্বাভাবিক ক্লিকিং আচরণ সমর্থন করবে।

  • সক্রিয় থাকলে, আপনার অ্যাপ কাস্টম সোয়াইপ অঙ্গভঙ্গি সমর্থন করবে।

নিম্নলিখিত উদাহরণটি ডানদিকে একটি কাস্টম সোয়াইপ অঙ্গভঙ্গি প্রয়োগ করে এবং স্বাভাবিক ট্যাব আচরণ সংরক্ষণ করে।

জাভা

NativeAdOptions adOptions =
    new NativeAdOptions.Builder()
        .enableCustomClickGestureDirection(
            NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT, /* tapsAllowed= */ true)
        .build();

// ca-app-pub-3940256099942544/2247696110 is a sample ad unit ID that has custom click
// gestures enabled.
AdLoader.Builder builder =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(adOptions);

কোটলিন

val adOptions =
  NativeAdOptions.Builder()
    .enableCustomClickGestureDirection(NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT, true)
    .build()

val builder = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(adOptions)

সোয়াইপ জেসচার ইভেন্টগুলি শুনুন

যখন একটি সোয়াইপ জেসচার ক্লিক রেকর্ড করা হয়, তখন Google মোবাইল বিজ্ঞাপন SDK বিদ্যমান onAdClicked() পদ্ধতি ছাড়াও AdListeneronAdSwipeGestureClicked() পদ্ধতি ব্যবহার করে।

জাভা

AdLoader adLoader =
    new AdLoader.Builder(context, AD_UNIT_ID)
        .withAdListener(
            new AdListener() {
              // Called when a swipe gesture click is recorded.
              @Override
              public void onAdSwipeGestureClicked() {
                // Called when a swipe gesture click is recorded.
                Log.d(TAG, "A swipe gesture click has occurred.");
              }

              @Override
              public void onAdClicked() {
                // Called when a swipe gesture click or a tap click is recorded, as
                // configured in NativeAdOptions.
                Log.d(TAG, "A swipe gesture click or a tap click has occurred.");
              }
            })
        .build();

কোটলিন

val adLoader =
  AdLoader.Builder(context, AD_UNIT_ID)
    .withAdListener(
      object : AdListener() {
        override fun onAdSwipeGestureClicked() {
          // Called when a swipe gesture click is recorded.
          Log.d(TAG, "A swipe gesture click has occurred.")
        }

        override fun onAdClicked() {
          // Called when a swipe gesture click or a tap click is recorded, as
          // configured in NativeAdOptions.
          Log.d(TAG, "A swipe gesture click or a tap click has occurred.")
        }
      }
    )
    .build()

মধ্যস্থতা

কাস্টম ক্লিক জেসচারগুলি শুধুমাত্র Google মোবাইল বিজ্ঞাপন SDK রেন্ডার করা নেটিভ বিজ্ঞাপনগুলিতে কাজ করে। যেসব বিজ্ঞাপন সোর্সগুলিতে রেন্ডারিংয়ের জন্য তৃতীয় পক্ষের SDK প্রয়োজন , তারা কাস্টম ক্লিক দিকনির্দেশনা সেটিংসে সাড়া দেয় না।