using UnityEngine;
using GoogleMobileAds.Api;
using System;
public class GoogleInterstitialAds : MonoBehaviour
{
// これらの広告ユニットは、常にテスト広告を配信するように設定されています。
#if UNITY_EDITOR
private string _adUnitId = "ca-app-pub-3940256099942544/4411468910";//<-テストId[変えないように]
#elif UNITY_IOS
private string _adUnitId = "ca-app-pub-3940256099942544/4411468910";// !!間違ってテストで本番Id実行しないように!! -> 本番Id"" //
#endif
private InterstitialAd interstitialAd;
///
/// Loads the interstitial ad.
///
public void Start()
{
// Google Mobile Ads SDK を初期化します。バナーかインタースティシャルどちらかで初期化すればよい。
MobileAds.Initialize((InitializationStatus initStatus) =>
{
// このコールバックは、MobileAds SDK が初期化されると呼び出されます。
});
LoadInterstitialAd();
Debug.Log("広告をロード");
}
public void LoadInterstitialAd()
{
// 既にロードされている広告があれば破棄します。
if (interstitialAd != null)
{
interstitialAd.Destroy();
interstitialAd = null;
}
Debug.Log("インタースティシャル広告を読み込んでいます。");
// 広告を読み込むために使用するリクエストを作成します。
var adRequest = new AdRequest();
adRequest.Keywords.Add("unity-admob-sample");
// 広告を読み込むリクエストを送信します。
InterstitialAd.Load(_adUnitId, adRequest,
(InterstitialAd ad, LoadAdError error) =>
{
// エラーが null でない場合、ロード リクエストは失敗しました。
if (error != null || ad == null)
{
Debug.LogError("インタースティシャル広告が広告を読み込めませんでした " +
"with error : " + error);
return;
}
Debug.Log("レスポンスを伴うインタースティシャル広告が読み込まれる : "
+ ad.GetResponseInfo());
interstitialAd = ad;
RegisterEventHandlers(interstitialAd);
Debug.Log("イベントハンドラーの登録");
RegisterReloadHandler(interstitialAd);
Debug.Log("ロードハンドラーの登録");
});
}
///
/// Shows the interstitial ad.
///
public void ShowAd() // この関数を呼び出してやればよい。
{
if (interstitialAd != null && interstitialAd.CanShowAd())
{
Debug.Log("インタースティシャル広告を表示しています。");
interstitialAd.Show();
}
else
{
Debug.LogError("インタースティシャル広告はまだ準備ができていません。");
}
}
//イベントハンドラーの登録
private void RegisterEventHandlers(InterstitialAd ad)
{
// 広告が収益を上げたと推定される場合に発生します。
ad.OnAdPaid += (AdValue adValue) =>
{
Debug.Log(String.Format("インタースティシャル広告には {0} {1} が支払われました。",
adValue.Value,
adValue.CurrencyCode));
};
// 広告のインプレッションが記録されるときに発生します。
ad.OnAdImpressionRecorded += () =>
{
Debug.Log("インタースティシャル広告がインプレッションを記録しました。");
};
// 広告のクリックが記録されたときに発生します。
ad.OnAdClicked += () =>
{
Debug.Log("インタースティシャル広告がクリックされました。");
};
// 広告が全画面コンテンツを開いたときに発生します。
ad.OnAdFullScreenContentOpened += () =>
{
Debug.Log("インタースティシャル広告の全画面コンテンツが開きました。");
};
// 広告が全画面コンテンツを閉じたときに発生します。
ad.OnAdFullScreenContentClosed += () =>
{
Debug.Log("インタースティシャル広告の全画面コンテンツが閉じられました。");
};
// 広告が全画面コンテンツを開けなかった場合に発生します。
ad.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("インタースティシャル広告が全画面コンテンツを開けませんでした " +
"with error : " + error);
};
}
private void RegisterReloadHandler(InterstitialAd ad)
{
// 広告が全画面コンテンツを閉じたときに発生します。
ad.OnAdFullScreenContentClosed += () =>
{
Debug.Log("インタースティシャル広告の全画面コンテンツが閉じられました。");
// できるだけ早く別の広告を表示できるよう、広告をリロードしてください。
LoadInterstitialAd();
};
// 広告が全画面コンテンツを開けなかった場合に発生します。
ad.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("インタースティシャル広告が全画面コンテンツを開けませんでした " +
"with error : " + error);
// できるだけ早く別の広告を表示できるよう、広告をリロードしてください。
LoadInterstitialAd();
};
}
}