پیش بارگیری تبلیغات (آلفا)

پیش بارگیری تبلیغات یک فرآیند بارگیری و ذخیره سازی با مدیریت SDK است که نیاز به بارگیری و ذخیره سازی دستی تبلیغات را از بین می برد. این فرآیند به شما امکان می‌دهد بدون نیاز به بارگیری دستی آگهی‌ها یا رسیدگی به تماس‌های بارگیری آگهی، تبلیغات را در صورت لزوم نمایش دهید.

این راهنما پیکربندی تبلیغات پیش بارگذاری شده، بررسی در دسترس بودن آگهی پیش بارگذاری شده، و نحوه دریافت و نمایش آگهی از پیش بارگذاری شده را پوشش می دهد.

پیش نیازها

قبل از ادامه آموزش، باید موارد زیر را تکمیل کنید:

  • Google Mobile Ads SDK (بتا) نسخه 0.14.0-alpha01 یا بالاتر را نصب کنید.
  • راهنمای شروع را کامل کنید.

شروع به بارگذاری اولیه تبلیغات کنید

برای شروع پیش بارگذاری، startPreload() را فراخوانی کنید. Google Mobile Ads SDK به‌طور خودکار درخواست‌های تبلیغاتی ناموفق را برای پیکربندی‌های از پیش بارگذاری‌شده دوباره امتحان می‌کند.

مثال زیر بارگذاری تبلیغات را شروع می کند:

کاتلین

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

جاوا

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

اختیاری: تبلیغات پیش بارگیری را اصلاح کنید

برای تغییر اینکه کدام تبلیغات از قبل بارگذاری شده اند، destroy() و سپس startPreload() دوباره با پیکربندی اصلاح شده فراخوانی کنید.

اختیاری: از پیش بارگذاری تبلیغات جلوگیری کنید

برای توقف پیش بارگذاری تبلیغات، با یک شناسه پیش بارگذاری destroy() کنید.

اختیاری: اندازه بافر را تنظیم کنید

اندازه بافر تعداد تبلیغات از پیش بارگذاری شده در حافظه را کنترل می کند. اگر برنامه شما تبلیغات را سریعتر از بارگیری تبلیغات جدید نشان می دهد، اندازه بافر را روی مقدار بزرگتر تنظیم کنید. اگر استفاده از حافظه شما را نگران می کند، اندازه بافر را روی مقدار کم مانند 2 تنظیم کنید.

کاتلین

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

جاوا

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

اختیاری: دریافت اعلان های بارگیری از قبل

PreloadCallback برای دریافت اعلان‌ها برای رویدادهای پیش‌بارگذاری آگهی پیاده‌سازی کنید. برای اشکال‌زدایی و ثبت‌نام، این رویدادها یک شی اطلاعات پاسخ ارائه می‌کنند.

کاتلین

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)
}

جاوا

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() ، تبلیغات برای نمایش در دسترس هستند. تبلیغات به طور مداوم در دسترس قرار می گیرند، زیرا تبلیغات نشان داده می شوند و تمام می شوند. پس از دریافت آگهی، به رویدادهای چرخه حیات تبلیغ گوش دهید و تبلیغ را نمایش دهید.

مثال زیر یک تبلیغ از پیش بارگذاری شده را نشان می دهد:

کاتلین

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)
  }
}

جاوا

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 تماس بگیرید:

کاتلین

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

جاوا

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