unityでadmobを表示する(使い方)の備忘録を自分用にまとめておこうと思います。
※ admobの広告ユニットIDは、取得してもすぐには表示されないので事前に登録しておいたほうがいいかと思います。
設定方法だけではなく、登録・運用上のメモなども残せればと思っています。
◆ 公式の設定ガイド
・ パッケージをunityにインポート
・ assets → Googlmobile ads → settingsでgoogle admobのenabledをon
各app idを入れる
※スクリプトでも設定するのに、なぜidが必要なのか謎・・・
↓おそらく、この手順(info.plistへの追記)を自動で行なうっぽい??
しかし、これだけではエラーになる。
なんだそれ・・・
※おそらく、
↓この手順はCocoaPodsで対応したほうがいい。
-------------------------------------------------------------
ということで、frameworkの追加
↓このフレームワークを解凍。4つほどフレームワークがあるので、
↓この手順にそってxcodeでframeworkをインポート
-------------------------------------------------------------
◆ CocoaPodsでの作業手順
◆ 生成されたxcworkspaceを開く
CocoaPodsを使用しているプロジェクトでは、「.xcodeproj」のファイルから開くとビルドできません。「.xcworkspace」を開きます。ここがまず第一のハマりどころ。
しかし、実行時にエラーになる。
UIApplicationMain(argc, argv, nil, [NSString stringWithUTF8String: AppControllerClassName]);
他にも、gsCrashReporterUEHandlerのエラーでも以下で対応できた???
まったくの謎だが、info.plistに
GADIsAdManagerAppをtrueと追加登録すると動作したようです
(GADApplicationIdentifierは自動で入っているはず・・・)
【 対象エラー症状 】GADIsAdManagerAppを追加してtrueにすると解決するかも
xcodeから実機にインストール・起動時のエラー
No pending report exists at/UncaughtExceptionHandler/gsCrashReporterUEHandler(exception);/Graphics API
■ アーカイブ時のエラー対策
linker command failed with exit code
→bitcodeをNOにする??
「PROJECT・TARGETS」の設定画面を開き「PROJECT」>「Build Settings」タブに移動する。「bitcode」と検索したら「Enable Bitcode」の項目を「YSE」から「NO」に変えるだけ!
■ 2019年現在、テストIDでは表示されるが、何故か本番IDでは表示されない・・・
ということで、もう一度手順を追う
→結局問題が解決されない・・・
Unityを最新版にアップデートしてみる
→表示されない
エラーログを取得するため、広告イベントを表示させる・・・
(using Systemが必要)
たぶん、公開されていないアプリだと、表示されないようになった?!!
しかも公開されているかどうかは、keycodeを見ているようだ・・・
色々つまづいてしまったので、
自分用と、もしかしたら誰かの御役に立てれば幸いです。
↓ここのページを参考にしました
Get Started | Google Mobile Ads SDK for Android | Google Developers
こちらも参考にしました
Unityで作ったゲームにAdMob広告を実装する方法【バナー広告編】 | FREE SWORDER
■ Unity用のパッケージをダウンロードしてインポート
何はともあれ、GoogleMobileAds.unitypackageを
ダウンロードして対象のプロジェクトに入れます
※ すると、なぞのエラーが発生する場合がある
ERROR: Unable to find dependency com.google.android.gms:play-services-ads-lite:
ってことで、その場合は、こちらのページを参考に・・・
Unity - UnityにGoogle Mobile ads導入時のエラー(75301)|teratail
どうやら、このサイトにもヒントが・・・
PROBLEM WITH ADS: PLAY SERVICES - Unity Answers
英語は苦手だけど、
gitから「unity-jar-resolver.unitypackage」をダウンロードして、
今のプロジェクトにあるだろう'Play Services Resolver' を削除して、
「unity-jar-resolver.unitypackage」をインポートするようだ。
すると下記のメニューができるので
Assets > Play Service Resolver > Version Handle > Update
をして、(※前後逆??)
Assets->Play Services Resolver -> Android Resolver -> Resolve Client Jars
すればOKってことみたい
?ResolveとRsolve Forceしかない??
■ 広告を表示するスクリプトを作って空のオブジェクトにアタッチ
↓ スクリプトの参考(表示テストにはtest idを使うとよさげ)
これにて、
アンドロイドでは表示された。
次は、iOS(アイフォン)でもやってみる・・・
なかなかにめんどくさいということに気づく
【iPhoneのAdmob設定】
■ 以下のサイト様の手順を頼りにしました
https://unity3d.sakura.ne.jp/unity/unity-iphone-admob.html
“GoogleMobileAds/GoogleMobileAds.h” file not found error
★ ポイント
xcode側の設定が必要です
・ GoogleMobileAds.frameworkの追加
・ 他フレームワークの追加
【Unity、iOS】AdMob入れたらModule 'GoogleMobileAds' not found.が消せなくて困った。 - naichi's lab
すると、下記のエラーが・・・
use of “@import when modules are disabled
ってことで下記のサイト様を参考に修正しました
http://www.clrmemory.com/iphone/build-error-inport/
■ Apple LLVM [XX] - Language - ModulesのEnable Modules (C and Objective-C)を YESにする
※ [XX]の数値は異なる
以上で、Android・iOSともにフッターが表示されました。
もし、ご指摘のことやアドバイスなどあればお教えいただけると嬉しいです。
【 仮説メモ 】
・ admobとnendは共存できないかも???
■ 参考サイト