【Unity】広告の導入方法
導入方法
UnityのServices
の部分を有効にしたら、自動で、「Package Manager」の「Advertisement」が有効になる。
アセットストアからのインポートは行わない。
Servicesの部分を設定する。
Advanced
のチェックボックスは外す!!
パッケージのアップデート
Package Managerから、Advertisement
を開いて、アップデートする。
初期化
一番初めのシーンで初期化を行います。
そのために、ゲームオブジェクトをはじめのシーンに用意して、そこで、下記のスクリプトを読み込みます。
広告初期化用スクリプト
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Advertisements;
public class AdsControl : MonoBehaviour, IUnityAdsListener
{
/// <summary>
/// 広告再生スキップフラグ
/// </summary>
public static bool adsSkip = false;
/// <summary>
/// 広告再生終了フラグ
/// </summary>
public static bool adsEnd = false;
private void Awake()
{
//DontDestroyOnLoad(this);
}
// Start is called before the first frame update
void Start()
{
// ゲームIDをAndroidとiOSで分ける
#if UNITY_ANDROID
string gameID = "XXXXXXX";
#else
string gameID = "XXXXXXX";
#endif
//広告の初期化
Advertisement.Initialize(gameID, testMode: true);
//広告関連のイベントが発生するように登録
Advertisement.AddListener(this);
Invoke("ShowMovieAd", 10f);
}
public static bool ShowMovieAd(string adsPlacement)
{
//広告全体の準備が出来ているかチェック
if (!Advertisement.IsReady())
{
Debug.LogWarning("動画広告の準備が出来ていません");
return false;
}
//表示したい広告の準備が出来ているかチェック
var state = Advertisement.GetPlacementState(adsPlacement);
if (state != PlacementState.Ready)
{
Debug.LogWarning($"{adsPlacement}の準備が出来ていません。現在の状態 : {state}");
return false;
}
// フラグ初期化
adsSkip = false;
adsEnd = false;
//広告表示
Advertisement.Show(adsPlacement);
return true;
}
//=================================================================================
//イベント
//=================================================================================
//広告の準備完了
public void OnUnityAdsReady(string placementId)
{
Debug.Log($"{placementId}の準備が完了");
}
//広告でエラーが発生
public void OnUnityAdsDidError(string message)
{
Debug.Log($"広告でエラー発生 : {message}");
adsEnd = true;
}
//広告開始
public void OnUnityAdsDidStart(string placementId)
{
Debug.Log($"{placementId}の広告が開始");
}
//広告の表示終了
public void OnUnityAdsDidFinish(string placementId, ShowResult showResult)
{
Debug.Log($"{placementId}の表示終了");
adsEnd = true;
switch (showResult)
{
//最後まで視聴完了(リワード広告ならここでリワード付与する感じ)
case ShowResult.Finished:
Debug.Log("広告の表示成功");
break;
//スキップされた
case ShowResult.Skipped:
Debug.Log("広告スキップ");
adsSkip = true;
break;
//表示自体が失敗した
case ShowResult.Failed:
Debug.LogWarning("広告の表示失敗");
break;
}
}
}
他のシーンからの呼び出し
別のシーンでAdsの初期化を実行していて・・・
その後、オブジェクトは破棄されている場合でも、スクリプトは実行されているので、Advertisementクラスを呼び出すことができる。
参考URL
Author And Source
この問題について(【Unity】広告の導入方法), 我々は、より多くの情報をここで見つけました https://qiita.com/s_Pure/items/b4c4a202e3778e236f99著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .