इनाम वाले इंटरस्टीशियल विज्ञापन

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

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

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

जारी रखने से पहले, ये काम करें:

  • Flutter प्लगिन का 1.1.0 या इसके बाद का वर्शन इंस्टॉल करें.
  • Google Mobile Ads Flutter Plugin को सेट अप करें. आपके Flutter ऐप्लिकेशन में Google Mobile Ads Flutter Plugin इंपोर्ट किया गया होना चाहिए.

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

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

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

Android

ca-app-pub-3940256099942544/5354046379

iOS

ca-app-pub-3940256099942544/6978759866

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

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

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

RewardedInterstitialAd.load(
  adUnitId: "_adUnitId",
  request: const AdRequest(),
  rewardedInterstitialAdLoadCallback: RewardedInterstitialAdLoadCallback(
    onAdLoaded: (RewardedInterstitialAd ad) {
      // Called when an ad is successfully received.
      debugPrint('Ad was loaded.');
      // Keep a reference to the ad so you can show it later.
      _rewardedInterstitialAd = ad;
    },
    onAdFailedToLoad: (LoadAdError error) {
      // Called when an ad request failed.
      debugPrint('Ad failed to load with error: $error');
    },
  ),
);

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

इनाम वाले इंटरस्टीशियल विज्ञापन के इवेंट

FullScreenContentCallback का इस्तेमाल करके, लाइफ़साइकल इवेंट को सुना जा सकता है. जैसे, विज्ञापन कब दिखाया जाता है या कब खारिज किया जाता है. विज्ञापन दिखाने से पहले RewardedInterstitialAd.fullScreenContentCallback सेट करें, ताकि इन इवेंट के लिए सूचनाएं मिल सकें. इस उदाहरण में, हर तरीके को लागू किया गया है और कंसोल में एक मैसेज लॉग किया गया है:

ad.fullScreenContentCallback = FullScreenContentCallback(
  onAdShowedFullScreenContent: (ad) {
    // Called when the ad showed the full screen content.
    debugPrint('Ad showed full screen content.');
  },
  onAdFailedToShowFullScreenContent: (ad, err) {
    // Called when the ad failed to show full screen content.
    debugPrint('Ad failed to show full screen content with error: $err');
    // Dispose the ad here to free resources.
    ad.dispose();
  },
  onAdDismissedFullScreenContent: (ad) {
    // Called when the ad dismissed full screen content.
    debugPrint('Ad was dismissed.');
    // Dispose the ad here to free resources.
    ad.dispose();
  },
  onAdImpression: (ad) {
    // Called when an impression occurs on the ad.
    debugPrint('Ad recorded an impression.');
  },
  onAdClicked: (ad) {
    // Called when a click is recorded for an ad.
    debugPrint('Ad was clicked.');
  },
);

Display Network में दिखने वाला विज्ञापन

RewardedInterstitialAd को ऐप्लिकेशन के सभी कॉन्टेंट के ऊपर ओवरले के तौर पर दिखाया जाता है. साथ ही, इसे स्टैटिक तौर पर रखा जाता है. इसलिए, इसे Flutter विजेट ट्री में नहीं जोड़ा जा सकता. show() को कॉल करके, यह चुना जा सकता है कि विज्ञापन कब दिखाना है. RewardedInterstitialAd.show(), OnUserEarnedRewardCallback लेता है. इसे तब शुरू किया जाता है, जब उपयोगकर्ता को इनाम मिलता है. इसे लागू करना न भूलें और विज्ञापन देखने के लिए उपयोगकर्ता को इनाम दें.

_rewardedInterstitialAd?.show(
  onUserEarnedReward: (AdWithoutView ad, RewardItem rewardItem) {
    debugPrint('Reward amount: ${rewardItem.amount}');
  },
);

show() को कॉल करने के बाद, इस तरह से दिखाए गए Ad को प्रोग्राम के हिसाब से नहीं हटाया जा सकता. इसके लिए, उपयोगकर्ता के इनपुट की ज़रूरत होती है. RewardedInterstitialAd को सिर्फ़ एक बार दिखाया जा सकता है. इसके बाद, show को कॉल करने पर onAdFailedToShowFullScreenContent ट्रिगर होगा.

जब किसी विज्ञापन की ज़रूरत न हो, तो उसे डिस्पोज़ करना ज़रूरी है. dispose() को कॉल करने का सबसे सही तरीका यह है कि इसे FullScreenContentCallback.onAdDismissedFullScreenContent और FullScreenContentCallback.onAdFailedToShowFullScreenContent कॉलबैक में कॉल किया जाए.

[ज़रूरी नहीं] सर्वर साइड से की जाने वाली पुष्टि (एसएसवी) के कॉलबैक की पुष्टि करना

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

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

RewardedInterstitialAd.load(
  adUnitId: "_adUnitId",
  request: AdRequest(),
  rewardedInterstitialAdLoadCallback: RewardedInterstitialAdLoadCallback(
    onAdLoaded: (ad) {
      ServerSideVerificationOptions _options =
          ServerSideVerificationOptions(
            customData: 'SAMPLE_CUSTOM_DATA_STRING',
          );
      ad.setServerSideOptions(_options);
      _rewardedInterstitialAd = ad;
    },
    onAdFailedToLoad: (error) {},
  ),
);

SAMPLE_CUSTOM_DATA_STRING को अपने ग्राहक से जुड़े डेटा से बदलें.

GitHub पर पूरा उदाहरण

पूरा उदाहरण देखने के लिए, एपीआई डेमो देखें.