Skip to content

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で正しく宣言することです:

  1. Play Consoleでアプリを選択
  2. 「アプリコンテンツ」→「広告ID」に移動
  3. 「あなたのアプリは広告IDを使用しますか?」で「はい」を選択
  4. 利用目的として「Analytics」にチェックを入れる
  5. 変更を送信して審査を受ける

TIP

Firebase Analyticsを使用している場合は、広告IDの使用を「はい」と宣言する必要があります。これはAnalytics機能が正常に動作するために必要です。

方法2: AD_ID権限の明示的削除(場合により適用)

特定の状況(子ども向けアプリなど)で広告IDの使用が禁止されている場合は、マニフェストで権限を削除できます:

xml
<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 ファイルに以下を追加:

json
{
  "google_analytics_adid_collection_enabled": false
}

Flutter (flutterfire)

Firebase Analyticsパッケージを使用している場合も、Play Consoleで「はい」を選択し、「Analytics」オプションにチェックする必要があります。

注意点

  1. すべてのトラックを確認: 複数のトラック(production, beta, alpha)がある場合、全てのトラックで一貫した設定にする必要があります
  2. キャッシュクリア: Play Consoleで変更後、ブラウザのキャッシュをクリア(Shift+F5)しないと変更が反映されない場合があります
  3. 審査待ち: 宣言変更後、審査が完了するまで数時間から数日かかることがあります

よくある質問

Q: アプリに広告がないのに、なぜ広告IDの宣言が必要ですか? A: Firebase Analyticsがユーザー識別に広告IDを使用するためです。Analytics機能を使用している限り、この宣言は必要です。

Q: 権限を削除しても大丈夫ですか? A: アプリの機能によって異なります。Analyticsのユーザー追跡機能に影響する可能性があります。

Q: 子ども向けアプリの場合はどうすればよいですか? A: 子ども向けアプリでは広告IDの使用が制限される場合があります。権限を完全に削除し、代替の分析ソリューションを検討してください。

まとめ

Google PlayのAD_ID権限問題は、主に宣言と実際のAPK内容の不一致によって発生します。Firebase Analyticsを使用している場合は、Play Consoleで適切に宣言することが最も確実な解決策です。特定の制限事項がある場合のみ、権限の削除を検討してください。