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

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

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

ऐसेट कंट्रोल

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

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

GADNativeAdMediaAdLoaderOptions mediaAspectRatio को GADMediaAspectRatio के साथ सेट करें.

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

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

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

GADNativeAdMediaAdLoaderOptions *nativeOption = [[GADNativeAdMediaAdLoaderOptions alloc] init];
nativeOption.mediaAspectRatio = GADMediaAspectRatioAny;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOption ]];

इमेज डाउनलोड करने की सुविधा

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

BOOL वैल्यू के साथ GADNativeAdImageAdLoaderOptions disableImageLoading सेट करें.
  • इमेज डाउनलोड करने की सेटिंग डिफ़ॉल्ट रूप से बंद होती है.

  • बंद होने पर, Google Mobile Ads SDK टूल आपके लिए इमेज और यूआरआई, दोनों को पॉप्युलेट करता है.

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

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

GADNativeAdImageAdLoaderOptions *nativeOption = [[GADNativeAdImageAdLoaderOptions alloc] init];
nativeOption.disableImageLoading = YES;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOption ]];

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

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

BOOL वैल्यू के साथ GADNativeAdImageAdLoaderOptions shouldRequestMultipleImages सेट करें.
  • इमेज पेलोड कंट्रोल डिफ़ॉल्ट रूप से बंद होते हैं.

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

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

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

GADNativeAdImageAdLoaderOptions *nativeOption = [[GADNativeAdImageAdLoaderOptions alloc] init];
nativeOption.shouldRequestMultipleImages = YES;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOption ]];

AdChoices प्लेसमेंट

AdChoices के पोज़िशन के लिए कंट्रोल

AdChoices आइकॉन की पोज़िशन सेट करने की सुविधा की मदद से, यह चुना जा सकता है कि AdChoices आइकॉन को किस कोने में रेंडर करना है.

GADNativeAdViewAdOptions preferredAdChoicesPosition को GADAdChoicesPosition वैल्यू के साथ सेट करें.

  • अगर इस विकल्प को सेट नहीं किया गया है, तो AdChoices आइकॉन की पोज़िशन सबसे ऊपर दाईं ओर सेट होती है.

  • अगर सेट किया जाता है, तो AdChoices को अनुरोध के हिसाब से पसंद के मुताबिक जगह पर रखा जाता है.

इस उदाहरण में, AdChoices की कस्टम इमेज की पोज़िशन सेट करने का तरीका बताया गया है.

GADNativeAdViewAdOptions *nativeOptions = [[GADNativeAdViewAdOptions alloc] init];
nativeOptions.preferredAdChoicesPosition = GADAdChoicesPositionTopLeftCorner;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOptions ]];

AdChoices का कस्टम व्यू

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

रेंडर करने से पहले, GADNativeAd.adChoicesView प्रॉपर्टी को GADAdChoicesView के साथ सेट करें. ऐसा करने पर, AdChoices का कॉन्टेंट GADAdChoicesView में रेंडर होगा.

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

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader didReceiveNativeAd:(GADNativeAd *)nativeAd {

    ...

    
    GADAdChoicesView *customAdChoicesView =
        [[GADAdChoicesView alloc] initWithFrame: CGRectMake(..., ..., ..., ...)];

    [nativeAdView addSubview:customAdChoicesView];
    nativeAdView.adChoicesView = customAdChoicesView;

    // Associate the native ad view with the native ad object. This is
    // required to make the ad clickable.
    // Note: this should always be done after populating the ad views.
    nativeAdView.nativeAd = nativeAd;
}

Swift

func adLoader(_ adLoader: GADAdLoader, didReceive nativeAd: GADNativeAd) {
    refreshAdButton.isEnabled = true

    ...
    // Define a custom position for the AdChoices icon.
    let customRect = CGRect(x: 100, y: 100, width: 15, height: 15)
    let customAdChoicesView = GADAdChoicesView(frame: customRect)
    nativeAdView.addSubview(customAdChoicesView)
    nativeAdView.adChoicesView = customAdChoicesView

    // Associate the native ad view with the native ad object. This is
    // required to make the ad clickable.
    // Note: this should always be done after populating the ad views.
    nativeAdView.nativeAd = nativeAd;
}

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

म्यूट करने की सुविधा चालू करना

वीडियो शुरू होने पर म्यूट होने की सुविधा की मदद से, वीडियो के शुरू होने पर ऑडियो को म्यूट या अनम्यूट किया जा सकता है.

BOOL वैल्यू के साथ GADVideoOptions startMuted सेट करें.
  • वीडियो शुरू होने पर उसे म्यूट रखने की सुविधा डिफ़ॉल्ट रूप से चालू होती है.

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

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

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

GADVideoOptions *nativeOptions = [[GADVideoOptions alloc] init];
nativeOptions.startMuted = NO;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOptions ]];

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

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

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

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

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

यहां दिए गए उदाहरण में, पसंद के मुताबिक प्लेबैक कंट्रोल वाले वीडियो का अनुरोध करने का तरीका बताया गया है.

GADVideoOptions *nativeOptions = [[GADVideoOptions alloc] init];
nativeOptions.customControlsRequested = YES;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOptions ]];

देखें कि कस्टम कंट्रोल चालू हैं या नहीं

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

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd*)nativeAd {

  GADVideoController *videoController = nativeAd.mediaContent.videoController;
  BOOL canShowCustomControls = videoController.customControlsEnabled;

}

Swift

func adLoader(_ adLoader: GADAdLoader, didReceive nativeAd: GADNativeAd) {
        let videoController = nativeAd.mediaContent.videoController
        let canShowCustomControls = videoController?.customControlsEnabled() == true
}

वीडियो विज्ञापनों के लिए कस्टम कंट्रोल रेंडर करना

इन सबसे सही तरीकों का इस्तेमाल करके, वीडियो के कस्टम कंट्रोल रेंडर करें:

  1. कस्टम कंट्रोल व्यू को नेटिव विज्ञापन व्यू के चाइल्ड व्यू के तौर पर रेंडर करें. इस तरीके से यह पक्का होता है कि ओपन मेज़रमेंट के विज्ञापन दिखने से जुड़े आंकड़ों का कैलकुलेशन, कस्टम कंट्रोल को एक दोस्ताना रुकावट मानता है.
  2. पूरे मीडिया व्यू के ऊपर ऐसा ओवरले न दिखाएं जो दिखता न हो. ओवरले, मीडिया व्यू पर क्लिक को ब्लॉक करते हैं. इससे नेटिव विज्ञापनों की परफ़ॉर्मेंस पर बुरा असर पड़ता है. इसके बजाय, एक छोटा ओवरले बनाएं, जो कंट्रोल के हिसाब से हो.

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

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

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

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

  • यह सुविधा बंद होने पर, सिर्फ़ टैप को क्लिक के तौर पर गिना जाएगा.

  • इस सुविधा के चालू होने पर, स्वाइप जेस्चर को क्लिक के तौर पर गिना जाएगा. साथ ही, यह भी तय किया जा सकता है कि टैप को अब भी क्लिक के तौर पर गिना जाए या नहीं.

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

GADNativeAdCustomClickGestureOptions *swipeGestureOptions = [[GADNativeAdCustomClickGestureOptions alloc]
        initWithSwipeGestureDirection:UISwipeGestureRecognizerDirectionRight
                          tapsAllowed:YES];

// The following sample ad unit ID has been enabled for custom click gestures
// and can be used for testing.
self.adLoader = [[GADAdLoader alloc]
        initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
      rootViewController:self
                 adTypes:@[ GADAdLoaderAdTypeNative ]
                 options:@[ swipeGestureOptions ]];

स्वाइप करने पर मिलने वाले हाथ के जेस्चर (हाव-भाव) वाले इवेंट सुनें

जब स्वाइप जेस्चर क्लिक रिकॉर्ड किया जाता है, तो Google Mobile Ads SDK, GADNativeAdDelegate पर मौजूदा nativeAdDidRecordClick: के अलावा, nativeAdDidRecordSwipeGestureClick: के लिए डिलीगेट करने का तरीका भी लागू करता है.

#pragma mark - GADNativeAdDelegate implementation

// Called when a swipe gesture click is recorded.
- (void)nativeAdDidRecordSwipeGestureClick:(GADNativeAd *)nativeAd {
  NSLog(@"A swipe gesture click has occurred.");
}

// Called when a swipe gesture click or a tap click is recorded, as configured in
// GADNativeAdCustomClickGestureOptions.
- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
  NSLog(@"A swipe gesture click or tap click has occurred.");
}

मीडिएशन

कस्टम क्लिक जेस्चर सिर्फ़ उन नेटिव विज्ञापनों पर काम करते हैं जिन्हें Google Mobile Ads SDK रेंडर करता है. ऐसे विज्ञापन स्रोत जिन्हें रेंडर करने के लिए तीसरे पक्ष के SDK टूल की ज़रूरत होती है, कस्टम क्लिक निर्देश सेटिंग का जवाब नहीं देते.