💰

Unity Monetization (旧UnityAds) で広告を簡単実装する

2021/04/26に公開

はじめに

今はUnityAdsではなくてUnity Monetizationという名前です。最低限の手順とスクリプトの例を紹介します。

実装最低限の手順

まずUnity dashbordに登録。

1.Unity開いて、横のServiceWindowからADSのMonetize your gamesをオンに。

はいらないのでAdvances-enable built in extention のチェックを外す。

2.PackageManager>Advertisementからインポート

3.アプリ起動時にInitialize()関数を使用すると広告の準備ができて広告が表示できるようになる。

private string gameIDGoogleplay = "自分のID", gameIDAppstore = "自分のID";
void Start()
{
Advertisement.Initialize(gameIDGoogleplay, testMode: true);
}

この時gameIDはDashbord>ProjectSettingで確認可能。iosandroidのverがある事に注意。アプリ申請時などにもtestmode falseでOKで、有効にしたい場合はDashbord>ProjectSetting>TestMode>override client test modeを有効にしてFocetestmodeONにすれば強制的にtrueに。

4.Initialize()関数を使用してすぐにIsReadyがTrueになる。そうすると使えるので、Show()関数を使って広告を表示。

//動画広告の表示("video"がPlacement ID)

Advertisement.Show("video");

準備できているか確認できるコード

//動画広告のPlacementID
private static readonly string VIDEO_PLACEMENT_ID = "video";
/// <summary>
/// 動画広告の表示
/// </summary>
public void ShowMovieAd() {
//広告全体の準備が出来ているかチェック
if (!Advertisement.IsReady()) {
Debug.LogWarning("動画広告の準備が出来ていません");
return;
}
//表示したい広告の準備が出来ているかチェック
var state = Advertisement.GetPlacementState(VIDEO_PLACEMENT_ID);
if (state != PlacementState.Ready) {
Debug.LogWarning($"{VIDEO_PLACEMENT_ID}の準備が出来ていません。現在の状態 : {state}");
return;;
}
//広告表示
Advertisement.Show(VIDEO_PLACEMENT_ID);
}

引用元

プレイ時間60秒毎に動画広告が表示されるスクリプト

広告動画が終了時にOnUnityAdsDidFinishが働くのでそこに終わった後などの処理を書く。

エラーの解決

Packagemanagerからadvertisementをimportする時、最新のversionにした。

また、IUnityAdsListenerを追加する場合は関数がpublic void OnUnityAdsDidFinish(string placementId, ShowResult showResult)とか以下のように関数がないとエラーになるのでちゃんと上のgistコードのように関数を揃える。

広告の収益発生タイミングについて

https://unityads.jp/sponsor.html

CPI / CPV 両対応

すべての主要なアトリビューション・サービスやトラッキング・ツールに対応し新規インストール時のみ支払いが発生するCPI広告、動画視聴完了時に支払いが発生するCPV広告をお選びいただけます。Unity Adsでは、CPI広告を強く推奨しております。

のように二つのパターンがあるみたい。

記事は以上です。お疲れ様でした😌

Discussion