Data Safety Form: A Plain-English Walkthrough
The form that gets the most apps rejected. Every question explained, every option translated from policy-speak, with examples from real apps.
The Data Safety form is the single most-rejected element of a Google Play submission. It is also the most misunderstood, because Google's wording is precise legal language describing technical realities that even careful developers misinterpret. This is the question-by-question walkthrough we wish existed when we filed our first one.
Why this form is hard
The Data Safety form asks you to describe — accurately, comprehensively, and in Google's own categorical language — what data your app collects, what it shares with third parties, how it secures that data, and whether the user can opt out. Inaccurate answers result in policy strikes, which compound over time and eventually trigger account suspension. So Google encourages developers to answer carefully. But the form's categories often do not match how developers think about their app's data flow.
Section 1: Data collection and security
Does your app collect or share any of the required user data types? Almost always yes, even for simple apps. If your app uses crash reporting (Firebase Crashlytics, Sentry, etc.), it collects diagnostic data. If it uses any analytics, it collects user actions. If it has any kind of account system, it collects user identifiers. Saying "no" here when any of these are true is the most common form of misreporting.
Is all of the user data collected by your app encrypted in transit? The answer should be yes unless your app makes deliberate plain-HTTP requests. Modern Android already enforces HTTPS by default. If you have a backend, you almost certainly use HTTPS. Answer yes and verify by spot-checking your network calls.
Do you provide a way for users to request that their data is deleted? If your app has any account system or persistent user data, the answer must be yes. As of 2023, in-app account deletion is a separate enforceable policy. The answer should reflect both in-app deletion (a button inside the app) and an external deletion path (a web form or support email).
Section 2: Data types collected
Google groups data into 14 categories. Some non-obvious mappings:
- Approximate location — IP-based geolocation counts. If you ever read a country, region, or city from the user's IP, you collect approximate location.
- Precise location — GPS, Wi-Fi triangulation, or anything more precise than city-level.
- User IDs — Firebase user IDs, your own custom user IDs, even pseudonymous handles. If you store an identifier that links across sessions, you collect a user ID.
- Device or other IDs — Advertising ID, Android ID, install ID. Most analytics SDKs collect at least one of these.
- App activity / In-app interactions — Any behavioral analytics: screen views, button clicks, time on page. Even "privacy-preserving" analytics collect this.
- Crash logs — Crash reporting, structured error logs.
- Diagnostics — Performance metrics, frame rate, network latency, similar.
Section 3: Purpose
For each data type collected, Google asks the purpose: app functionality, analytics, developer communications, advertising, fraud prevention, personalization, or account management. Multiple purposes can apply to one data type. Pick all that genuinely apply — over-declaring is safer than under-declaring.
One trap: if you collect email addresses for "account management" and also send them marketing newsletters, you must also declare "developer communications". Failing to declare a purpose Google can detect (e.g. via outbound traffic patterns or store-listing screenshots) triggers a review.
Section 4: Sharing
This trips up developers who use analytics, ad networks, or backend-as-a-service providers. Google's definition of "sharing" is broad: data is shared if it's transferred to a third party for that party's purposes, including their own analytics or fraud detection. If you use Firebase Analytics, technically Google is the third party — but Google has carved out an exception for first-party Google services, so Firebase doesn't count as sharing.
Third-party ad networks, third-party crash reporting (Sentry, Bugsnag), third-party analytics (Mixpanel, Amplitude), CRM integrations, and customer-support tools (Intercom, Zendesk) all count as sharing.
Section 5: Optional fields
You can mark each data type as optional or required. Optional means the user can decline to provide it and still use the app. Required means the data is necessary for the app to function. Marking everything as required is technically allowed but reduces your trust signal — be honest about what's genuinely required versus enhancement.
The validation step
After filling the form, Google scans your most recent AAB against the declarations. If your AAB makes network calls or has SDKs not consistent with your declarations, you get a warning. Common mismatches: your app includes an ad SDK but you declared no advertising, your app uses Firebase Analytics but you declared no analytics, your app reads contacts but you didn't declare contacts. Fix mismatches before submitting — they slow review and sometimes trigger rejection.
How the wizard handles this
The wizard's Data Safety step asks every question in yes/no form, with plain-English explanations of what each category really covers. Answers feed both the Data Safety form export (for paste into Play Console) and the auto-generated privacy policy, so the two are always consistent.
Target API Level Requirement: Why Your AAB Needs Android 15 (API 35)
Google now rejects every new submission below API 35. Here is what the rule means, how to update your gradle file, and what's coming for Android 16 in August 2026.
ComplianceThe 12-Tester, 14-Day Rule for Personal Developer Accounts
If you signed up after November 2023, you cannot skip the closed-testing requirement. Here's exactly how to set it up, recruit testers, and survive the wait.
ComplianceContent Rating (IARC): Every Question, Decoded
The IARC questionnaire's wording is technical and unforgiving. Here's what each question really asks and how to answer accurately without inflating your rating.