Open4

iOS アプリへの Google Admob の導入

kamimikamimi

実装で検討したこと・困ったこと

Q: Info.plist にはGADApplicationIdentifierの値が含まれているが、パブリックリポジトリでGit 管理しても問題ないか?

A. (検討中)多分・・・問題ない。公式ドキュメントの記述は見つからなかったが、GitHub にパブリックで挙げている人は多い。ただし、Google-Service.plist はパブリックリポジトリの場合、プッシュしてはいけない。

Q: 広告 ID とアプリ ID は違うのか

A. 違う。そりゃそうなのだが。2つの値の形式はかなり似ているので間違えやすい。

ここ

テスト広告を読み込む際は、次に示す iOS バナー向けのテスト専用広告ユニット ID を使うと簡単です。 ca-app-pub-3940256099942544/2934735716

と書いてあったので、Info.plistGADApplicationIdentifierを Debug と Release で切り替えできるように作ってみたが、間違えて前者にテストの広告ID、後者に本番のアプリIDを指定して作ってしまった。

そのため、Admob の SDK 初期化時にクラッシュが発生してしまった

https://sasami-daifuku.com/unity_ios_build_error_1

Q: SwiftUI で Admob を表示できる?

A. できる。UIViewRepresentable を使って表示する。

https://zenn.dev/yorifuji/articles/swiftui-admob

Q: Cannot find 'kGADAdSizeBanner' in scopeというコンパイルエラーが発生するのだが、どうして?どう対応したらいい?

A. kGADAdSizeBannerGADAdSizeBannerへ名前が変わっているので、そちらを使う。

https://stackoverflow.com/questions/70996970/futter-cannot-find-kgadadsizebanner-in-scope

Q: 広告IDを環境ごとに切り替えるにはどうしたらいいか?

A. Build Settings に環境ごとに定義し、Info.plistに変数を定義、コードから参照できるようにすると良い

https://qiita.com/takehilo/items/2d222748abd4db3da5e1

A. GoogleServices-Info.plistを再ダウンロードして、今あるものと入れ替える。Admob と Firebaseをリンクする前にダウンロードしてしまったことで起きたと考えられる。

Q: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.commcenter.coretelephony.xpc was invalidatedのエラーが発生した。どうすればいいか?実機では発生せず、シミュレータでのみ発生。

A. ターミナルの設定が悪いっぽい?設定を変えればログに出なくなるが、一旦そのままにしてみた。

https://kkfactory92.com/swift-error002/

Q: No pending snapshot to activate. のエラーが発生した。どうすればいいか?

A. 不明。。

https://zenn.dev/nekomimimi/scraps/50b89323841a5d

Q: No factory registered for idのエラーが発生した。どうすればいいか?実機では発生せず、シミュレータでのみ発生。

A.

Q: 49 required SKAdNetwork identifier(s) missing from Info.plist.のエラーが発生した。どうすればいいか?実機では発生せず、シミュレータでのみ発生。

A.

https://github.com/googleads/googleads-mobile-flutter/issues/711

Q: target is not running or doesn't have entitlement com.apple.runningboard.assertions.webkitのエラーが発生した。どうすればいいか?実機では発生せず、シミュレータでのみ発生。

A. 考え中

GADApplicationIdentifierを本番用ではなくテスト用のca-app-pub-3940256099942544~1458002511にすることで出なくなったが、IDFA メッセージも表示されなくなってしまった。。

https://appdebri.wordpress.com/2021/06/29/初めてiosアプリにadmod広告を導入した記録/

Q: App Transport SecurityのInfo.plistの設定は何かしないといけないのか?

A. 以下のドキュメントには設定するように記載があるが、ATSをオフにすることのデメリットを考慮すると、広告のためだけであればオフにする方がリスクがあるので特に設定しなかった。そのままでも広告は表示されたため。Proxymanで通信内容を確認してみたが、http通信をしているものはぱっと見はなかったので特に影響受けないのでは。。?真相はわからないけど、オフにするセキュリティのリスクが大きいと判断した。

https://developers.google.com/admob/ios/app-transport-security?hl=ja

https://qiita.com/bosteri_bon/items/ddcdd30483c4b4462e58

Q: 審査提出する時、Appのプライバシーには何を入力すべきか?

A. 公式ドキュメントが出ているのでそれに従って頑張る

公式:

https://developers.google.com/admob/ios/data-disclosure?hl=ja

https://zenn.dev/kazushige/articles/9afa10b36d6828

Q: app-ads.txtに関する警告が表示されている。どう対応すればいいのか

A. App Store ConnectのマーケティングURLと同じドメインに、app-ads.txtを配置する。

公式ドキュメント

https://support.google.com/admob/answer/9363762?hl=ja

https://zenn.dev/aruteru/articles/netlify-admob

https://qiita.com/Arihi/items/5aa5aa3a56065b78a188

kamimikamimi

ビジネス面で検討したこと・困ったこと

Q: Admob の収入を上げたい・不快な広告が表示されないようにしたい。どうすればいいか?

A. 広告インプレッション数が多く、収益割合が低いカテゴリをブロックする。また表示したくない広告のカテゴリをブロックする。
また全種類の広告を、ユーザーの操作の妨げにならないように導入する。

https://aresei-note.com/3557

https://www.kzyrepository.com/2021/06/アプリ開発個人開発で広告収益を上げるための6つのポイントを解説/