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

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

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

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

नेटिव विज्ञापनों को सफलतापूर्वक लागू करने के लिए, आम तौर पर दो काम करने होते हैं: 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]];

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

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

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

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: से मिलती है.

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

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

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

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