विज्ञापन को पहले से लोड करने की सुविधा (ऐल्फ़ा)

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

इस गाइड में, पहले से लोड किए गए विज्ञापनों को कॉन्फ़िगर करने, उनकी उपलब्धता की जांच करने, और उन्हें पाने और दिखाने के तरीके के बारे में बताया गया है.

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

ट्यूटोरियल शुरू करने से पहले, आपको ये काम पूरे करने होंगे:

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

प्रीलोडिंग शुरू करने के लिए, startPreload() को कॉल करें. Google Mobile Ads SDK, पहले से लोड किए गए कॉन्फ़िगरेशन के लिए, विज्ञापन के अनुरोधों को अपने-आप फिर से भेजता है.

यहां दिए गए उदाहरण में, विज्ञापनों को पहले से लोड करने की सुविधा शुरू की गई है:

Kotlin

private fun startPreloading(adUnitID: String) {
  val adRequest: AdRequest = AdRequest.Builder(adUnitID).build()
  val preloadConfig = PreloadConfiguration(adRequest)
  InterstitialAdPreloader.start(adUnitID, preloadConfig)
}

Java

private void startPreloading(String adUnitId) {
  AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
  PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest);
  InterstitialAdPreloader.start(adUnitId, preloadConfig);
}

ज़रूरी नहीं: पहले से लोड किए गए विज्ञापनों में बदलाव करना

पहले से लोड किए गए विज्ञापनों को बदलने के लिए, destroy() को कॉल करें. इसके बाद, बदले गए कॉन्फ़िगरेशन के साथ destroy() को फिर से कॉल करें.startPreload()

ज़रूरी नहीं: विज्ञापनों को पहले से लोड होने से रोकना

विज्ञापनों को पहले से लोड होने से रोकने के लिए, प्रीलोड आईडी के साथ destroy() को कॉल करें.

ज़रूरी नहीं: बफ़र का साइज़ सेट करना

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

Kotlin

private fun setBufferSize(adUnitID: String) {
  val adRequest: AdRequest = AdRequest.Builder(adUnitID).build()
  val preloadConfig = PreloadConfiguration(adRequest, bufferSize = 3)
  InterstitialAdPreloader.start(adUnitID, preloadConfig)
}

Java

private void setBufferSize(String adUnitId) {
  AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
  PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest, 3);
  InterstitialAdPreloader.start(adUnitId, preloadConfig);
}

ज़रूरी नहीं: प्रीलोडिंग की सूचनाएं पाना

विज्ञापन प्रीलोड करने से जुड़े इवेंट की सूचनाएं पाने के लिए, PreloadCallback को लागू करें. डीबग और लॉग करने के लिए, ये इवेंट रिस्पॉन्स की जानकारी वाला ऑब्जेक्ट उपलब्ध कराते हैं.

Kotlin

private fun startPreloadingWithCallback(adUnitID: String) {
  val preloadCallback =
    // [Important] Don't call ad preloader start() or pollAd() within the PreloadCallback.
    object : PreloadCallback {
      override fun onAdFailedToPreload(preloadId: String, adError: LoadAdError) {
        Log.i(
          TAG,
          ("Interstitial preload ad $preloadId failed to load with error: ${adError.message}"),
        )
        // [Optional] Get the error response info for additional details.
        // val responseInfo = adError.responseInfo
      }

      override fun onAdsExhausted(preloadId: String) {
        Log.i(TAG, "Interstitial preload ad $preloadId is not available")
      }

      override fun onAdPreloaded(preloadId: String, responseInfo: ResponseInfo) {
        Log.i(TAG, "Interstitial preload ad $preloadId is available")
      }
    }
  val adRequest: AdRequest = AdRequest.Builder(adUnitID).build()
  val preloadConfig = PreloadConfiguration(adRequest)
  InterstitialAdPreloader.start(adUnitID, preloadConfig, preloadCallback)
}

Java

private void startPreloadingWithCallback(String adUnitId) {
  PreloadCallback preloadCallback =
      // [Important] Don't call ad preloader start() or pollAd() within the PreloadCallback.
      new PreloadCallback() {
        @Override
        public void onAdFailedToPreload(String preloadId, LoadAdError adError) {
          Log.e(
              TAG,
              String.format(
                  "Interstitial preload ad %s failed to load with error: %s",
                  preloadId, adError.getMessage()));
          // [Optional] Get the error response info for additional details.
          // ResponseInfo responseInfo = adError.getResponseInfo();
        }

        @Override
        public void onAdsExhausted(String preloadId) {
          Log.i(TAG, "Interstitial preload ad " + preloadId + " is not available");
        }

        @Override
        public void onAdPreloaded(String preloadId, ResponseInfo responseInfo) {
          Log.i(TAG, "Interstitial preload ad " + preloadId + " is available");
        }
      };

  AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
  PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest);
  InterstitialAdPreloader.start(adUnitId, preloadConfig, preloadCallback);
}

पहले से लोड किए गए विज्ञापन को पाना और दिखाना

onAdsAvailable() को कॉल करने के बाद, विज्ञापन दिखाए जा सकते हैं. विज्ञापन दिखाए जाने और खत्म होने के बाद, विज्ञापन लगातार उपलब्ध कराए जाते हैं. विज्ञापन मिलने के बाद, विज्ञापन के लाइफ़साइकल इवेंट सुनें और विज्ञापन दिखाएं.

यहां प्रीलोड किए गए विज्ञापन का एक उदाहरण दिया गया है:

Kotlin

private fun pollAndShowAd(activity: Activity, adUnitID: String) {
  // Polling returns the next available ad and loads another ad in the background.
  val ad = InterstitialAdPreloader.pollAd(adUnitID)

  // Interact with the ad object as needed.
  ad?.apply {
    Log.d(TAG, "Interstitial ad response info: ${this.getResponseInfo()}")
    this.adEventCallback =
      object : InterstitialAdEventCallback {
        override fun onAdImpression() {
          Log.d(TAG, "Interstitial ad recorded an impression.")
        }

        override fun onAdPaid(value: AdValue) {
          Log.d(TAG, "Interstitial ad onPaidEvent: ${value.valueMicros} ${value.currencyCode}")
        }
      }

    // Show the ad.
    ad.show(activity)
  }
}

Java

private void pollAndShowAd(Activity activity, String adUnitId) {
  // Polling returns the next available ad and loads another ad in the background.
  final InterstitialAd ad = InterstitialAdPreloader.pollAd(adUnitId);

  // Interact with the ad object as needed.
  if (ad != null) {
    Log.d(TAG, "Interstitial ad response info: " + ad.getResponseInfo());
    ad.setAdEventCallback(
        new InterstitialAdEventCallback() {
          @Override
          public void onAdImpression() {
            Log.d(TAG, "Interstitial ad recorded an impression.");
          }

          @Override
          public void onAdPaid(AdValue value) {
            Log.d(
                TAG,
                "Interstitial ad onPaidEvent: "
                    + value.getValueMicros()
                    + " "
                    + value.getCurrencyCode());
          }
        });

    // Show the ad.
    ad.show(activity);
  }
}

ज़रूरी नहीं: पहले से लोड किए गए विज्ञापन की उपलब्धता की जांच करें

विज्ञापन उपलब्ध हैं या नहीं, यह जानने के लिए isAdAvailable पर कॉल करें:

Kotlin

private fun isAdAvailable(adUnitID: String): Boolean {
  return InterstitialAdPreloader.isAdAvailable(adUnitID)
}

Java

private boolean isAdAvailable(String adUnitId) {
  return InterstitialAdPreloader.isAdAvailable(adUnitId);
}