ऐडवांस नेटिव सुविधाएं सेट करना

प्लैटफ़ॉर्म चुनें: Android New-selected Android iOS

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

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

ऐसेट कंट्रोल

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

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

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

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

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

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

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

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() को कॉल करें.

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

  • अगर ये कंट्रोल बंद हैं, तो GMA Next-Gen 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.Builder.setAdChoicesPlacement() को NativeAdRequest.AdChoicesPlacement वैल्यू के साथ कॉल करें.

  • अगर इसे सेट नहीं किया जाता है, तो 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 की जगह तय करने के कंट्रोल से अलग है. इसमें सिर्फ़ चारों कोनों में से किसी एक को तय किया जा सकता है.

को वैल्यू के साथ कॉल करें.NativeAdView.setAdChoicesView()AdChoicesView

यहां दिए गए उदाहरण में, AdChoices आइकॉन को AdChoicesView में रेंडर करके, AdChoices कस्टम व्यू सेट करने का तरीका बताया गया है.

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

वीडियो के कंट्रोल

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

शुरुआत में म्यूट करने का व्यवहार

शुरुआत में म्यूट करने के व्यवहार की मदद से, वीडियो के शुरुआती ऑडियो को बंद या चालू किया जा सकता है.

VideoOptions.Builder.setStartMuted() को boolean वैल्यू के साथ कॉल करें और 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() को कॉल करें.

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

  • अगर ये कंट्रोल बंद हैं, तो आपके वीडियो में एसडीके से रेंडर किए गए इनपुट कंट्रोल दिखेंगे.

अगर विज्ञापन में वीडियो कॉन्टेंट है और कस्टम कंट्रोल चालू हैं, तो आपको विज्ञापन के साथ अपने कस्टम कंट्रोल दिखाने चाहिए. ऐसा इसलिए, क्योंकि विज्ञापन में कोई कंट्रोल नहीं दिखेगा. इसके बाद, कंट्रोल,

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. पूरे मीडिया व्यू पर, न दिखने वाला ओवरले रेंडर करने से बचें. ओवरले की वजह से, मीडिया व्यू पर क्लिक नहीं किए जा सकते. इससे नेटिव विज्ञापनों की परफ़ॉर्मेंस पर बुरा असर पड़ता है. इसके बजाय, एक छोटा ओवरले बनाएं जो कंट्रोल के लिए काफ़ी बड़ा हो.

कस्टम क्लिक जेस्चर

कस्टम क्लिक जेस्चर, नेटिव विज्ञापनों की एक सुविधा है. इसकी मदद से, विज्ञापन व्यू पर स्वाइप को विज्ञापन क्लिक के तौर पर रजिस्टर किया जा सकता है. यह उन ऐप्लिकेशन के साथ काम करता है जिनमें कॉन्टेंट नेविगेशन के लिए स्वाइप जेस्चर का इस्तेमाल किया जाता है. इस गाइड में, नेटिव विज्ञापनों पर कस्टम क्लिक जेस्चर चालू करने का तरीका बताया गया है.

NativeAdRequest.Builder.enableCustomClickGestureDirection() को NativeAd.SwipeGestureDirection और boolean वैल्यू के साथ कॉल करें.

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

  • अगर ये जेस्चर बंद हैं, तो आपका ऐप्लिकेशन सामान्य क्लिक के व्यवहार के साथ काम करता है.

  • अगर ये जेस्चर चालू हैं, तो आपका ऐप्लिकेशन कस्टम स्वाइप जेस्चर के साथ काम करता है.

यहां दिए गए उदाहरण में, दाईं ओर स्वाइप करने के लिए कस्टम स्वाइप जेस्चर लागू किया गया है. साथ ही, सामान्य टैप के व्यवहार को बनाए रखा गया है.

Kotlin

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

// You can use the following sample ad unit ID to test custom click gestures.
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();

// You can use the following sample ad unit ID to test custom click gestures.
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 रेंडर करता है. रेंडरिंग के लिए तीसरे पक्ष के एसडीके टूल की ज़रूरत वाले विज्ञापन सोर्स, कस्टम क्लिक की दिशाओं की सेटिंग के मुताबिक काम नहीं करते.