Quảng cáo biểu ngữ

Quảng cáo biểu ngữ là quảng cáo hình chữ nhật chiếm một phần bố cục của ứng dụng. Chúng luôn hiển thị trên màn hình trong khi người dùng tương tác với ứng dụng, hoặc cố định ở ở đầu hoặc cuối màn hình hoặc cùng dòng với nội dung khi người dùng cuộn. Biểu ngữ quảng cáo có thể tự động làm mới sau một khoảng thời gian nhất định. Xem bài viết Tổng quan về quảng cáo biểu ngữ để biết thêm thông tin.

Hướng dẫn này chỉ cho bạn cách bắt đầu sử dụng biểu ngữ thích ứng cố định quảng cáo, Tối đa hoá hiệu suất bằng cách tối ưu hoá kích thước quảng cáo cho mỗi thiết bị sử dụng chiều rộng quảng cáo mà bạn chỉ định.

Quảng cáo biểu ngữ thích ứng cố định là quảng cáo có tỷ lệ khung hình cố định thay vì quảng cáo có kích thước cố định. Tỷ lệ khung hình tương tự như tiêu chuẩn ngành 320x50. Một lần bạn chỉ định chiều rộng đầy đủ có sẵn, tuỳ chọn này sẽ trả về cho bạn quảng cáo có chiều cao cho chiều rộng đó. Chiều cao tối ưu không thay đổi giữa các yêu cầu từ cùng một thiết bị, và các chế độ xem xung quanh không cần phải di chuyển khi quảng cáo làm mới.

Điều kiện tiên quyết

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

Khi 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 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 Biểu ngữ Android:

ca-app-pub-3940256099942544/9214589741

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

Để biết thêm thông tin về cách hoạt động của quảng cáo thử nghiệm của SDK quảng cáo trên thiết bị di động, hãy xem bài viết Thử nghiệm Google Ads.

Thêm AdView vào bố cục

Bước đầu tiên để hiển thị biểu ngữ là đặt AdView trong bố cục cho Activity hoặc Fragment mà bạn muốn hiển thị quảng cáo .:

Java

private AdSize getAdSize() {
  // Determine the screen width (less decorations) to use for the ad width.
  Display display = getWindowManager().getDefaultDisplay();
  DisplayMetrics outMetrics = new DisplayMetrics();
  display.getMetrics(outMetrics);

  float density = outMetrics.density;

  float adWidthPixels = adContainerView.getWidth();

  // If the ad hasn't been laid out, default to the full screen width.
  if (adWidthPixels == 0) {
    adWidthPixels = outMetrics.widthPixels;
  }

  int adWidth = (int) (adWidthPixels / density);
  return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
}

private void loadBanner() {
  
  // Create a new ad view.
  AdView adView = new AdView(this);
  adView.setAdSizes(getAdSize());
  adView.setAdUnitId("ca-app-pub-3940256099942544/9214589741");

  // Replace ad container with new ad view.
  adContainerView.removeAllViews();
  adContainerView.addView(adView);

  // Start loading the ad in the background.
  AdRequest adRequest = new AdRequest.Builder().build();
  adView.loadAd(adRequest);
}

Kotlin


// Determine the screen width (less decorations) to use for the ad width.
// If the ad hasn't been laid out, default to the full screen width.
private val adSize: AdSize
  get() {
    val display = windowManager.defaultDisplay
    val outMetrics = DisplayMetrics()
    display.getMetrics(outMetrics)

    val density = outMetrics.density

    var adWidthPixels = binding.adViewContainer.width.toFloat()
    if (adWidthPixels == 0f) {
      adWidthPixels = outMetrics.widthPixels.toFloat()
    }

    val adWidth = (adWidthPixels / density).toInt()
    return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
  }

private fun loadBanner() {
  
  // Create a new ad view.
  val adView = AdView(this)
  adView.adSizes = adSize
  adView.adUnitId = "ca-app-pub-3940256099942544/9214589741"

  // Create an ad request.
  val adRequest = AdRequest.Builder().build()

  // Start loading the ad in the background.
  adView.loadAd(adRequest)
}

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

Sau khi AdView đã sẵn sàng, bước tiếp theo là tải quảng cáo. Đã hoàn tất việc này bằng loadAd() trong lớp AdView. Bạn sẽ mất AdRequest tham số, chứa thông tin trong thời gian chạy, chẳng hạn như thông tin nhắm mục tiêu, về yêu cầu quảng cáo duy nhất.

Sau đây là ví dụ cho thấy cách tải một quảng cáo bằng phương thức onCreate() của một Activity:

Java

private void loadBanner() {
  // Create a new ad view.
  adView = new AdView(this);
  adView.setAdUnitId(AD_UNIT);
  adView.setAdSize(getAdSize());
  
  // Replace ad container with new ad view.
  adContainerView.removeAllViews();
  adContainerView.addView(adView);

  // Start loading the ad in the background.
  AdRequest adRequest = new AdRequest.Builder().build();
  adView.loadAd(adRequest);
}

Kotlin

private fun loadBanner() {
  // This is an ad unit ID for a test ad. Replace with your own banner ad unit ID.
  adView.adUnitId = "/6499/example/banner"
  adView.setAdSize(adSize)
  
  // Create an ad request.
  val adRequest = AdRequest.Builder().build()

  // Start loading the ad in the background.
  adView.loadAd(adRequest)
}

Nếu quảng cáo của bạn không tải được, bạn không cần phải yêu cầu một cách rõ ràng một quảng cáo khác như miễn là bạn đã định cấu hình đơn vị quảng cáo để làm mới; SDK quảng cáo trên thiết bị di động của Google tuân theo mọi tốc độ làm mới mà bạn đã chỉ định trong AdMob giao diện web. Nếu chưa bật tính năng làm mới, bạn sẽ cần phải gửi một của bạn.

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 biểu ngữ.

Sự kiện quảng cáo

Bạn có thể theo dõi một số sự kiện trong vòng đời của quảng cáo, bao gồm tải, lượt hiển thị và lượt nhấp vào quảng cáo, cũng như sự kiện mở và đóng quảng cáo. Bạn nên để đặt lệnh gọi lại trước khi tải biểu ngữ.

Java

AdView.setAdListener(new AdListener() {
    @Override
    public void onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    @Override
    public void onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    @Override
    public void onAdFailedToLoad(LoadAdError adError) {
      // Code to be executed when an ad request fails.
    }

    @Override
    public void onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    @Override
    public void onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    @Override
    public void onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
});

Kotlin

AdView.adListener = object: AdListener() {
    override fun onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    override fun onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    override fun onAdFailedToLoad(adError : LoadAdError) {
      // Code to be executed when an ad request fails.
    }

    override fun onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    override fun onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    override fun onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
}

Mỗi phương thức có thể ghi đè trong AdListener tương ứng với một sự kiện trong vòng đời của quảng cáo.

Phương thức có thể ghi đè
onAdClicked() onAdClicked() được gọi khi một lần nhấp được ghi lại cho một quảng cáo.
onAdClosed() onAdClosed() được gọi khi người dùng quay lại ứng dụng sau khi xem URL đích. Ứng dụng của bạn có thể dùng mã này để tiếp tục các hoạt động bị tạm ngưng hoặc thực hiện mọi hoạt động cần thiết khác để chuẩn bị sẵn sàng cho hoạt động tương tác. Tham khảo AdMob Ví dụ về AdListener để triển khai các phương thức trình nghe quảng cáo trong Ứng dụng minh hoạ API của Android.
onAdFailedToLoad() onAdFailedToLoad() là phương thức duy nhất chứa thông số. Thông số lỗi thuộc loại LoadAdError mô tả lỗi đã xảy ra. Để biết thêm thông tin, hãy tham khảo phần Gỡ lỗi tải quảng cáo .
onAdImpression() onAdImpression() được gọi khi một lượt hiển thị được ghi lại cho một quảng cáo.
onAdLoaded() onAdLoaded() được thực thi khi quảng cáo tải xong. Nếu bạn muốn hoãn thêm AdView đối với hoạt động hoặc mảnh của bạn cho đến khi bạn chắc chắn rằng quảng cáo sẽ được tải, cho ví dụ, bạn có thể làm như vậy tại đây.
onAdOpened() onAdOpened() được gọi khi một quảng cáo mở lớp phủ bao phủ màn hình.

Tăng tốc phần cứng cho quảng cáo dạng video

Để quảng cáo video hiển thị thành công ở chế độ xem quảng cáo biểu ngữ, phần cứng tăng tốc phải không được bật.

Tính năng tăng tốc phần cứng được bật theo mặc định nhưng một số ứng dụng có thể chọn tắt nó. Nếu điều này đúng với ứng dụng của bạn, bạn nên bật chế độ tăng tốc phần cứng cho Các lớp Activity sử dụng quảng cáo.

Bật tính năng tăng tốc phần cứng

Nếu ứng dụng của bạn hoạt động không đúng cách khi bật tính năng tăng tốc phần cứng trên toàn cầu, bạn cũng có thể kiểm soát dữ liệu đó cho từng hoạt động riêng lẻ. Để bật hoặc tắt tính năng tăng tốc phần cứng, bạn có thể sử dụng android:hardwareAccelerated cho <application><activity> trong AndroidManifest.xml của bạn. Ví dụ sau đây bật tính năng phần cứng cho toàn bộ ứng dụng nhưng tắt tính năng này đối với một hoạt động:

<application android:hardwareAccelerated="true">
    <!-- For activities that use ads, hardwareAcceleration should be true. -->
    <activity android:hardwareAccelerated="true" />
    <!-- For activities that don't use ads, hardwareAcceleration can be false. -->
    <activity android:hardwareAccelerated="false" />
</application>

Xem bài viết Tăng tốc phần cứng hướng dẫn để biết thêm thông tin về các tuỳ chọn kiểm soát tăng tốc phần cứng. Lưu ý rằng bạn không thể bật chế độ xem quảng cáo riêng lẻ để tăng tốc phần cứng nếu hoạt động bị tắt nên hoạt động phải tự bật tính năng tăng tốc phần cứng.

Tài nguyên khác

Ví dụ trên GitHub

  • Ví dụ về quảng cáo biểu ngữ thích ứng cố định: Java | Kotlin
  • Bản minh hoạ các tính năng nâng cao: Java | Kotlin

Các bước tiếp theo

Biểu ngữ có thể thu gọn

Quảng cáo biểu ngữ có thể thu gọn là quảng cáo biểu ngữ ban đầu được trình bày dưới dạng quảng cáo biểu ngữ lớn hơn có nút để thu gọn quảng cáo xuống kích thước nhỏ hơn. Cân nhắc sử dụng để tối ưu hoá hiệu suất hơn nữa. Xem bài viết quảng cáo biểu ngữ có thể thu gọn để biết thêm thông tin.

Quảng cáo biểu ngữ thích ứng cùng dòng

Biểu ngữ thích ứng cùng dòng là biểu ngữ lớn hơn, cao hơn so với biểu ngữ thích ứng cố định biểu ngữ. Biểu tượng này có nhiều loại chiều cao và có thể cao bằng màn hình của thiết bị. Nên dùng quảng cáo biểu ngữ thích ứng cùng dòng thay vì quảng cáo biểu ngữ thích ứng cố định cho những ứng dụng đặt quảng cáo biểu ngữ trong nội dung có thể cuộn. Xem nội dung thích ứng cùng dòng biểu ngữ để tìm hiểu thêm chi tiết.

Khám phá các chủ đề khác