2015年6月18日木曜日

UnityアプリにAdMob広告を表示するサンプル

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にコピペ
admob入りのプロジェクト
インポート後のプロジェクト

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に設定する

0 件のコメント:

コメントを投稿