Google Play Consoleからこんなメールが届いたことはありませんか。
「お客様のアプリは、データセーフティセクションが不完全であるか、不正確な情報が含まれているため、ポリシーに違反しています」
2014年から個人でアプリを開発し、累計5,000万ダウンロードを超えるアプリ群を運営してきた経験の中で、このリジェクトには何度も直面してきました。Rorkで生成したAndroidアプリを初めてGoogle Playに申請する方が特に詰まりやすいポイントです。なぜなら、Rorkが自動的に組み込むSDK(AdMob・Firebase・Expo等)がどのようなデータを収集しているかを把握していないと、申告が必然的に漏れてしまうからです。
Rorkアプリに特有のデータ申告漏れパターンと、データセーフティセクションを正確に記入するための手順を順を追って整理していきます。
なぜRorkアプリはデータセーフティで詰まりやすいのか
Google Playのデータセーフティセクションは2022年に義務化されました。「アプリがどのデータを収集し、どう使うか」を開発者自身が申告する仕組みです。
問題は、Rorkで生成したアプリには複数のSDKが自動的に含まれており、各SDKがバックグラウンドで収集するデータを開発者が完全に把握できていないケースが多いことです。自分で実装したコードの部分だけ申告しても、SDKが収集するデータが漏れていれば審査で弾かれます。
主な原因は以下の3パターンです。
- AdMobの広告ID収集を申告していない: 広告SDKはデバイス識別子(広告ID)を必ず収集します。これを申告していないとほぼ確実にリジェクトされます
- Firebaseのクラッシュレポートを見落とす: Firebase Crashlyticsはクラッシュ時にデバイス情報や診断データを収集します。「分析/診断」の申告が必要です
- ユーザー生成コンテンツの扱いが曖昧: チャット機能や写真アップロード機能があるアプリで「ユーザーコンテンツ」の申告が漏れるケースがあります
Rorkアプリに含まれる主なSDKとデータ申告の対応表
Rorkで生成したアプリに一般的に含まれるSDKと、申告すべきデータの種類を整理します。
AdMob(Google Mobile Ads SDK)
AdMobを使っている場合、以下のデータ申告が必須です。
- 収集するデータの種類: デバイスIDまたはその他のID(広告ID)
- 目的: 広告またはマーケティング
- 第三者共有: あり(Googleに送信)
- オプトアウト: 可能(ユーザーが広告IDをリセット可能)
申告項目チェックリスト(AdMob):
✅ デバイスIDまたはその他のID → 収集: はい
✅ 広告またはマーケティング → 目的: はい
✅ データはサードパーティと共有 → はい(Google)
✅ ユーザーはデータ削除をリクエスト可能 → はい(広告IDリセット)
Firebase Crashlytics / Analytics
Firebase系のSDKを使っている場合の申告内容です。
- Crashlytics: 診断データ(クラッシュログ)を収集 → 「アプリのパフォーマンス」として申告
- Analytics: ユーザーの操作履歴・デバイス情報を収集 → 「アプリのアクティビティ」として申告
- Authentication: ユーザー認証情報(メールアドレス等)を収集 → 「個人情報」として申告
Expo / React Native(ベースフレームワーク)
Expoは一般的に独自のデータ収集を行いませんが、使用するExpoライブラリによっては申告が必要になります。例えばExpo Notificationsを使う場合はデバイストークン(識別子)の収集を申告する必要があります。
データセーフティセクションの正しい記入手順
Step 1: アプリに含まれるSDKのリストアップ
まず、Rorkで生成したアプリの package.json を確認し、含まれているパッケージを把握します。
# package.jsonから主要パッケージを確認
cat package.json | grep -E "(google|firebase|expo|revenuecat|analytics|admob)"出力例:
"expo-ads-admob": "^3.0.0",
"@react-native-firebase/crashlytics": "^18.0.0",
"expo-notifications": "^0.27.0",
"react-native-purchases": "^7.0.0"
この出力を手がかりに、各SDKが収集するデータを一つずつ確認していきます。
Step 2: 各SDKの公式プライバシー情報を確認
各SDKの公式ドキュメントには「Data Safety」に関するガイドが掲載されています。確認先は以下の通りです。
- Google AdMob: GoogleのAdMob Data Safety回答フォームに申告例が掲載されています
- Firebase: FirebaseコンソールのプロジェクトページにData Safety向けのCSVダウンロード機能があります(2022年以降提供)
Step 3: Google Play Consoleでフォームを記入
Google Play Consoleで「データのセーフティ」セクションを開き、以下の手順で記入します。
- アプリがデータを収集するか? → 「はい」を選択(ほぼすべてのアプリで該当)
- 収集するデータの種類を選択: 上記の対応表を参考に、該当するものを全てチェック
- データの使用目的を選択: 広告・分析・アプリの機能など
- サードパーティとの共有: 広告SDKを使っている場合は「あり」を選択
- 暗号化: データ送信時の暗号化の有無(HTTPS通信なら「はい」)
- 審査に送信: 保存だけでなく「審査に送信」まで完了させる
よくある申告ミスと修正パターン
ミス1: 「ユーザーの選択に基づく」の誤申告
データ収集が「ユーザーの選択に基づく」と申告しているのに、実際にはオプトアウト手段を提供していないケースです。AdMobは広告IDの収集が必須であるため「ユーザーの選択に基づく」には該当しません。「アプリの機能のために必須」として申告するのが正しい扱いです。
ミス2: RevenueCatの課金情報の申告漏れ
RevenueCatを使って課金機能を実装している場合、購入履歴(財務情報)の収集を申告する必要があります。
RevenueCatの申告項目:
✅ 財務情報 → 購入履歴 → 収集: はい
✅ 目的: アプリの機能(購入の処理)
✅ サードパーティ共有: はい(RevenueCat、Apple/Googleなど)
この申告が漏れているケースは非常に多く、課金機能を実装しているRorkアプリでは特に注意が必要です。
ミス3: 位置情報の申告不足
Google Mapsや位置情報機能を実装している場合、精確な位置情報か大まかな位置情報かを正確に選択する必要があります。GPS精度(誤差10m以内)なら「精確な位置情報」、それ以外なら「大まかな位置情報」として申告します。
リジェクト後の再申請で気をつけること
データセーフティのリジェクトを受けた後、修正して再申請するときに注意すべき点があります。
申告の変更はすぐに審査に反映されない: データセーフティフォームを更新した後、「保存」しただけでは審査に反映されません。必ず「審査に送信」ボタンをクリックして、新しいAPKまたはAABと一緒に送信してください。
アプリの更新が必要なケース: プライバシーポリシーのURLを更新しただけでは不十分なことがあります。実際にアプリの挙動(不要なパーミッションの削除など)を修正したうえで新しいビルドを提出する必要があります。
審査期間: 修正後の審査には通常3〜7日かかります。焦って複数回送信しても結果は変わらないので、一度送信したら審査結果を待つのが得策です。
プライバシーポリシーとの整合性も確認する
データセーフティの申告内容は、アプリのプライバシーポリシーと一致している必要があります。プライバシーポリシーに記載されていないデータを収集していると申告している場合、あるいはその逆でも、再度リジェクトされる可能性があります。
プライバシーポリシーの記載例(AdMob使用アプリの場合):
本アプリは、広告を表示する目的でGoogle AdMobを使用しています。
Google AdMobは、パーソナライズされた広告の表示のために
デバイスの広告識別子を収集する場合があります。
詳細はGoogleのプライバシーポリシーをご確認ください。
Rorkアプリのプライバシーポリシーは、Expoが自動生成するものをベースに使用しているケースが多いですが、実際に使用しているSDKに合わせてカスタマイズすることをお勧めします。プライバシーポリシーと個人データ保護全般については、Rork アプリのプライバシーポリシーと個人データ保護も参考にしてください。
Google Playポリシー全般のトラブルシューティング
データセーフティ以外のGoogle Playポリシー違反(メタデータ違反・広告ポリシー違反等)については、Rork アプリの Google Play ポリシー違反の原因と解決方法に詳しくまとめています。
申請前に一度目を通しておくと、多くのリジェクトパターンを事前に防ぐことができます。
まず package.json を開いて、使用しているSDKを書き出すところから始めてみてください。SDKが確定すれば、データセーフティの申告項目は自然と埋まっていきます。
同じ問題で詰まっている方の参考になれば幸いです。