UnityアプリにAdmobを入れたのでその事を書いてみます。
導入は下の公式ドキュメントを参考にしました。
https://developers.google.com/mobile-ads-sdk/docs/games
UnityへAdmobプラグインをインストール
Unity用のAdmobパッケージは下URLから取得しました。
Release Google Mobile Ads Unity Plugin v2.3.1 · googleads/googleads-mobile-unity · GitHub
Admobを導入したいプロジェクトを開いた状態でGoogleMobileAds.unitypackage
をダウンロードして開くと下のようにImportするか聞かれます。
ここでImportを選べばインストール完了です。
バナー広告の表示
バナー広告を表示するコードは下の通りです。
これをメインカメラに紐付ければ画面に広告が表示されます。
using UnityEngine; using System.Collections; using GoogleMobileAds.Api; public class AdScript : MonoBehaviour { // Use this for initialization void Start () { RequestBanner(); } private void RequestBanner() { #if UNITY_ANDROID string adUnitId = "INSERT_ANDROID_BANNER_AD_UNIT_ID_HERE"; #elif UNITY_IPHONE string adUnitId = "INSERT_IOS_BANNER_AD_UNIT_ID_HERE"; #else string adUnitId = "unexpected_platform"; #endif // Create a 320x50 banner at the top of the screen. BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top); // Create an empty ad request. AdRequest request = new AdRequest.Builder().Build(); // Load the banner with the request. bannerView.LoadAd(request); } }
Scene切替時に広告を非表示にする
上のコードだとバナーはSceneを切り替えても表示されます。
別Sceneに行った時に消したい場合は下のようにBannerView
のDestroy
を呼ぶ必要があります。
void OnDestroy() {
bannerView.Destroy();
}
バナー広告を下に表示する
上コードだとバナー広告は画面上部にされます。
画面の下に表示したい場合はAdPosition.Top
をAdPosition.Bottom
変える必要があります。
バナー広告その他
試してないのですが、インタースティシャル広告の表示や広告ロード時のイベント取得も簡単にできそうです。
詳しくは先ほども上げた公式リファレンスを参考にすると良さそうです。
https://developers.google.com/mobile-ads-sdk/docs/games
iPhoneアプリ向けAdmob設定
iPhoneアプリでAdmobを動かす為にはiOS向けにビルドした後に何点か設定を行う必要があります。
公式リファレンスに手順は載っているのですが、何点かハマりどころがあったので書いていきます。
@importが動かない
XcodeでiPhoneアプリを起動しようとすると@import
の部分でエラーを吐きます。
その問題は下のEnable Modules
をYESにする事で解消できます。
ライブラリを入れる必要がある
iPhoneでAdmobを動かす際は下のライブラリを入れる必要があります。
AdSupport AudioToolbox AVFoundation CoreGraphics CoreTelephony EventKit EventKitUI MessageUI StoreKit SystemConfiguration
自分は一々入れるのがめんどくさかったのでPodfile
に下のように記述してpod install
しました。
これで上記ライブラリは全てインストールされます。
pod 'Google-Mobile-Ads-SDK', '~> 7.0'
CocoaPods経由でインストールした場合のエラー
しかしこの方法を実行すると下のようなエラーが出てうまく動きません。
その対策として自分は下URLからAdmobのSDKをダウンロードしてGoogleMobileAds.framework
を直接Xcodeに追加しました。
Undefined symbols for architecture arm64: "_kGADAdSizeSmartBannerLandscape", referenced from:
Google Mobile Ads SDK | AdMob for iOS | Google Developers
広告表示
これで無事に表示する事ができました。
iOSの設定は結構苦労しました。
Androidアプリ向けAdmob設定
AndroidもiPhone程大変ではないですが設定が必要です。
作業としては<android_sdk>/extras/google/google_play_services/libproject/google-play-services_lib/
の中身をAssets/Plugins/Android
に移せば終わりです。
しかしその際にAndroidManifest.xml
に設定の追加しないとインストールされたアプリが表示されなくなります。
自分のようにAndroidアプリやったことないと結構ハマるかもしれません。
詳細は下記事にまとめてみました。
まとめ
以上でAdmobの表示が両端末でできるかと思います。
ハマりどころが多かったり設定が多かったりするのがちょっと大変でした。