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

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

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

পূর্বশর্ত

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

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

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

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

NativeAd.NativeMediaAspectRatio ভ্যালু সহ NativeAdRequest.Builder.setMediaAspectRatio() কল করুন।

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

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

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

Kotlin

val adRequest = NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
  .build()

Java

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
  .build();

ছবি ডাউনলোড করার কন্ট্রোল

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

NativeAdRequest.Builder.disableImageDownloading() নম্বরে কল করুন।

  • ছবি ডাউনলোড করার কন্ট্রোল ডিফল্ট হিসেবে বন্ধ করা থাকে।

  • বন্ধ করা থাকলে, GMA Next-Gen SDK আপনার জন্য ছবি ও URI, দুটিই পূরণ করে।

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

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

Kotlin

val adRequest = NativeAdRequest.Builder(
    "ca-app-pub-3940256099942544/2247696110",
    listOf(NativeAd.NativeAdType.NATIVE))
    .setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
    .disableImageDownloading()
    .build()

val adCallback: NativeAdLoaderCallback =
  object : NativeAdLoaderCallback {
    override fun onNativeAdLoaded(nativeAd: NativeAd) {
      // Get the image uri.
      val imageUri = nativeAd.image?.uri
    }
  };

// Load the native ad with the ad request and callback.
NativeAdLoader.load(adRequest, adLoaderCallback);

Java

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .disableImageDownloading()
  .build();

NativeAdLoaderCallback adLoaderCallback =
  new NativeAdLoaderCallback() {
    @Override
    public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
      // Get the image uri.
      Uri imageUri = nativeAd.getImage().getUri();
    }
  };

// Load the native ad with the ad request and callback.
NativeAdLoader.load(adRequest, adLoaderCallback);

ছবি পেলোড কন্ট্রোল

কিছু বিজ্ঞাপনে একটির পরিবর্তে একাধিক ছবি থাকে। আপনার অ্যাপ সব ছবি দেখানোর জন্য প্রস্তুত নাকি শুধু একটি ছবি দেখানোর জন্য প্রস্তুত তা জানাতে এই ফিচার ব্যবহার করুন।

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

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

  • চালু করা হলে, আপনার অ্যাপ ইঙ্গিত দেয় যে এটি একাধিক অ্যাসেটের জন্য সব ছবি দেখানোর জন্য প্রস্তুত।

নিম্নলিখিত উদাহরণটি SDK-কে একাধিক ইমেজ অ্যাসেট রিটার্ন করার নির্দেশ দেয়।

AdChoices প্লেসমেন্ট

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

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

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

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

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

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

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

Kotlin

val adRequest = NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
  .build()

Java

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
  .build();

AdChoices কাস্টম ভিউ

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

AdChoicesView মূল্যের NativeAdView.setAdChoicesView() কল।

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

Kotlin

override fun onNativeAdLoaded(nativeAd: NativeAd) {
  val nativeAdView = NativeAdView(applicationContext)
  val adChoicesView = AdChoicesView(this)
  nativeAdView.adChoicesView = adChoicesView
}

Java

public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
  NativeAdView nativeAdView = new NativeAdView(getApplicationContext());
  AdChoicesView adChoicesView = new AdChoicesView(this);
  nativeAdView.setAdChoicesView(adChoicesView);
}

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

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

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

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

boolean ভ্যালু সহ VideoOptions.Builder.setStartMuted()-এ কল করুন এবং NativeAdOptions.Builder.setVideoOptions()-এ কল করুন।

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

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

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

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

Kotlin

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

val adRequest = NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

Java

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

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

কাস্টম প্লেব্যাক কন্ট্রোল

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

বিজ্ঞাপন মিউট অবস্থায় শুরু করার জন্য সেট করতে, VideoOptions.Builder.setCustomControlsRequested() কল করুন।

  • কাস্টম প্লেব্যাক কন্ট্রোল ডিফল্ট হিসেবে বন্ধ করা থাকে।

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

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

VideoOptions.Builder.setCustomControlsRequested().

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

Kotlin

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

val adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

Java

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

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

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

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

Kotlin

  val adCallback: NativeAdLoaderCallback =
    object : NativeAdLoaderCallback {
      override fun onNativeAdLoaded(nativeAd: NativeAd) {
        val mediaContent = nativeAd.mediaContent;
        if (mediaContent != null) {
          val videoController = mediaContent.videoController;
          val canShowCustomControls = videoController?.isCustomControlsEnabled();
        }
      }
    };

Java

NativeAdLoaderCallback adCallback =
  new NativeAdLoaderCallback() {
    @Override
    public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
      MediaContent mediaContent = nativeAd.getMediaContent();
      if (mediaContent != null) {
        VideoController videoController = mediaContent.getVideoController();
        if (videoController != null) {
          boolean canShowCustomControls = videoController.isCustomControlsEnabled();
        }
      }
    }
  };

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

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

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

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

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

NativeAd.SwipeGestureDirection এবং boolean ভ্যালু সহ NativeAdRequest.Builder.enableCustomClickGestureDirection() কল করুন।

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

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

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

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

Kotlin

val adRequest =
  NativeAdRequest.Builder(AD_UNIT_ID, listOf(NativeAdType.NATIVE))
    .enableCustomClickGestureDirection(
      SwipeGestureDirection.RIGHT,
      /* customClickGestureAllowTaps= */ true,
    )
    .build()

Java

NativeAdRequest adRequest =
    new NativeAdRequest.Builder(AD_UNIT_ID, List.of(NativeAdType.NATIVE))
        .enableCustomClickGestureDirection(
            SwipeGestureDirection.RIGHT, /* customClickGestureAllowTaps= */ true)
        .build();

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

সোয়াইপ জেসচার ইভেন্ট শুনতে, NativeAdEventCallback-এর সাথে NativeAd.setAdEventCallback() কল করুন এবং onAdSwipeGestureClicked() পদ্ধতি প্রয়োগ করুন।

Kotlin

  val adCallback: NativeAdLoaderCallback =
    object : NativeAdLoaderCallback {
      override fun onNativeAdLoaded(nativeAd: NativeAd) {
        // Implement the onAdSwipeGestureClicked() method.
        val nativeAdCallback: NativeAdEventCallback = object : NativeAdEventCallback {
          override fun onAdSwipeGestureClicked() {
            // A swipe gesture click has occurred.
          }
        }
      }
    }
  // Load the native ad with the ad request and callback.
  NativeAdLoader.load(adRequest, adCallback)

Java

  NativeAdLoaderCallback adCallback =
    new NativeAdLoaderCallback() {
      @Override
      public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
        // Implement the onAdSwipeGestureClicked() method.
        NativeAdEventCallback nativeAdCallback = new NativeAdEventCallback() {
          @Override
          public void onAdSwipeGestureClicked() {
            // A swipe gesture click has occurred.
          }
        };
      }
    };
  // Load the native ad with the ad request and callback.
  NativeAdLoader.load(adRequest, adCallback);

মধ্যস্থতা

কাস্টম ক্লিক জেসচার শুধুমাত্র Google Mobile Ads SDK-এর মাধ্যমে রেন্ডার করা নেটিভ বিজ্ঞাপনে কাজ করে। যেসব বিজ্ঞাপন সোর্সের রেন্ডারিংয়ের জন্য থার্ড-পার্টি SDK প্রয়োজন, সেগুলি কাস্টম ক্লিক ডিরেকশন সেটিংয়ে কাজ করে না।