AndroidとiOSの両方でAdMob広告を表示する手順とサンプルソースです。
2015年6月最新のplug-inを使用。64ビット対応。iosシュミレーター使用は不可。
1.GoogleMobileAds.unitypackageをダウンロードしてプロジェクトにインポートする
https://github.com/googleads/googleads-mobile-plugins
今回はv2.2.1を使用しました。
64ビットアーキテクチャ互換とiOS_SDK7に対応済みです。
2.GooglePlayServiceをダウンロードしてインポートする
android SDKのtoolsにあるandroidからsdkmanagerを開いてダウンロードできます。
android_sdk/extras/google/google_play_services/libproject/google-play-services_libをunityプロジェクトのasset/plugin/androidにコピペ
|
インポート後のプロジェクト |
3.以下の広告表示クラスを作成してカメラに貼り付ける
using UnityEngine;
using System.Collections;
using GoogleMobileAds.Api;
//このクラスをメインカメラに貼り付ける
public class AdMobScript : MonoBehaviour {
//AdMobのIDをinspectorから入力する ca-app-pub-XXXXXX
public string iOS_Banner_ID;
public string iOS_Interstitial_ID;
public string iOS_Banner_ID;
public string iOS_Interstitial_ID;
private InterstitialAd interstitial;
private AdRequest request;
bool isInterstitial = false;
// Use this for initialization
void Awake () {
//テストモード
//TestDevice ();
// インタースティシャル広告をロード
RequestInterstitial ();
// バナー広告を表示
RequestBanner ();
}
//任意のタイミングでインタースティシャル広告を表示 OnClickなど
void InterAdView () {
if (interstitial.IsLoaded()) {
interstitial.Show();
}
}
//テストモードを使用
void TestDeviceMode () {
AdRequest request = new AdRequest.Builder()
.AddTestDevice(AdRequest.TestDeviceSimulator) // Simulator.
.AddTestDevice("テストデバイスID") // DEV.
.Build();
}
//カメラ下側にバナーを表示
public void RequestBanner()
{
#if UNITY_ANDROID
string adUnitId = Android_Banner_ID;
#elif UNITY_IPHONE
string adUnitId = iOS_Banner_ID;
#else
string adUnitId = "iOSでもAndroidでもない端末の場合";
#endif
BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Bottom);
AdRequest request = new AdRequest.Builder().Build();
bannerView.LoadAd(request);
}
//広告をダウンロードする
public void RequestInterstitial()
{
#if UNITY_ANDROID
string adUnitId = Android_Interstitial_ID;
#elif UNITY_IPHONE
string adUnitId = iOS_Interstitial_ID;
#else
string adUnitId = "iOSでもAndroidでもない端末の場合";
#endif
if (isInterstitial == true) {
interstitial.Destroy ();
}
interstitial = new InterstitialAd (adUnitId);
request = new AdRequest.Builder ().Build ();
interstitial.LoadAd (request);
interstitial.AdClosed += HandleAdClosed;
isInterstitial = false;
}
// インタースティシャルを閉じた
void HandleAdClosed (object sender, System.EventArgs e)
{
isInterstitial = true;
}
}
インスペクタから広告のidを入力します。
Android版は以上です。以下はiOS版の追加設定です。
iOS版のビルドの際はunityのbuild settingsのscripting backend をIL2CPPにする
4.Xcodeにフレームワークを追加(iOS)
GoogleMobileAdsSdkiOSをダウンロードする。
今回は7.3.1を使用。
linkd Framework and Librariesに以下を追加する
- AdSupport
- CoreTelephony
- EventKit
- EventKitUI
- MessageUI
- StoreKit
- GoogleMobileAds(ダウンロードしたGoogleMobileAdsSdkiOS内にある)
BiludeSettinsのEnable ModulesをYESに設定する