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

प्लैटफ़ॉर्म चुनें: Android iOS Android (लेगसी)

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

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

ऐसेट कंट्रोल

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

पसंदीदा मीडिया आसपेक्ट रेशियो कंट्रोल

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

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

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

  • इसे सेट करने पर, पसंदीदा आसपेक्ट रेशियो का टाइप तय करके, उपयोगकर्ता अनुभव को बेहतर बनाया जा सकेगा.

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

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 को अपनी विज्ञापन यूनिट के आईडी से बदलें.

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

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

NativeAdOptions.Builder.setReturnUrlsForImageAssets() को boolean वैल्यू के साथ कॉल करें.

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

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

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

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

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

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

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

कॉल करें NativeAdOptions.Builder.setRequestMultipleImages() के साथ एक boolean वैल्यू.

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

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

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

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

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 आइकॉन किस कोने में रेंडर किया जाए.

NativeAdOptions.Builder.setAdChoicesPlacement() को NativeAdOption.AdChoicesPlacement वैल्यू के साथ कॉल करें.

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

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

यहां दिए गए उदाहरण में, 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

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

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

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

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

VideoOptions.Builder.setStartMuted() को boolean वैल्यू के साथ कॉल करें.

  • शुरुआत में म्यूट करने का तरीका, डिफ़ॉल्ट रूप से चालू होता है.

  • यह सुविधा बंद होने पर, आपका ऐप्लिकेशन अनुरोध करता है कि वीडियो आवाज़ के साथ शुरू हो.

  • यह सुविधा चालू होने पर, आपका ऐप्लिकेशन अनुरोध करता है कि वीडियो म्यूट करके शुरू हो.

यहां दिए गए उदाहरण में, वीडियो को बिना म्यूट किए शुरू करने का तरीका बताया गया है.

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

कस्टम प्लेबैक कंट्रोल

इससे, वीडियो चलाने, रोकने या म्यूट करने के लिए, कस्टम वीडियो इनपुट कंट्रोल का अनुरोध किया जा सकता है.

VideoOptions.Builder.setCustomControlsRequested() को boolean वैल्यू के साथ कॉल करें.

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

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

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

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) मौजूदा onAdClicked() तरीके के अलावा, AdListener पर onAdSwipeGestureClicked() तरीका लागू करता है.

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 रेंडर करता है. ऐसे विज्ञापन सोर्स जिन्हें रेंडर करने के लिए, तीसरे पक्ष के एसडीके की ज़रूरत होती है वे कस्टम क्लिक की दिशाओं की सेटिंग के मुताबिक काम नहीं करते.