iOS の AdMob でテスト広告が表示されない問題の解決

iOS の AdMob でテスト広告が表示されない問題がありましたが、app-ads.txt を更新して解決しました。

コベリンでは AdMob をアプリに組み込んで広告を表示するとき、開発時にはデモ広告ユニットの ID を使って本番の広告が表示されないようにしています。

しかし先日からデモ広告ユニットが表示されなくなり、次のようなメッセージがコンソールに出力されるていました。

<Google> Cannot find an ad network adapter with the name(s): com.google.DummyAdapter. Remember to link all required ad network adapters and SDKs, and set -ObjC in the 'Other Linker Flags' setting of your build target.

しかし -ObjC はついているし、AdMob は CocoaPods で導入していて特別なことはしていなかったので解決の助けにはなりませんでした。

そこでライブラリを前のバージョンに戻したり、AdMob の設定画面を見たり様々な手を尽くしトラブルシューティングに努めていましたが、一向に解決しませんでした。なぜならドキュメントに書いてある下記の注意文を、app-ads.txt を使ってないから関係ないでしょと思って見逃していたからです。

f:id:ryoheyc:20220118175413p:plain

f:id:ryoheyc:20220118180228p:plain

app-ads.txt を次のように更新しました。

google.com, pub-XXXXXXX, DIRECT, f08c47fec0942fa0
google.com, pub-3940256099942544, DIRECT, f08c47fec0942fa0

1日待ってみると、正常にテスト広告が表示されるようになりました!

まずはドキュメントに従って対応してみよう!(自戒)

ところで、app-ads.txt にまつわる対応は2年前に行われていましたが、Slack や GitHub の Issue でしっかりと管理していたため、どういった経緯で導入されたかなどが記録に残っていたのがとても良かったです。すっかり慣れたワークフローですが、なにか起きたときの助けになりますね。

ちなみに、Info.plist の GADApplicationIdentifier を変えたりしても全く変わらず、Bundle ID を別のものに変えるとテスト広告が出るようになったため、app-ads.txt はアプリの Bundle ID を見て取得していると思われます。