【Unity】admobのリワード広告をつけてみた

unity

Unityにadmobのリワード広告を実装する方法についてメモ。

まずは以下のGoogleMobileAdsをUnityにインストールします。

GoogleMobileAds-v5.4.0.unitypackage

(ちなみに、今の最新バージョンはv6.0.1ですがXcodeのビルドエラーが発生したので、v5.4の方が良いかもです。)

以下のコードを実装します。

using UnityEngine;
using GoogleMobileAds.Api;
public class AdMob : MonoBehaviour
{
    private string adUnitId;
    private RewardedAd rewardedAd;
    // Use this for initialization
    void Start()
    {
        //アプリ起動時に一度必ず実行(他のスクリプトで実行していたら不要)
        MobileAds.Initialize(initStatus => { });
        //広告を表示
        RequestReward();
    }
    private void RequestReward()
    {
#if UNITY_ANDROID
        //adUnitId = "広告ユニットIDをコピペ(Android)";  //本番
        adUnitId = "ca-app-pub-3940256099942544/5224354917";  //テスト
#elif UNITY_IOS
        //adUnitId = "広告ユニットIDをコピペ(iOS)";  //本番
        adUnitId = "ca-app-pub-3940256099942544/1712485313";  //テスト
#endif
        this.rewardedAd = new RewardedAd(adUnitId);
        //動画の視聴が完了したら「HandleUserEarnedReward」を呼ぶ
        this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
        AdRequest request = new AdRequest.Builder().Build();
        this.rewardedAd.LoadAd(request);
    }
    //動画の視聴が完了したら実行される(途中で閉じられた場合は呼ばれない)
    public void HandleUserEarnedReward(object sender, Reward args)
    {
         //報酬獲得!!
    }

    //これを呼べば動画が流れる(例えばボタン押下時など)
    public void ShowReawrd()
    {
        if (this.rewardedAd.IsLoaded())
        {
            this.rewardedAd.Show();
        }
    }
}

admobのページからApp IDを取得してUnityの設定ファイルで設定します。

広告ユニットIDはテスト用を指定しています。

UnityでiOSビルド→Xcodeでビルドして実機確認します。

うまく行けば以下のテスト用の広告が表示されます。

AppStoreにアップする際には広告ユニット IDは本番 IDに変えましょう。

ちなみに、admobページでストアリンクを通しておかないと本番の広告が表示されないらしいです。

まずは広告無しでアプリをAppStoreに公開して、ストアリンクを通したら広告を入れるのが良いのではないでしょうかね。

おわり。

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog