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

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

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

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

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

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

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

जारी रखने से पहले, Google Mobile Ads SDK सेट अप करें.

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

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

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

ca-app-pub-3940256099942544/3986624511

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

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

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

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

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

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

Swift

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  // The UIViewController parameter is optional.
  rootViewController: self,
  // To receive native ads, the ad loader's delegate must
  // conform to the NativeAdLoaderDelegate protocol.
  adTypes: [.native],
  // Use nil for default options.
  options: nil)
// Set the delegate before making an ad request.
adLoader.delegate = self

nativeAdUnitID को अपनी विज्ञापन यूनिट के आईडी से बदलें.

Objective-C

self.adLoader =
    [[GADAdLoader alloc] initWithAdUnitID:"kNativeAdUnitID"
                       // The UIViewController parameter is optional.
                       rootViewController:self
                                  // To receive native ads, the ad loader's delegate must
                                  // conform to the NativeAdLoaderDelegate protocol.
                                  adTypes:@[ GADAdLoaderAdTypeNative ]
                                  // Use nil for default options.
                                  options:nil];
// Set the delegate before making an ad request.
self.adLoader.delegate = self;

kNativeAdUnitID को अपनी विज्ञापन यूनिट के आईडी से बदलें.

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

adTypes अरे में यह कॉन्सटेंट होना चाहिए :

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

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

Swift

func adLoader(_ adLoader: AdLoader, didReceive nativeAd: NativeAd) {
  // Set the delegate to receive notifications for interactions with the native ad.
  nativeAd.delegate = self

  // TODO: Display the native ad.
}

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader didReceiveNativeAd:(GADNativeAd *)nativeAd {
  // Set the delegate to receive notifications for interactions with the native ad.
  nativeAd.delegate = self;

  // TODO: Display the native ad.
}

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

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

Swift

adLoader.load(Request())

Objective-C

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

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

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

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

Swift

let multipleAdOptions = MultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5
adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  // The UIViewController parameter is optional.
  rootViewController: self,
  adTypes: [.native],
  options: [multipleAdOptions])

Objective-C

GADMultipleAdsAdLoaderOptions *multipleAdOptions = [[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdOptions.numberOfAds = 5;

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"kNativeAdUnitID"
                                   // The UIViewController parameter is optional.
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ multipleAdOptions ]];

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

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

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

यह तय करना कि लोड होने की प्रोसेस कब पूरी हुई

loadRequest: को कॉल करने के बाद, ऐप्लिकेशन को अनुरोध के नतीजे मिल सकते हैं. इसके लिए, उसे इन पर कॉल करना होगा:

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

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

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

Swift

func adLoaderDidFinishLoading(_ adLoader: AdLoader) {
  // The adLoader has finished loading ads.
}

Objective-C

- (void)adLoaderDidFinishLoading:(GADAdLoader *)adLoader {
  // The adLoader has finished loading ads.
}

पूरे न हो पाए अनुरोधों को मैनेज करना

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

Swift

func adLoader(_ adLoader: AdLoader, didFailToReceiveAdWithError error: any Error) {
  // The adLoader failed to receive an ad.
}

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader didFailToReceiveAdWithError:(NSError *)error {
  // The adLoader failed to receive an ad.
}

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

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

Swift

nativeAd.delegate = self

Objective-C

nativeAd.delegate = self;

इसके बाद, ये डेलिगेट कॉल पाने के लिए, GADNativeAdDelegate लागू करें:

Swift

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

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

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

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

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

func nativeAdWillLeaveApplication(_ nativeAd: NativeAd) {
  // 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.
}

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

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

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

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

  • जब तक पिछला अनुरोध लोड न हो जाए, तब तक GADAdLoader पर loadRequest: को फिर से कॉल न करें. इसके बारे में adLoaderDidFinishLoading: से पता चलता है.

  • नेटिव विज्ञापन की कैश मेमोरी को सिर्फ़ ज़रूरत के हिसाब से सीमित करें. उदाहरण के लिए, प्रीकैश करते समय सिर्फ़ उन विज्ञापनों को कैश मेमोरी में सेव करें जो स्क्रीन पर तुरंत दिखते हैं. नेटिव विज्ञापनों के लिए ज़्यादा मेमोरी की ज़रूरत होती है. साथ ही, नेटिव विज्ञापनों को खत्म किए बिना उन्हें कैश मेमोरी में सेव करने से, मेमोरी का ज़्यादा इस्तेमाल होता है.

  • जब नेटिव विज्ञापनों का इस्तेमाल न किया जा रहा हो, तो उन्हें मिटा दें.

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

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