উন্নত ফিচার সেট করা

প্ল্যাটফর্ম বেছে নিন: Android iOS Android (পুরনো)

নেটিভ বিজ্ঞাপনে অনেক উন্নত ফিচার আছে যা আপনাকে অতিরিক্ত কাস্টমাইজেশন করতে এবং বিজ্ঞাপনের সেরা অভিজ্ঞতা দিতে সাহায্য করে। এই নির্দেশিকা থেকে আপনি জানতে পারবেন কীভাবে নেটিভ বিজ্ঞাপনের উন্নত ফিচার ব্যবহার করতে হয়।

পূর্বশর্ত

অ্যাসেট কন্ট্রোল

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

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

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

NativeAdOptions.MediaAspectRatio ভ্যালু সহ NativeAdOptions.Builder.setMediaAspectRatio() কল করুন।

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

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

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

Java

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();

Kotlin

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 Mobile Ads SDK (Legacy) আপনার জন্য ছবি ও URI, দুটিই পূরণ করে।

  • চালু করা হলে, SDK পরিবর্তে শুধু URI পপুলেট করে, যা আপনাকে নিজের ইচ্ছামতো আসল ছবি ডাউনলোড করার অনুমতি দেয়।

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

Java

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();

Kotlin

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-কে একাধিক ইমেজ অ্যাসেট রিটার্ন করার নির্দেশ দেয়।

Java

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

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

Kotlin

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

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

AdChoices প্লেসমেন্ট

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

AdChoices পজিশন কন্ট্রোল

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

NativeAdOption.AdChoicesPlacement ভ্যালু সহ NativeAdOptions.Builder.setAdChoicesPlacement() কল করুন।

  • সেট করা না থাকলে, AdChoices আইকনের পজিশন উপরের ডানদিকে সেট করা হয়।

  • সেট করা থাকলে, অনুরোধ অনুযায়ী AdChoices কাস্টম পজিশনে দেখানো হয়।

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

Java

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

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

Kotlin

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 ভিউ সেট করতে হয়, যেখানে AdChoices আইকন AdChoicesView-এর মধ্যে রেন্ডার করা হয়।

Java

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

Kotlin

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

ভিডিও কন্ট্রোল

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

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

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

boolean মূল্যের VideoOptions.Builder.setStartMuted() কল।

  • ডিফল্ট হিসেবে মিউট করে শুরু করার আচরণ চালু করা থাকে।

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

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

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

Java

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();

Kotlin

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.

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

Java

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();

Kotlin

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()

কাস্টম কন্ট্রোল চালু আছে কিনা তা চেক করুন

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

Java

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

Kotlin

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

কাস্টম ভিডিও কন্ট্রোল রেন্ডার করুন

নিম্নলিখিত পেশাদার পদ্ধতি ব্যবহার করে কাস্টম ভিডিও কন্ট্রোল রেন্ডার করুন:

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

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

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

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

  • ডিফল্ট হিসেবে কাস্টম ক্লিক জেসচার বন্ধ করা থাকে।

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

  • চালু করা থাকলে, আপনার অ্যাপ কাস্টম সোয়াইপ জেসচার সাপোর্ট করে।

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

Java

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);

Kotlin

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

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

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

সোয়াইপ জেসচার ক্লিক রেকর্ড করা হলে, Google Mobile Ads SDK (Legacy), AdListener-এ onAdSwipeGestureClicked() পদ্ধতি কল করে, এর সাথে আগে থেকে থাকা onAdClicked() পদ্ধতিও কল করা হয়।

Java

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();

Kotlin

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 Mobile Ads SDK-এর মাধ্যমে রেন্ডার করা নেটিভ বিজ্ঞাপনে কাজ করে। যেসব বিজ্ঞাপন সোর্সের রেন্ডারিংয়ের জন্য থার্ড-পার্টি SDK প্রয়োজন, সেগুলি কাস্টম ক্লিক ডিরেকশন সেটিংয়ে কাজ করে না।