環境
macOS 11.3
Google Mobile Ads Unity Plugin v6.0.0
Xcode 12.5
Unity 2020.3.2f1
はじめに
AdMobのプラグイン
GoogleMobileAdsの新しいバージョン6.0.0が半年ぶりくらいにでました。
そして、 v5.4.0からv6.0.0へ上げたら大量のエラーが出たので対応した話です。
結論 まだバージョンを上げてはいけない
だいたいのエラーは取り除けましたが、下記のエラーが発生しています。
これはプラグイン起因のようで、iOSのビルドが通らない状態です。
(Androidは実機で問題なく広告表示できることを確認しました。)
なので、プラグインのアップデートを待ちたいと思います。
<追記 2021年8月4日>
プラグインバージョンv6.0.2を新規プロジェクトに入れた状態で
ビルドした場合、エラーが出ないことを確認しました。
ただ、admobのアプリIDがUnityを開く度に消えてしまうのは直っていません。
<追記 2021年10月1日>
アプリIDは"おわりに"の項目に追記した内容で保存されます。
v6.0.2にして問題無さそうです。
対応
エラーの読み込み方法の変更
×旧:args.Message
◯新:args.LoadAdError
//バナー読み込み失敗 となった時に起動する関数 public void HandleAdFailedToLoad(object sender, AdFailedToLoadEventArgs args) { //×旧:args.Message //◯新:args.LoadAdError Debug.Log("バナー読み込み失敗" + args.LoadAdError);//args.LoadAdError:エラー内容 }
テストデバイス設定の削除
アダプティブバナーのサンプルコードに下記がありますが、
AddTestDeviceは使えなくなっているので削除します。
(テストデバイスの設定はadmobの設定画面から行えますので無くても問題ないです。)
AdRequest adRequest = new AdRequest.Builder() .AddTestDevice(AdRequest.TestDeviceSimulator) .AddTestDevice("0123456789ABCDEF0123456789ABCDEF") .Build();
変更後
AdRequest adRequest = new AdRequest.Builder().Build();
エラーの型変更
リワード広告のサンプルコードではこのようになっています。
//旧 v5.4.0 //リワード読み込み失敗 となった時に起動する関数 public void HandleRewardedAdFailedToLoad(object sender, AdErrorEventArgs args) { Debug.Log("リワード広告読み込み失敗" + args.Message);//args.Message:エラー内容 }
変更
・AdErrorEventArgs→AdFailedToLoadEventArgs
・args.Message→args.LoadAdError
//新 v6.0.0 //リワード読み込み失敗 となった時に起動する関数 public void HandleRewardedAdFailedToLoad(object sender, AdFailedToLoadEventArgs args) { Debug.Log("リワード広告読み込み失敗" + args.LoadAdError);//args.LoadAdError:エラー内容 }
不要なデータを削除
1.データ削除
v6.0.0を入れた新規プロジェクトと見比べたところ、
いろいろとゴミがありました。
一旦GoogleMobileAdsとPluginsを消して入れ直したらエラーが解消されました。
2.アプリIDの再設定
アプリIDの情報も一緒に消えてしまうのでアプリIDを再設定してください。
また、Unityを開き直した際、アプリIDは保存されないため再度入力が必要です。
→アセット
→Google Mobile Ads
→Settings
3.iOSプラグイン再設定
ATT対応でiOSプラグインにファイルを追加している場合は再追加をお忘れなく! marumaro7.hatenablog.com
iOS設定
下記2点の変更が必要です。
・Cocoapods integrarionを
Xcode Project - Add Cocoapods to the Xcode projectへ変更
(元から設定していても、データを消したせいかデフォルトに戻っていました。)
・Link frameworks staticallyを有効
→アセット
→External Dependency Manager
→iOS Resolver
→設定
CocoaPodsのアップデート
ここまでの設定するとコード上のエラーはなくなります。
しかし、ビルド後、下記のエラーが出るようになりました。
エラー抜粋
Analyzing dependencies [!]
GoogleAppMeasurement
requires CocoaPods version>= 1.10.0
, which is not satisfied by your current version,1.9.1
.
訳
依存関係の分析[!] GoogleAppMeasurement
にはCocoaPods
バージョン> = 1.10.0
が必要ですが、これは現在のバージョン 1.9.1
では満たされていません。
ということでCocoaPodsのバージョンを上げました。
おわりに
アプリIDが保存されないうちは前バージョンのv5.4.0が無難ですね。
(自動設定することもできるようですが、いじりたくない)
<追記 2021年10月1日>
アプリID入力画面にて、
Delay app measurmentのチェックを付けて外せばアプリIDが保存されます。
最後に宣伝させてください。
アプリ開発を始めて丸2年が経ち、
節目としてなにか形にしたいと思い、Udemy講座を出しました!
www.udemy.com
ブログ限定割引リンクは私のプロフィールページにあります。
アプリ開発収益化を時短したい方向けの講座となっております。
Unity本を出版しました!
突然ですが、Unity本を出版しました!
こちらを読むことで、スクリプトの基礎固めができます!
現在、kindle unlimitedで読み放題設定中です。今のうちにどうぞ!
もっと早く教えてほしかった!Unity C#入門
参考
github.comdevelopers.google.com