नेटिव विज्ञापन के विकल्प

नेटिव विज्ञापनों में कई ऐडवांस सुविधाएं होती हैं. इनकी मदद से, विज्ञापन को अपनी ज़रूरत के हिसाब से बनाया जा सकता है. साथ ही, विज्ञापन का अनुभव बेहतर बनाया जा सकता है. इस गाइड में, नेटिव विज्ञापनों की ऐडवांस सुविधाओं का इस्तेमाल करने का तरीका बताया गया है.

ज़रूरी शर्तें

ऐसेट कंट्रोल

इस सेक्शन में, नेटिव विज्ञापनों में क्रिएटिव ऐसेट को पसंद के मुताबिक बनाने का तरीका बताया गया है. आपके पास मीडिया ऐसेट के लिए, पसंदीदा आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) तय करने का विकल्प होता है. साथ ही, यह तय करने का विकल्प होता है कि इमेज ऐसेट कैसे डाउनलोड और दिखाई जाएं.

मीडिया के आसपेक्ट रेशियो (चौड़ाई-ऊंचाई का अनुपात) के कंट्रोल

मीडिया के आसपेक्ट रेशियो (चौड़ाई-ऊंचाई का अनुपात) के कंट्रोल की मदद से, विज्ञापन क्रिएटिव के आसपेक्ट रेशियो के लिए प्राथमिकता तय की जा सकती है.

NativeAd.NativeMediaAspectRatio वैल्यू के साथ NativeAdRequest.Builder.setMediaAspectRatio() को कॉल करें.

  • इस विकल्प को सेट न करने पर, दिखाए जाने वाले विज्ञापन का मीडिया आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) कोई भी हो सकता है.

  • इस सेटिंग को सेट करने पर, आपको पसंदीदा आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) तय करने का विकल्प मिलेगा. इससे उपयोगकर्ता अनुभव को बेहतर बनाया जा सकेगा.

यहां दिए गए उदाहरण में, एसडीके को यह निर्देश दिया गया है कि वह किसी खास आसपेक्ट रेशियो वाली इमेज या वीडियो को प्राथमिकता दे.

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

इमेज डाउनलोड करने का कंट्रोल

इमेज डाउनलोड करने के कंट्रोल की मदद से, यह तय किया जा सकता है कि एसडीके, इमेज ऐसेट या सिर्फ़ यूआरआई दिखाए.

NativeAdRequest.Builder.disableImageDownloading() पर कॉल करें.

  • इमेज डाउनलोड करने के कंट्रोल डिफ़ॉल्ट रूप से बंद होते हैं.

  • इस सुविधा के बंद होने पर, Google Mobile Ads SDK (बीटा वर्शन) आपके लिए इमेज और यूआरआई, दोनों को भरता है.

  • इस सुविधा को चालू करने पर, SDK सिर्फ़ यूआरआई भरता है. इससे आपको अपनी पसंद के हिसाब से असली इमेज डाउनलोड करने की अनुमति मिलती है.

यहां दिए गए उदाहरण में, एसडीके को सिर्फ़ यूआरआई वापस भेजने का निर्देश दिया गया है.

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

इमेज पेलोड कंट्रोल

कुछ विज्ञापनों में सिर्फ़ एक इमेज के बजाय, इमेज की एक सीरीज़ होती है. इस सुविधा का इस्तेमाल करके, यह बताएं कि आपका ऐप्लिकेशन सभी इमेज दिखाने के लिए तैयार है या सिर्फ़ एक इमेज दिखाने के लिए.

  • इमेज पेलोड कंट्रोल की सुविधा डिफ़ॉल्ट रूप से बंद होती है.

  • इस सुविधा के बंद होने पर, आपका ऐप्लिकेशन एसडीके को यह निर्देश देता है कि वह किसी भी ऐसी ऐसेट के लिए सिर्फ़ पहली इमेज उपलब्ध कराए जिसमें एक सीरीज़ शामिल हो.

  • इस सुविधा को चालू करने पर, आपका ऐप्लिकेशन यह दिखाता है कि वह एक से ज़्यादा इमेज वाली सभी ऐसेट के लिए, सभी इमेज दिखाने के लिए तैयार है.

यहां दिए गए उदाहरण में, एसडीके को कई इमेज ऐसेट वापस भेजने का निर्देश दिया गया है.

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 adOptions = NativeAdOptions
  .Builder()
  .enableCustomClickGestureDirection(
    /* swipeDirection */ NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT,
    /* tapsAllowed= */ true)
  .build();

// The following sample ad unit ID has been enabled for custom click gestures
// and can be used for testing.
val adRequest = NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .withNativeAdOptions(adOptions)
  .build();

Java

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

// The following sample ad unit ID has been enabled for custom click gestures
// and can be used for testing.
NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .withNativeAdOptions(adOptions)
  .build();

स्वाइप करने के जेस्चर वाले इवेंट को मॉनिटर करने की अनुमति

स्वाइप जेस्चर इवेंट सुनने के लिए, NativeAd.setAdEventCallback() को NativeAdEventCallback के साथ कॉल करें और 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 रेंडर करता है. विज्ञापन दिखाने के लिए, तीसरे पक्ष के एसडीके टूल की ज़रूरत वाले विज्ञापन सोर्स, क्लिक के लिए कस्टम निर्देश सेटिंग का पालन नहीं करते.