Trung gian

Quảng cáo xen kẽ là quảng cáo toàn màn hình, che phủ giao diện của ứng dụng lưu trữ. Quảng cáo này thường xuất hiện ở các điểm chuyển tiếp tự nhiên trong quy trình hoạt động của ứng dụng, chẳng hạn như giữa các hoạt động hoặc trong thời gian tạm dừng giữa các cấp độ của trò chơi. Khi một ứng dụng hiển thị quảng cáo xen kẽ, người dùng sẽ có thể chọn nhấn vào quảng cáo và tiếp tục chuyển đến đích đến của quảng cáo đó hoặc đóng quảng cáo và quay lại ứ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 xen kẽ vào một ứng dụng Flutter.

Luôn kiểm tra bằng quảng cáo thử nghiệm

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 đang chạy trong thực tế. Chúng tôi có thể tạm ngưng tài khoản của bạn nếu bạn không làm như vậy.

Cách dễ nhất để tải quảng cáo thử nghiệm là sử dụng mã đơn vị quảng cáo thử nghiệm dành riêng cho quảng cáo xen kẽ:

Android

ca-app-pub-3940256099942544/1033173712

iOS

ca-app-pub-3940256099942544/4411468910

Các đơn vị quảng cáo thử nghiệm được định cấu hình để trả về quảng cáo thử nghiệm cho mọi yêu cầu và bạn có thể sử dụng các đơn vị quảng cáo đó trong ứng dụng của mình khi lập trình, thử nghiệm và gỡ lỗi. Bạn chỉ cần nhớ thay thế các mã này bằng mã đơn vị quảng cáo của mình trước khi xuất bản ứng dụng.

Tải quảng cáo

Sau đây là ví dụ về đoạn mã tải một quảng cáo xen kẽ:

class InterstitialExampleState extends State<InterstitialExample> {
  InterstitialAd? _interstitialAd;

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = Platform.isAndroid
    ? 'ca-app-pub-3940256099942544/1033173712'
    : 'ca-app-pub-3940256099942544/4411468910';

  /// Loads an interstitial ad.
  void loadAd() {
    InterstitialAd.load(
        adUnitId: adUnitId,
        request: const AdRequest(),
        adLoadCallback: InterstitialAdLoadCallback(
          // Called when an ad is successfully received.
          onAdLoaded: (ad) {
            debugPrint('$ad loaded.');
            // Keep a reference to the ad so you can show it later.
            _interstitialAd = ad;
          },
          // Called when an ad request failed.
          onAdFailedToLoad: (LoadAdError error) {
            debugPrint('InterstitialAd failed to load: $error');
          },
        ));
  }
}

Sự kiện của quảng cáo xen kẽ

Khi sử dụng FullScreenContentCallback, bạn có thể theo dõi các sự kiện trong vòng đời của quảng cáo, chẳng hạn như khi quảng cáo hiển thị hoặc bị loại bỏ. Hãy đặt InterstitialAd.fullScreenContentCallback trước khi hiển thị quảng cáo để nhận thông báo cho những sự kiện này. Sau đây là ví dụ triển khai từng phương thức:

class InterstitialExampleState extends State<InterstitialExample> {
  InterstitialAd? _interstitialAd;

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = Platform.isAndroid
    ? 'ca-app-pub-3940256099942544/1033173712'
    : 'ca-app-pub-3940256099942544/4411468910';

  /// Loads an interstitial ad.
  void loadAd() {
    InterstitialAd.load(
        adUnitId: adUnitId,
        request: const AdRequest(),
        adLoadCallback: InterstitialAdLoadCallback(
          // Called when an ad is successfully received.
          onAdLoaded: (ad) {
             ad.fullScreenContentCallback = FullScreenContentCallback(
                // Called when the ad showed the full screen content.
                onAdShowedFullScreenContent: (ad) {},
                // Called when an impression occurs on the ad.
                onAdImpression: (ad) {},
                // Called when the ad failed to show full screen content.
                onAdFailedToShowFullScreenContent: (ad, err) {
                  // Dispose the ad here to free resources.
                  ad.dispose();
                },
                // Called when the ad dismissed full screen content.
                onAdDismissedFullScreenContent: (ad) {
                  // Dispose the ad here to free resources.
                  ad.dispose();
                },
                // Called when a click is recorded for an ad.
                onAdClicked: (ad) {});

            debugPrint('$ad loaded.');
            // Keep a reference to the ad so you can show it later.
            _interstitialAd = ad;
          },
          // Called when an ad request failed.
          onAdFailedToLoad: (LoadAdError error) {
            debugPrint('InterstitialAd failed to load: $error');
          },
        ));
  }
}

Hiển thị quảng cáo xen kẽ

InterstitialAd hiển thị dưới dạng Overlay trên mọi nội dung ứng dụng và được đặt cố định; do đó, bạn không thể thêm tiện ích này vào cây tiện ích Flutter. Bạn có thể chọn thời điểm hiển thị quảng cáo bằng cách gọi show().

_interstitiaAd.show();

Sau khi gọi show(), không thể loại bỏ Ad hiển thị theo cách này theo phương thức lập trình mà sẽ cần người dùng nhập thông tin. InterstitialAd chỉ có thể hiển thị một lần. Các lệnh gọi tiếp theo để hiển thị giá trị sẽ kích hoạt onAdFailedToShowFullScreenContent.

Bạn phải loại bỏ quảng cáo khi không còn cần quyền truy cập vào quảng cáo đó. Phương pháp hay nhất về thời điểm gọi dispose() là trong lệnh gọi lại FullScreenContentCallback.onAdDismissedFullScreenContentFullScreenContentCallback.onAdFailedToShowFullScreenContent.

Vậy là xong! Bây giờ, ứng dụng của bạn đã sẵn sàng để hiển thị quảng cáo xen kẽ.

Các bước tiếp theo

Ví dụ đầy đủ trên GitHub

Quảng cáo xen kẽ