Google PlayでのAD_ID権限問題と解決策
問題の概要
Google Play Consoleでアプリの更新を提出する際、以下のエラーが発生することがあります:
このリリースには com.google.android.gms.permission.AD_ID 権限が含まれていますが、Play Consoleでの宣言ではアプリが広告IDを使用しないとされています。広告IDの宣言を更新する必要があります。
この問題は、アプリ自体は広告を使用していないものの、依存ライブラリ(特にFirebase Analytics)が広告ID権限を自動的に追加する場合に発生します。
根本原因
Firebase AnalyticsなどのGoogleサービスライブラリは、ユーザー識別のために広告ID(AD_ID)を使用します。Android API 34以降では、この権限名が ACCESS_ADSERVICES_AD_ID
に変更されています。
アプリが実際に広告を表示していなくても、Firebase Analyticsを使用している場合はAD_ID権限が自動的に含まれるため、Play Consoleでの宣言と実際のAPKの内容に不一致が生じます。
解決策
方法1: Play Consoleの設定を適切に更新(推奨)
最も確実な解決方法は、Play Consoleで正しく宣言することです:
- Play Consoleでアプリを選択
- 「アプリコンテンツ」→「広告ID」に移動
- 「あなたのアプリは広告IDを使用しますか?」で「はい」を選択
- 利用目的として「Analytics」にチェックを入れる
- 変更を送信して審査を受ける
TIP
Firebase Analyticsを使用している場合は、広告IDの使用を「はい」と宣言する必要があります。これはAnalytics機能が正常に動作するために必要です。
方法2: AD_ID権限の明示的削除(場合により適用)
特定の状況(子ども向けアプリなど)で広告IDの使用が禁止されている場合は、マニフェストで権限を削除できます:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.your.app.package">
<!-- Android API 33以前 -->
<uses-permission android:name="com.google.android.gms.permission.AD_ID"
tools:node="remove" />
<!-- Android API 34以降 -->
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_AD_ID"
tools:node="remove" />
<application>
<!-- AD_ID収集を無効化 -->
<meta-data
android:name="google_analytics_adid_collection_enabled"
android:value="false" />
</application>
</manifest>
WARNING
権限を削除するとFirebase Analyticsの機能に影響する可能性があります。必要な機能が動作しなくなるリスクがあります。
方法3: ライブラリの設定でAD_ID収集を無効化
React Native (React Native Firebase)
firebase.json
ファイルに以下を追加:
{
"google_analytics_adid_collection_enabled": false
}
Flutter (flutterfire)
Firebase Analyticsパッケージを使用している場合も、Play Consoleで「はい」を選択し、「Analytics」オプションにチェックする必要があります。
注意点
- すべてのトラックを確認: 複数のトラック(production, beta, alpha)がある場合、全てのトラックで一貫した設定にする必要があります
- キャッシュクリア: Play Consoleで変更後、ブラウザのキャッシュをクリア(Shift+F5)しないと変更が反映されない場合があります
- 審査待ち: 宣言変更後、審査が完了するまで数時間から数日かかることがあります
よくある質問
Q: アプリに広告がないのに、なぜ広告IDの宣言が必要ですか? A: Firebase Analyticsがユーザー識別に広告IDを使用するためです。Analytics機能を使用している限り、この宣言は必要です。
Q: 権限を削除しても大丈夫ですか? A: アプリの機能によって異なります。Analyticsのユーザー追跡機能に影響する可能性があります。
Q: 子ども向けアプリの場合はどうすればよいですか? A: 子ども向けアプリでは広告IDの使用が制限される場合があります。権限を完全に削除し、代替の分析ソリューションを検討してください。
まとめ
Google PlayのAD_ID権限問題は、主に宣言と実際のAPK内容の不一致によって発生します。Firebase Analyticsを使用している場合は、Play Consoleで適切に宣言することが最も確実な解決策です。特定の制限事項がある場合のみ、権限の削除を検討してください。