Quảng cáo xen kẽ có tặng thưởng

Quảng cáo xen kẽ có tặng thưởng là một loại định dạng quảng cáo có tặng thưởng cho phép bạn thưởng cho những quảng cáo tự động xuất hiện tại các điểm chuyển tiếp tự nhiên của ứng dụng. Không giống như quảng cáo có tặng thưởng, người dùng không bắt buộc phải chọn xem một quảng cáo xen kẽ có tặng thưởng.

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

  • Trình bổ trợ Unity phiên bản 5.4.0 trở lên.

Cách thức triển khai

Các bước chính để tích hợp quảng cáo xen kẽ có tặng thưởng là:

  1. Tải một quảng cáo.
  2. Hiển thị quảng cáo đó và xử lý sự kiện được tặng thưởng.
  3. Dùng các lệnh gọi lại sự kiện quảng cáo

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

Bạn có thể tải một quảng cáo bằng cách sử dụng phương thức LoadAd() tĩnh trên lớp RewardedInterstitialAd. Phương thức tải này yêu cầu một mã đơn vị quảng cáo, một đối tượng AdRequest và một trình xử lý hoàn thành để gọi khi tải quảng cáo thành công hoặc không thành công. Đối tượng RewardedInterstitialAd đã tải được cung cấp dưới dạng một thông số trong trình xử lý hoàn thành. Dưới đây là ví dụ về cách tải một RewardedInterstitialAd.

...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private RewardedInterstitialAd rewardedInterstitialAd;
    ...

    public void Start()
    {
        ...

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();
        // Load the rewarded ad with the request.
        RewardedInterstitialAd.LoadAd(adUnitId, request, adLoadCallback);
    }

    private void adLoadCallback(RewardedInterstitialAd ad, string error)
    {
        if (error == null)
        {
            rewardedInterstitialAd = ad;
        }
    }
}

Hiển thị quảng cáo đó và xử lý sự kiện được tặng thưởng

Khi hiển thị quảng cáo, bạn phải cung cấp một lệnh gọi lại để xử lý phần thưởng cho người dùng.

Bạn nên sử dụng mã sau đây để hiển thị một quảng cáo xen kẽ có tặng thưởng.

public void ShowRewardedInterstitialAd()
{
    if (rewardedInterstitialAd != null)
    {
        rewardedInterstitialAd.Show(userEarnedRewardCallback);
    }
}

private void userEarnedRewardCallback(Reward reward)
{
    // TODO: Reward the user.
}

Dùng các lệnh gọi lại sự kiện quảng cáo

Để tùy chỉnh thêm hành vi của quảng cáo, bạn có thể dựa trên một số sự kiện. Hãy theo dõi những sự kiện này bằng cách đăng ký ủy quyền cho trình xử lý sự kiện thích hợp.

...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private RewardedInterstitialAd rewardedInterstitialAd;
    ...

    public void Start()
    {
        ...

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();
        // Load the rewarded ad with the request.
        RewardedInterstitialAd.LoadAd(adUnitId, request, adLoadCallback);
    }

    private void adLoadCallback(RewardedInterstitialAd ad, string error)
    {
        if (error == null)
        {
            rewardedInterstitialAd = ad;

            rewardedInterstitialAd.OnAdFailedToPresentFullScreenContent += HandleAdFailedToPresent;
            rewardedInterstitialAd.OnAdDidPresentFullScreenContent += HandleAdDidPresent;
            rewardedInterstitialAd.OnAdDidDismissFullScreenContent += HandleAdDidDismiss;
            rewardedInterstitialAd.OnPaidEvent += HandlePaidEvent;
        }
    }

    private void HandleAdFailedToPresent(object sender, AdErrorEventArgs args)
    {
        MonoBehavior.print("Rewarded interstitial ad has failed to present.");
    }

    private void HandleAdDidPresent(object sender, EventArgs args)
    {
        MonoBehavior.print("Rewarded interstitial ad has presented.");
    }

    private void HandleAdDidDismiss(object sender, EventArgs args)
    {
        MonoBehavior.print("Rewarded interstitial ad has dismissed presentation.");
    }

    private void HandlePaidEvent(object sender, AdValueEventArgs args)
    {
        MonoBehaviour.print(
            "Rewarded interstitial ad has received a paid event.");
    }
}