Tải một quảng cáo khi mở ứng dụng

Quảng cáo khi mở ứng dụng là một định dạng quảng cáo dành cho những nhà xuất bản muốn kiếm tiền từ màn hình tải ứng dụng của họ. Người dùng có thể đóng quảng cáo khi mở ứng dụng bất cứ lúc nào. Khi người dùng đưa ứng dụng của bạn lên nền trước, hãy hiển thị quảng cáo khi mở ứng dụng.

Để biết thêm thông tin, hãy xem Hướng dẫn về quảng cáo khi mở ứng dụng.

Tài liệu hướng dẫn này giải thích cách tích hợp quảng cáo khi mở ứng dụng vào một ứng dụng Android.

Trước khi bắt đầu

Trước khi tiếp tục, hãy làm như sau:

  • Thiết lập GMA Next-Gen SDK.
  • Sử dụng mã đơn vị quảng cáo thử nghiệm khi mở ứng dụng ca-app-pub-3940256099942544/9257395921.
    • Khi bạn tạo và thử nghiệm ứng dụng, hãy nhớ sử dụng quảng cáo thử nghiệm thay vì quảng cáo sản phẩm đang chạy trong thực tế. Nếu bạn không sử dụng mã đơn vị quảng cáo thử nghiệm, Google có thể tạm ngưng tài khoản của bạn.
    • Trước khi xuất bản ứng dụng, hãy thay thế mã này bằng mã đơn vị quảng cáo của bạn.
    • Để biết thông tin chi tiết về quảng cáo thử nghiệm GMA Next-Gen SDK, hãy xem bài viết Bật quảng cáo thử nghiệm.

Tải một quảng cáo

Ví dụ sau đây tải một quảng cáo:

Kotlin

// Load ads after you initialize MobileAds.
AppOpenAd.load(
  AdRequest.Builder(adUnitId).build(),
  object : AdLoadCallback<AppOpenAd> {
    override fun onAdLoaded(ad: AppOpenAd) {
      // App open ad loaded.
      appOpenAd = ad
    }

    override fun onAdFailedToLoad(adError: LoadAdError) {
      // App open ad failed to load.
      Log.e(TAG, "App open ad failed to load: ${adError.message}")
      appOpenAd = null
    }
  },
)

Java

// Load ads after you initialize MobileAds.
AppOpenAd.load(
    new AdRequest.Builder(adUnitId).build(),
    new AdLoadCallback<AppOpenAd>() {
      @Override
      public void onAdLoaded(AppOpenAd ad) {
        // App open ad loaded.
        appOpenAd = ad;
      }

      @Override
      public void onAdFailedToLoad(LoadAdError adError) {
        // App open ad failed to load.
        Log.e(TAG, "App open ad failed to load: " + adError.getMessage());
        appOpenAd = null;
      }
    });

Khi thử nghiệm, hãy sử dụng mã đơn vị quảng cáo thử nghiệm: ca-app-pub-3940256099942544/9257395921.

Hiển thị quảng cáo

Để hiển thị quảng cáo khi mở ứng dụng, hãy gọi phương thức show. Quảng cáo khi mở ứng dụng sẽ hết hạn sau 4 giờ kể từ khi tải. Đừng hiển thị quảng cáo khi mở ứng dụng đang tải trong hơn bốn giờ.

Ví dụ sau đây cho thấy quảng cáo:

Kotlin

private fun showAd(appOpenAd: AppOpenAd, activity: Activity) {
  // Show the ad.
  appOpenAd.show(activity)
}

Java

private void showAd(AppOpenAd appOpenAd, Activity activity) {
  // Show the ad.
  appOpenAd.show(activity);
}

Xử lý khởi động nguội và màn hình tải

Quá trình khởi động nguội xảy ra khi ứng dụng của bạn chạy từ ổ đĩa, còn quá trình khởi động ấm xảy ra khi bạn mở lại ứng dụng từ bộ nhớ. Trong trường hợp khởi động nguội, bạn không có quảng cáo đã tải trước đó để hiển thị. Trong trường hợp khởi động ấm, bạn vẫn có thể hiển thị quảng cáo đã tải.

Trong quá trình khởi động nguội, người dùng có thể tương tác với ứng dụng của bạn trước khi ứng dụng tải và hiển thị quảng cáo. Để tránh mang lại trải nghiệm kém cho người dùng, hãy chỉ hiển thị quảng cáo khi mở ứng dụng vào lúc khởi động nguội trên màn hình tải trong khi các thành phần của ứng dụng đang tải. Trong khi người dùng chờ ứng dụng của bạn tải, hãy hiển thị quảng cáo khi mở ứng dụng. Không hiển thị quảng cáo khi mở ứng dụng trong lần đầu tiên khởi động ứng dụng. Nếu quá trình tải thành phần hoàn tất và người dùng truy cập vào nội dung chính trước khi quảng cáo tải xong, thì đừng hiển thị quảng cáo.

Tải thành phần ứng dụng trên một luồng trong nền để tiếp tục tải trong khi quảng cáo hiển thị. Nếu màn hình tải của bạn tải xong trong khi quảng cáo hiển thị, hãy đóng màn hình tải trong phương thức gọi lại khi quảng cáo bị đóng.

Theo dõi các sự kiện quảng cáo

Trước khi hiển thị quảng cáo, hãy theo dõi các sự kiện trong vòng đời của quảng cáo. Ví dụ sau đây đăng ký lệnh gọi lại cho các sự kiện quảng cáo:

Kotlin

private fun listenToAdEvents() {
  // Listen for ad events.
  val ad = appOpenAd
  if (ad == null) {
    Log.e(TAG, "App open ad is not ready yet.")
    return
  }

  ad.adEventCallback =
    object : AppOpenAdEventCallback {
      override fun onAdShowedFullScreenContent() {
        // App open ad did show.
      }

      override fun onAdDismissedFullScreenContent() {
        // App open ad did dismiss.
        appOpenAd = null
      }

      override fun onAdFailedToShowFullScreenContent(
        fullScreenContentError: FullScreenContentError
      ) {
        // App open ad failed to show.
        Log.e(TAG, "App open ad failed to show: ${fullScreenContentError.message}")
      }

      override fun onAdImpression() {
        // App open ad did record an impression.
      }

      override fun onAdClicked() {
        // App open ad did record a click.
      }
    }
}

Java

private void listenToAdEvents() {
  // Listen for ad events.
  if (appOpenAd == null) {
    Log.e(TAG, "App open ad is not ready yet.");
    return;
  }

  appOpenAd.setAdEventCallback(
      new AppOpenAdEventCallback() {
        @Override
        public void onAdShowedFullScreenContent() {
          // App open ad did show.
        }

        @Override
        public void onAdDismissedFullScreenContent() {
          // App open ad did dismiss.
          appOpenAd = null;
        }

        @Override
        public void onAdFailedToShowFullScreenContent(
            @NonNull FullScreenContentError fullScreenContentError) {
          // App open ad failed to show.
          Log.e(TAG, "App open ad failed to show: " + fullScreenContentError.getMessage());
        }

        @Override
        public void onAdImpression() {
          // App open ad did record an impression.
        }

        @Override
        public void onAdClicked() {
          // App open ad did record a click.
        }
      });
}