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

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

जब कोई नेटिव विज्ञापन लोड होता है, तो आपके ऐप्लिकेशन को एक विज्ञापन ऑब्जेक्ट मिलता है, जिसमें उसकी एसेट होती हैं. Google Mobile Ads SDK के बजाय ऐप्लिकेशन पर उन्हें दिखाया जाता है.

मोटे तौर पर, नेटिव विज्ञापनों को सही तरीके से लागू करने के दो हिस्से हैं: SDK टूल का इस्तेमाल करके विज्ञापन लोड करना और अपने ऐप्लिकेशन में विज्ञापन का कॉन्टेंट दिखाना.

इस पेज पर, SDK टूल इस्तेमाल करके नेटिव विज्ञापन को लोड करने का तरीका बताया गया है.

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

हमेशा टेस्ट विज्ञापनों से टेस्ट करें

अपने ऐप्लिकेशन बनाते और उनकी टेस्टिंग करते समय, पक्का करें कि आप लाइव, प्रोडक्शन विज्ञापनों के बजाय टेस्ट विज्ञापनों का इस्तेमाल करें.

टेस्ट विज्ञापनों को लोड करने का सबसे आसान तरीका, iOS पर नेटिव विज्ञापनों के लिए हमारे खास टेस्ट विज्ञापन यूनिट आईडी का इस्तेमाल करना है:

ca-app-pub-3940256099942544/3986624511

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

Google Mobile Ads SDK के टेस्ट विज्ञापन के काम करने के तरीके के बारे में ज़्यादा जानने के लिए, विज्ञापनों की जांच करना लेख पढ़ें.

विज्ञापन लोड करें

नेटिव विज्ञापन, GADAdLoader क्लास के साथ लोड होते हैं, जो उनके प्रतिनिधियों को GADAdLoaderDelegate प्रोटोकॉल के मुताबिक मैसेज भेजते हैं.

विज्ञापन लोड करने की प्रोसेस शुरू करना

विज्ञापन लोड करने से पहले, आपको विज्ञापन लोड करने की प्रोसेस शुरू करनी होगी. इस कोड से पता चलता है कि GADAdLoader को कैसे शुरू किया जाता है:

Swift

adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    rootViewController: self,
    adTypes: [ .native ],
    options: [ ... ad loader options objects ... ])
adLoader.delegate = self

Objective-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;

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

adTypes कलेक्शन में यह कॉन्सटेंट :

विज्ञापन लोड करने वाले प्रतिनिधि को लागू करना

विज्ञापन लोड करने वाले जिस प्रतिनिधि को आपके विज्ञापन का टाइप दिखाना है उसके लिए खास प्रोटोकॉल लागू करने होंगे. नेटिव विज्ञापनों के लिए, GADNativeAdLoaderDelegate प्रोटोकॉल में एक मैसेज शामिल होता है. यह मैसेज उस प्रतिनिधि को भेजा जाता है, जब कोई नेटिव विज्ञापन लोड होता है.

Swift

public func adLoader(_ adLoader: GADAdLoader,
            didReceive nativeAd: GADNativeAd)

Objective-C

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

विज्ञापन जोड़ने का अनुरोध करें

GADAdLoader शुरू होने के बाद, इसके loadRequest: तरीके को कॉल करके विज्ञापन का अनुरोध करें:

Swift

adLoader.load(GADRequest())

Objective-C

[self.adLoader loadRequest:[GADRequest request]];

GADAdLoader में मौजूद loadRequest: तरीके में वही GADRequest ऑब्जेक्ट इस्तेमाल किए जा सकते हैं जो बैनर और पेज पर अचानक दिखने वाले विज्ञापनों के तौर पर होते हैं. टारगेटिंग की जानकारी जोड़ने के लिए, अनुरोध वाले ऑब्जेक्ट का इस्तेमाल ठीक उसी तरह किया जाता है, जैसे दूसरे विज्ञापन टाइप के साथ किया जाता है.

कई विज्ञापन लोड करें (ज़रूरी नहीं)

एक ही अनुरोध में एक से ज़्यादा विज्ञापन लोड करने के लिए, GADAdLoader शुरू करते समय GADMultipleAdsAdLoaderOptions ऑब्जेक्ट सेट करें.

Swift

let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    rootViewController: self,
    adTypes: [ .native ],
    options: [ multipleAdOptions ])

Objective-C

GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
    [[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ multipleAdsOptions ]];

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

Google के लौटाए गए सभी विज्ञापन एक-दूसरे से अलग होंगे. हालांकि, रिज़र्व की गई इन्वेंट्री या तीसरे पक्ष के खरीदारों के विज्ञापन यूनीक होने की गारंटी नहीं है.

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

लोड होने की प्रोसेस पूरी होने का पता लगाना

जब कोई ऐप्लिकेशन loadRequest: को कॉल करता है, तो वह इन फ़ोन पर किए गए कॉल का इस्तेमाल करके किए गए अनुरोध के नतीजे पा सकता है:

किसी एक विज्ञापन के लिए अनुरोध करने पर, उनमें से किसी एक तरीके को एक ही कॉल किया जाएगा.

कई विज्ञापनों के लिए अनुरोध करने की वजह से, ऊपर दिए गए तरीकों के लिए कम से कम एक कॉलबैक मिलेगा. हालांकि, अनुरोध किए गए विज्ञापनों की ज़्यादा से ज़्यादा संख्या से ज़्यादा नहीं होगा.

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

Swift

class ViewController: UIViewController, GADNativeAdLoaderDelegate {

  var adLoader: GADAdLoader!

  override func viewDidLoad() {
    super.viewDidLoad()

    let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
    multipleAdOptions.numberOfAds = 5;
    adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
        rootViewController: self,
        adTypes: [ .native ],
        options: [ multipleAdOptions ])

    adLoader.delegate = self
    adLoader.load(GADRequest())
  }

  func adLoader(_ adLoader: GADAdLoader,
       didReceive nativeAd: GADNativeAd) {
    // A native ad has loaded, and can be displayed.
  }

  func adLoaderDidFinishLoading(_ adLoader: GADAdLoader) {
    // The adLoader has finished loading ads, and a new request can be sent.
  }

}

Objective-C

@interface ViewController () <GADNativeAdLoaderDelegate, GADVideoControllerDelegate>
@property(nonatomic, strong) GADAdLoader *adLoader;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

  GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
      [[GADMultipleAdsAdLoaderOptions alloc] init];
  multipleAdsOptions.numberOfAds = 5;
  self.adLoader = [[GADAdLoader alloc]
        initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
      rootViewController:rootViewController
                 adTypes:@[ GADAdLoaderAdTypeNative ]
                 options:@[ multipleAdsOptions ]];

  self.adLoader.delegate = self;
  [self.adLoader loadRequest:[GADRequest request]];
}

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd *)nativeAd {
  // A native ad has loaded, and can be displayed.
}

- (void)adLoaderDidFinishLoading:(GADAdLoader *) adLoader {
  // The adLoader has finished loading ads, and a new request can be sent.
}

@end

पूरे न हो पाने वाले अनुरोधों पर कार्रवाई करना

ऊपर दिए गए प्रोटोकॉल, GADAdLoaderDelegate प्रोटोकॉल को बढ़ाते हैं. यह प्रोटोकॉल, विज्ञापनों के लोड न हो पाने पर भेजे जाने वाले मैसेज के बारे में बताता है.

Swift

public func adLoader(_ adLoader: GADAdLoader,
    didFailToReceiveAdWithError error: NSError)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didFailToReceiveAdWithError:(NSError *)error;

नेटिव विज्ञापन इवेंट की सूचना पाएं

नेटिव विज्ञापन इंटरैक्शन से जुड़े इवेंट की सूचना पाने के लिए, नेटिव विज्ञापन की डेलिगेट प्रॉपर्टी सेट करें:

Swift

nativeAd.delegate = self

Objective-C

nativeAd.delegate = self;

इसके बाद, इन लोगों को अपने संपर्कों का ऐक्सेस देने के लिए, GADNativeAdDelegate को लागू करें:

Swift

func nativeAdDidRecordImpression(_ nativeAd: GADNativeAd) {
  // The native ad was shown.
}

func nativeAdDidRecordClick(_ nativeAd: GADNativeAd) {
  // The native ad was clicked on.
}

func nativeAdWillPresentScreen(_ nativeAd: GADNativeAd) {
  // The native ad will present a full screen view.
}

func nativeAdWillDismissScreen(_ nativeAd: GADNativeAd) {
  // The native ad will dismiss a full screen view.
}

func nativeAdDidDismissScreen(_ nativeAd: GADNativeAd) {
  // The native ad did dismiss a full screen view.
}

func nativeAdWillLeaveApplication(_ nativeAd: GADNativeAd) {
  // The native ad will cause the app to become inactive and
  // open a new app.
}

Objective-C

- (void)nativeAdDidRecordImpression:(GADNativeAd *)nativeAd {
  // The native ad was shown.
}

- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
  // The native ad was clicked on.
}

- (void)nativeAdWillPresentScreen:(GADNativeAd *)nativeAd {
  // The native ad will present a full screen view.
}

- (void)nativeAdWillDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad will dismiss a full screen view.
}

- (void)nativeAdDidDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad did dismiss a full screen view.
}

- (void)nativeAdWillLeaveApplication:(GADNativeAd *)nativeAd {
  // The native ad will cause the app to become inactive and
  // open a new app.
}

सबसे सही तरीके

विज्ञापन लोड करते समय इन नियमों का पालन करें.

  • जो ऐप्लिकेशन किसी सूची में नेटिव विज्ञापनों का इस्तेमाल करते हैं उन्हें विज्ञापनों की सूची को पहले से कैश मेमोरी में सेव करना चाहिए.

  • विज्ञापनों को प्री-कैश करते समय, कैश मेमोरी मिटाएं और एक घंटे बाद पेज को फिर से लोड करें.

  • जब तक पिछला अनुरोध लोड नहीं हो जाता, तब तक loadRequest: को GADAdLoader पर दोबारा कॉल न करें, जैसा कि adLoaderDidFinishLoading: में बताया गया है.

अपना विज्ञापन दिखाएं

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