Vị trí đặt quảng cáo

Hướng dẫn này cho bạn biết cách sử dụng quảng cáo của trình bổ trợ Google Mobile Ads cho Unity Vị trí là tính năng để tạo và hiển thị quảng cáo cho ứng dụng của bạn.

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

Chạy SDK Quảng cáo của Google trên thiết bị di động

Trước khi tải quảng cáo, hãy khởi chạy SDK quảng cáo trên thiết bị di động bằng cách gọi MobileAds.Initialize() với lệnh gọi lại Action<InitializationStatus>. Chiến dịch này chỉ cần thực hiện một lần, tốt nhất là khi bắt đầu chạy ứng dụng.

using GoogleMobileAds.Api;
using System.Collections.Generic;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    ...
    public void Start()
    {
        // Initialize the Mobile Ads SDK.
        MobileAds.Initialize((initStatus) =>
        {
            // SDK initialization is complete
        });
        ...
    }
}

Tạo các vị trí đặt quảng cáo

Bước đầu tiên để hiển thị biểu ngữ với Quảng cáo trên điện thoại di động của Google là tạo và định cấu hình vị trí đặt quảng cáo. Bạn có thể chọn vị trí đặt quảng cáo là Biểu ngữ, Định dạng quảng cáo xen kẽ hoặc quảng cáo có tặng thưởng trong Thành phần > Quảng cáo trên điện thoại di động của Google > Quảng cáo Vị trí trong Trình chỉnh sửa Unity. Sau đó, 3 vị trí đặt quảng cáo thử nghiệm là thiết lập và sẵn sàng sử dụng.

Để thêm một vị trí đặt quảng cáo mới, hãy nhấp vào nút Thêm vị trí mới ở cuối danh sách. Bạn có thể định cấu hình quy trình đặt quảng cáo từ chế độ xem Công cụ kiểm tra.

Cấu hình vị trí đặt quảng cáo

Mỗi vị trí đều có các thuộc tính sau:

Tên Vị trí
Tên của vị trí. Được dùng để xác định các vị trí khi thiết lập quảng cáo trong một cảnh.
Định dạng quảng cáo
Quảng cáo biểu ngữ, Quảng cáo có tặng thưởng, Quảng cáo xen kẽ. Loại quảng cáo.
Mã đơn vị quảng cáo
Cung cấp mã đơn vị quảng cáo biểu ngữ cho Android và iOS. Bạn cần cung cấp tại ít nhất một mã đơn vị quảng cáo.
Liên tục qua các cảnh
Khi được đánh dấu, biểu ngữ sẽ vẫn hiển thị trên màn hình bất kể cảnh các thay đổi (hành vi tương tự như DontDestroyOnLoad).
Đã bật tính năng tự động tải
Khi được chọn, quảng cáo sẽ tự động được tải khi cảnh liên kết với vị trí đặt quảng cáo sẽ được tải.

Ảnh chụp màn hình sau đây cho thấy ví dụ về một quy trình đặt quảng cáo có tên Biểu ngữ tuyệt vời của tôi.

Thêm Ad gì vào cảnh

Bạn có thể thêm Ad gì cho định dạng Biểu ngữ, quảng cáo xen kẽ hoặc quảng cáo Có tặng thưởng vào cảnh sử dụng Dalvik > Quảng cáo trên thiết bị di động của Google trong Trình chỉnh sửa Unity. Chọn để thêm một vị trí vào cảnh đang hoạt động.

Sau khi thêm Ad gì vào cảnh, bạn sẽ thấy trưng biểu thị quảng cáo trong chế độ xem Phân cấp của Trình chỉnh sửa Unity.

Bạn có thể thay đổi tên của vị trí bằng cách thay đổi tên của Dalvik . Ảnh chụp màn hình sau đây cho thấy một ví dụ về Ad gì có tên là Quảng cáo biểu ngữ.

Chế độ cài đặt cho Ad gì

Bạn có thể định cấu hình AdNội dung cho cảnh của mình từ Trình kiểm tra chế độ xem trong phần cài đặt cho thành phần Đối tượng trò chơi quảng cáo (Tập lệnh).

Vị trí đặt Quảng cáo

Chọn vị trí đặt quảng cáo từ danh sách thả xuống gồm các vị trí đã định cấu hình. Chiến lược phát hành đĩa đơn danh sách sẽ chỉ chứa đơn vị quảng cáo cho đúng định dạng. Ví dụ: đối với quảng cáo biểu ngữ thì trình đơn thả xuống sẽ chỉ hiển thị các vị trí đặt quảng cáo biểu ngữ đã được định cấu hình.

Cấu hình BannerAdGameObject (chỉ biểu ngữ)

  • Kích thước – Chọn kích thước của biểu ngữ mà bạn muốn sử dụng.
    • Biểu ngữ thích ứng cố định cung cấp một số lựa chọn khác:
      • Hướng – Chọn hướng thiết bị được dùng để tính toán quảng cáo chiều cao.
      • Sử dụng chiều rộng toàn màn hình – Khi được đánh dấu, biểu ngữ sẽ chiếm chiều rộng toàn màn hình. Bạn có thể điều chỉnh % chiều rộng của màn hình (50~99%) nếu bỏ đánh dấu tuỳ chọn Sử dụng chiều rộng toàn màn hình.
    • Tuỳ chỉnh cho phép bạn cung cấp chiều rộng và chiều cao của biểu ngữ.
  • Vị trí quảng cáo – Chọn vị trí mà bạn sẽ đặt biểu ngữ.

Lệnh gọi lại

Bạn có thể triển khai các hàm tương ứng với lệnh gọi lại quảng cáo. Ví dụ: nếu bạn muốn xử lý khi quảng cáo biểu ngữ không tải được:

  1. Tạo một hàm tương thích với lệnh gọi lại quảng cáo.

    public void OnBannerAdFailedToLoad(string reason) {
        Debug.Log("Banner ad failed to load: " + reason);
    }
    
  2. Đính kèm tập lệnh có chứa hàm trên vào mọi Dalvik trong cảnh.

  3. Nhấp vào nút +, sau đó kéo và loại bỏ Dalvik mà bạn đã đính kèm tập lệnh đến.

  4. Chọn hàm mà bạn muốn liên kết đến lệnh gọi lại quảng cáo. Đối với lệnh gọi lại quảng cáo có tham số hóa, chọn hàm để chấp nhận để bạn có thể lấy giá trị thông số từ SDK.

Sử dụng Ad GameActivity từ tập lệnh

Nhận bản sao AdObject từ tập lệnh

Mọi đối tượng AdGameObject đều có phương thức LoadAd() tiện lợi. Thao tác này sẽ tải một quảng cáo có AdRequest đơn giản, không có mục tiêu. Để áp dụng tiêu chí nhắm mục tiêu, bạn nên sử dụng LoadAd(AdRequest adRequest) bằng cách sử dụng yêu cầu quảng cáo đã thiết lập của riêng bạn.

Để có được bản sao của AdDalvik, hãy sử dụng phương thức sau cho từng định dạng:

MobileAds.Instance.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

Đối tượng BannerAdGameObject được trả về cũng có các phương thức tiện lợi Hide()Show().

Quảng cáo xen kẽ

MobileAds.Instance.GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

Đối tượng InterstitialAdGameObject được trả về có một phương thức tiện lợi ShowIfLoaded()

Được thưởng

MobileAds.Instance.GetAd<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

Đối tượng RewardedAdGameObject được trả về có một phương thức tiện lợi ShowIfLoaded()

Ví dụ: bạn có thể nhận một thực thể của BannerAdGameObject và tải thực thể đó dưới dạng sau:

using UnityEngine;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class BannerTestScript : MonoBehaviour
{
    BannerAdGameObject bannerAd;

    void Start()
    {
        bannerAd = MobileAds.Instance
            .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

        bannerAd.LoadAd();
        ...
    }
    ...
}

Nếu có một BannerAdGameObject tên là BannerAd, bạn có thể nhận được một bản sao sẽ như sau:

MobileAds.Instance.GetAd<BannerAdGameObject>("BannerAd");

Truy cập đối tượng quảng cáo cơ bản trong AdCompanyName

Những đoạn mã này minh hoạ cách truy cập vào đối tượng quảng cáo cơ bản được liên kết với AdCompanyName.

BannerAdGameObject bannerAd = MobileAds.Instance
    .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

// Access BannerView object
BannerView bannerView = bannerAd.BannerView;

Quảng cáo xen kẽ

InterstitialAdGameObject interstitialAdGameObject = MobileAds.Instance
    .GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

// Access InterstitialAd object
InterstitialAd interstitialAd = interstitialAdGameObject.InterstitialAd;

Được thưởng

RewardedAdGameObject rewardedAdGameObject = MobileAds.Instance
    .Get<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

// Access RewardedAd object
RewardedAd rewardedAd = rewardedAdGameObject.RewardedAd;

Ví dụ

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

Dưới đây là ví dụ về cách định cấu hình trò chơi để tải và hiển thị quảng cáo xen kẽ quảng cáo sử dụng Ad gì.

Thêm InterstitialAdGameObject vào cảnh và bật tính năng Tự động tải Bật tính năng để quảng cáo được tải tự động khi cảnh tải.

Tiếp theo, hãy đảm bảo rằng bạn đã khởi chạy SDK theo cách sau. Lưu ý rằng chế độ cài đặt Tự động Tính năng tải trong Ad test sẽ không hoạt động nếu bạn quên khởi chạy SDK.

Sau đó, hiển thị quảng cáo xen kẽ giữa quá trình chuyển đổi màn hình bằng cách gọi hàm Hàm InterstitialAdGameObject.ShowIfLoaded(). Mã sau đây hiển thị một ví dụ về cách hiển thị một quảng cáo xen kẽ giữa quá trình chuyển cảnh.

using UnityEngine;
using UnityEngine.SceneManagement;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAd<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }

    public void OnClickShowGameSceneButton()
    {
        // Display an interstitial ad
        interstitialAd.ShowIfLoaded();

        // Load a scene named "GameScene"
        SceneManager.LoadScene("GameScene");
    }
}

Vì bạn đã bật tính năng Tự động tải trong vị trí đặt quảng cáo, nên bạn không cần yêu cầu quảng cáo một cách rõ ràng. Khi cảnh thay đổi, quảng cáo xen kẽ sẽ sẽ xuất hiện nếu đã sẵn sàng.

Nếu bạn muốn yêu cầu quảng cáo theo cách thủ công, hãy tắt tính năng Tự động tải trong công cụ kiểm tra vị trí đặt quảng cáo và gọi InterstitialAdGameObject.LoadAd() thay thế. Đoạn mã sau đây cho biết cách yêu cầu một quảng cáo.

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAdGameObject<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("MobileAds initialized");

            // Load an interstitial ad after the SDK initialization is complete
            interstitialAd.LoadAd();
        });
    }
    ...
}

Xử lý "xem quảng cáo có tặng thưởng" trạng thái nút

Sau đây là ví dụ về cách bật tính năng "xem quảng cáo có tặng thưởng" bằng cách sử dụng quảng cáo vị trí đặt quảng cáo.

Thêm Button Dalvik (có tên là Nút trong ví dụ này) vào cảnh sẽ được dùng để hiển thị quảng cáo có tặng thưởng. Chúng tôi sẽ chỉ làm cho nút này hoạt động khi có sẵn quảng cáo có tặng thưởng.

Trong phương thức Start(), hãy thay đổi trạng thái hoạt động của Nút thành false. Chiến dịch này sẽ làm cho nút biến mất khỏi cảnh.

public class MainScene : MonoBehaviour
{
    ...
    void Start()
    {
        GameObject.Find("Button").SetActive(false);
        ...
    }
}

Thêm RewardedAdGameObject vào cảnh và chọn Bản minh hoạ có tặng thưởng của AdMob Quảng cáo Vị trí đặt quảng cáo trong trình đơn thả xuống.

Trong mục Lệnh gọi lại trong trình kiểm tra RewardedAdGameObject, hãy nhấp vào nút + từ On Ad Loaded() để cho phép gọi hàm khi một quảng cáo có tặng thưởng được tải.

Kéo và thả Button ImageView mà bạn đã thêm vào trong bước trước đó vào trường Không có (Đối tượng). Chọn một hàm cần gọi trong trình đơn thả xuống. Nhấp vào No Function > (Không có hàm) PWA > SetActive(bool), sau đó nhấp vào hộp đánh dấu để nó sẽ gửi true dưới dạng một tham số (gọi SetActive(true)).

Trong mục Lệnh gọi lại này, bạn cũng có thể liên kết một sự kiện sẽ được gọi khi sự kiện RewardedAd.OnUserEarnedReward được kích hoạt. Để biết thêm thông tin, hãy tham khảo phần này.

Tiếp theo, hãy tạo nút hiện quảng cáo có tặng thưởng khi người dùng nhấp vào. Từ nút Bật Mục Lệnh gọi lại Click() trong trình kiểm tra nút, hãy nhấp vào nút + và kéo và thả IntelliJ vị trí đặt quảng cáo có tặng thưởng (có tên là Quảng cáo có tặng thưởng trong này ví dụ) sang trường Không có (Đối tượng).

Sau đó, hãy đính kèm hàm RewardedAdGameObject.ShowIfLoaded() vào Khi gọi lại Click().

Cuối cùng, đừng quên khởi chạy SDK. Đoạn mã sau đây là mã hoàn chỉnh cho cảnh được sử dụng trong ví dụ này:

using UnityEngine;

using GoogleMobileAds.Api;

public class MainScene : MonoBehaviour
{
    void Start()
    {
        GameObject.Find("Button").SetActive(false);

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }
}

Sau khi chạy dự án, bạn sẽ thấy nút hiển thị trên cảnh khi quảng cáo có tặng thưởng đã được tải và sẵn sàng hiển thị.

Định cấu hình lệnh gọi lại quảng cáo có tặng thưởng cho OpenRTBy

Sau đây là ví dụ về cách định cấu hình lệnh gọi lại có tặng thưởng cho một quảng cáo có tặng thưởng để bạn có thể tặng thưởng cho người dùng khi hàm callback là có tên.

Tạo tập lệnh mới và xác định một hàm chấp nhận Reward làm thông số như sau.

using UnityEngine;
using GoogleMobileAds.Api;

class RewardedTestScript : MonoBehaviour {
    ...
    public void OnUserEarnedReward(Reward reward) {
        Debug.Log("OnUserEarnedReward: reward=" +
            reward.Type + ", amount=" + reward.Amount);
    }
    ...
}

Đính kèm tập lệnh RewardedTestScript vào mọi Object (ngoại trừ Quảng cáo) Vị trí Dalvik) trong cảnh. Trong ví dụ này, thẻ được gắn với Máy ảnh IntelliJ.

Thêm RewardedAdGameObject vào cảnh. Sau đó, trong mục Lệnh gọi lại trong trình kiểm tra RewardedAdGameObject, hãy nhấp vào nút + trên mục Trên người dùng Phần thưởng kiếm được (Phần thưởng) để bật chức năng được gọi khi phần thưởng được được cấp cho người dùng.

Kéo và thả Dalvik cho máy ảnh chính mà bạn đã thêm vào trước đó bước đến trường Không có (Đối tượng). Chọn một hàm sẽ được gọi từ trình đơn thả xuống. Nhấp vào No Function > (Không có hàm) Có tặng thưởngTestScript > OnUserearnedReward.

Sau khi chạy dự án và xem quảng cáo có tặng thưởng, RewardedTestScript.OnUserEarnedReward() sẽ được gọi khi bạn được được thưởng khi tương tác với quảng cáo.