Quảng cáo biểu ngữ

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Quảng cáo biểu ngữ là quảng cáo dạng hình ảnh hình chữ nhật hoặc quảng cáo dạng văn bản xuất hiện trên một phần của màn hình. Quảng cáo biểu ngữ luôn ở trên màn hình trong khi người dùng tương tác với ứng dụng, và có thể tự động làm mới sau một khoảng thời gian nhất định. Nếu bạn mới sử dụng quảng cáo trên thiết bị di động thì đây là loại quảng cáo rất phù hợp để bắt đầu. Nghiên cứu điển hình.

Tài liệu hướng dẫn này trình bày cách tích hợp quảng cáo biểu ngữ từ AdMob vào ứng dụng Unity. Ngoài các đoạn mã và thông tin hướng dẫn, bài viết này còn cung cấp thông tin về việc xác định kích thước biểu ngữ sao cho phù hợp và đường liên kết đến các tài liệu tham khảo khác.

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

Tạo Chế độ xem quảng cáo biểu ngữ

Bước đầu tiên để hiển thị một quảng cáo biểu ngữ là tạo đối tượng BannerView trong tập lệnh C# được đính kèm vào GameObject.

Để dễ dàng tích hợp quảng cáo bằng cách sử dụng Trình chỉnh sửa Unity, hãy dùng thử Quy trình đặt quảng cáo (thử nghiệm) mới.

using System;
using UnityEngine;
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private BannerView bannerView;
    ...
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize(initStatus => { });

        this.RequestBanner();
    }

    private void RequestBanner()
    {
        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        // Create a 320x50 banner at the top of the screen.
        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);
    }
}

Hàm khởi tạo cho BannerView có các thông số sau:

  • adUnitId – Mã đơn vị quảng cáo AdMob mà từ đó BannerView sẽ tải quảng cáo.
  • AdSize – Kích thước quảng cáo AdMob mà bạn muốn sử dụng (tham khảo Kích thước biểu ngữ để biết thông tin chi tiết).
  • AdPosition – Vị trí mà bạn nên đặt quảng cáo biểu ngữ. Enum AdPosition liệt kê các giá trị vị trí quảng cáo hợp lệ.

Bạn nên lưu ý cách sử dụng các đơn vị quảng cáo khác nhau, tuỳ thuộc vào nền tảng. Bạn sẽ cần sử dụng đơn vị quảng cáo dành cho iOS để tạo các yêu cầu quảng cáo trên iOS và sử dụng đơn vị quảng cáo dành cho Android để tạo yêu cầu quảng cáo trên Android.

(Không bắt buộc) Vị trí quảng cáo tuỳ chỉnh

Để kiểm soát tốt hơn vị trí đặt BannerView trên màn hình so với khả năng kiểm soát do AdPosition cung cấp, hãy sử dụng hàm khởi tạo BannerView có toạ độ x và y làm tham số:

// Create a 320x50 banner ad at coordinate (0,50) on screen.
BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, 0, 50);

Góc trên cùng bên trái của BannerView sẽ được đặt ở giá trị x và y được chuyển đến hàm khởi tạo, trong đó điểm gốc nằm ở trên cùng bên trái màn hình.

(Không bắt buộc) Kích thước quảng cáo tuỳ chỉnh

Ngoài việc sử dụng hằng số AdSize, bạn cũng có thể chỉ định kích thước tùy chỉnh cho quảng cáo của mình:

AdSize adSize = new AdSize(250, 250);
BannerView bannerView = new BannerView(adUnitId, adSize, AdPosition.Bottom);

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

Mã mẫu ở trên chứa một mã đơn vị quảng cáo và bạn có thể yêu cầu quảng cáo bằng mã đó. Mã này được định cấu hình đặc biệt để trả về quảng cáo thử nghiệm thay vì quảng cáo chính thức cho mọi yêu cầu, giúp quảng cáo an toàn khi sử dụng.

Tuy nhiên, sau khi đăng ký một ứng dụng trong giao diện người dùng AdMob và tạo các mã đơn vị quảng cáo riêng để sử dụng trong ứng dụng, bạn sẽ cần định cấu hình cho thiết bị của mình làm thiết bị thử nghiệm một cách rõ ràng trong quá trình phát triển. Đây là khía cạnh cực kỳ quan trọng. Việc thử nghiệm bằng quảng cáo thực tế (ngay cả khi bạn không bao giờ nhấn vào quảng cáo đó) là hành vi vi phạm chính sách của AdMob và có thể khiến tài khoản của bạn bị tạm ngưng. Hãy đọc bài viết Quảng cáo thử nghiệm để biết thông tin về cách đảm bảo bạn luôn nhận được quảng cáo thử nghiệm khi phát triển.

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

Sau khi BannerView được tạo, bước tiếp theo là tải một quảng cáo. Việc này được thực hiện bằng phương thức loadAd() trong lớp BannerView. Phương thức này sử dụng một đối số AdRequest lưu giữ thông tin thời gian chạy (chẳng hạn như thông tin nhắm mục tiêu) về một yêu cầu quảng cáo.

Dưới đây là ví dụ cho thấy cách tải một quảng cáo:

...
    private void RequestBanner()
    {
        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        // Create a 320x50 banner at the top of the screen.
        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();

        // Load the banner with the request.
        this.bannerView.LoadAd(request);
    }
...

Vậy là xong! Ứng dụng của bạn hiện đã sẵn sàng hiển thị quảng cáo biểu ngữ từ AdMob.

Sự kiện quảng cáo

Để tuỳ chỉnh thêm hoạt động của quảng cáo, bạn có thể dựa vào một số sự kiện trong vòng đời của quảng cáo: tải, mở, đóng và các sự kiện khác. Hãy theo dõi những sự kiện này bằng cách đăng ký một thực thể đại diện cho EventHandler thích hợp, như thể hiện dưới đây.

...
using System;
using UnityEngine;
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private BannerView bannerView;

    public void Start()
    {
        this.RequestBanner();
    }

    private void RequestBanner()
    {

        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);

        // Called when an ad request has successfully loaded.
        this.bannerView.OnAdLoaded += this.HandleOnAdLoaded;
        // Called when an ad request failed to load.
        this.bannerView.OnAdFailedToLoad += this.HandleOnAdFailedToLoad;
        // Called when an ad is clicked.
        this.bannerView.OnAdOpening += this.HandleOnAdOpened;
        // Called when the user returned from the app after an ad click.
        this.bannerView.OnAdClosed += this.HandleOnAdClosed;

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();

        // Load the banner with the request.
        this.bannerView.LoadAd(request);
    }

    public void HandleOnAdLoaded(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdLoaded event received");
    }

    public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
    {
        MonoBehaviour.print("HandleFailedToReceiveAd event received with message: "
                            + args.LoadAdError.GetMessage());
    }

    public void HandleOnAdOpened(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdOpened event received");
    }

    public void HandleOnAdClosed(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdClosed event received");
    }
}

Sự kiện OnAdFailedToLoad chứa các đối số sự kiện đặc biệt. Sự kiện này chuyển một bản sao của HandleAdFailedToLoadEventArgsMessage mô tả lỗi:

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
  MonoBehaviour.print("Banner failed to load: " + args.Message);
  // Handle the ad failed to load event.
};
Sự kiện quảng cáoMô tả
OnAdLoaded Sự kiện OnAdLoaded được thực thi khi quảng cáo tải xong.
OnAdFailedToLoad Sự kiện OnAdFailedToLoad được gọi khi quảng cáo không tải được. Tham số Message mô tả loại lỗi đã xảy ra.
OnAdOpening Phương thức này được gọi khi người dùng nhấn vào một quảng cáo. Nếu bạn đang sử dụng một gói phân tích để theo dõi các lượt nhấp, thì đây là nơi phù hợp để ghi lại lượt nhấp.
OnAdClosed Sau khi người dùng truy cập vào URL đích của một quảng cáo và quay trở lại ứng dụng, phương thức này sẽ được gọi. Ứng dụng của bạn có thể sử dụng phương thức 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 để giúp ứng dụng sẵn sàng tương tác.

Bảng dưới đây liệt kê các kích thước biểu ngữ chuẩn.

Kích thước theo dp (WxH) Mô tả Phạm vi áp dụng Hằng số AdSize
320x50 Biểu ngữ chuẩn Điện thoại và máy tính bảng BANNER
320x100 Biểu ngữ lớn Điện thoại và máy tính bảng LARGE_BANNER
300x250 Hình chữ nhật trung bình IAB Điện thoại và máy tính bảng MEDIUM_RECTANGLE
468x60 Biểu ngữ có kích thước đầy đủ của IAB Máy tính bảng FULL_BANNER
728x90 Bảng xếp hạng IAB Máy tính bảng LEADERBOARD
Chiều rộng đã cung cấp x Chiều cao thích ứng Biểu ngữ thích ứng Điện thoại và máy tính bảng Không áp dụng
Chiều rộng màn hình x 32|50|90 Biểu ngữ thông minh Điện thoại và máy tính bảng SMART_BANNER
Tìm hiểu thêm về Biểu ngữ thích ứng, định dạng dự kiến sẽ thay thế Biểu ngữ thông minh.

Xóa quảng cáo biểu ngữ

Khi bạn đã tạo xong BannerView, hãy nhớ gọi phương thức Destroy() trước khi thả tham chiếu đến phương thức đó:

bannerView.Destroy();

Hành động này thông báo cho các trình bổ trợ rằng đối tượng này không còn được sử dụng nữa và dung lượng bộ nhớ mà đối tượng này sử dụng có thể bị thu hồi. Việc không thể gọi phương thức này sẽ dẫn đến việc rò rỉ bộ nhớ.

Tài nguyên khác

Mẫu

Câu chuyện thành công