A privacy policy written for a website and pasted into an app's settings screen usually misses the parts that actually matter for an app: the SDKs bundled into the build, the device permissions a user is prompted to grant, and the advertising identifier a lot of monetization depends on. Worse, both major app stores now make you separately declare that same data in a structured form, Apple's Privacy Nutrition Label and Google Play's Data Safety section, and reviewers do check whether your declared answers and your published policy tell the same story. Here's how to write one that actually matches what your app does, and what you've told the stores it does.
Why a web privacy policy doesn't automatically cover an app
A typical website's privacy policy is built around form submissions, cookies, and server logs. A mobile app has a different, usually larger, data surface: it requests OS-level permissions (camera, precise location, contacts, microphone, photo library), it bundles third-party SDKs that collect data independently of anything the user typed into a form (analytics, crash reporting, ad networks, attribution tools), and on iOS it may read or set the IDFA, the advertising identifier that Apple's App Tracking Transparency framework specifically regulates. None of that shows up in a policy written for a marketing site. If your app and your website share one privacy policy today, it needs to be written to cover both, not just extended by assumption.
The five steps below, in order:
Step 1: Map what your app actually collects, permission by permission and SDK by SDK
Before writing anything, build the same kind of data map a Shopify store owner builds for their app stack, just for your mobile build instead. Two lists:
- Permissions your app requests. Open your app's manifest (
AndroidManifest.xmlon Android,Info.plistusage description strings on iOS) or simply walk through the permission prompts a fresh install shows a user: camera, precise or approximate location, contacts, microphone, photo library, push notifications, Bluetooth. Each one is a data type you need to disclose, tied to the specific feature that requests it. - Third-party SDKs bundled in your build. Analytics (Firebase Analytics, Google Analytics, Mixpanel), crash reporting (Crashlytics, Sentry), ad networks (AdMob, Meta Audience Network, AppLovin), and attribution or marketing tools (AppsFlyer, Adjust, Branch) all collect and transmit data independently of your own app code. Check your dependency list or build configuration directly rather than relying on memory, since SDKs added months ago for a feature that's since been removed have a way of quietly sticking around.
This map is the input to both the store disclosure forms below and the policy text itself. Skipping straight to writing policy language without it is how policies end up describing a generic app instead of your specific one.
Step 2: Fill out the platform's own disclosure form first
Both major stores require a structured, categorical answer to "what data does this app collect" before your privacy policy text even enters the picture, and your policy needs to say the same thing these forms say, not something looser or different.
In App Store Connect, that's the Privacy Nutrition Label under App Privacy: for each data type (contact info, location, identifiers, usage data, and more), you declare whether it's collected, whether it's linked to the user's identity, and whether it's used to track them across other companies' apps and websites. In Google Play Console, the equivalent is the Data Safety section under App content, with a similar collected/shared/purpose breakdown per data type.
App Store vs Google Play Privacy Disclosure
| Apple (App Store) | Google (Play Console) | |
|---|---|---|
| Form name | Privacy Nutrition Label | Data Safety section |
| Located under | App Privacy | App content |
| Declares | Types collected, linked, tracked | Types collected, shared, purpose |
| Tracking signal | IDFA tracking across apps/sites | Shared for advertising purposes |
Fill these out using the map from Step 1, honestly and completely, before drafting your policy. A common, avoidable problem is a Data Safety form that says "no data shared with third parties" while an ad SDK is quietly sharing exactly that, a mismatch a reviewer or a security researcher can catch by simply comparing your form answers to your app's actual network traffic.
Step 3: Write the policy around what you actually found
With your permission and SDK map, and your completed store disclosure forms, in hand, the policy itself needs to cover:
- What data is collected, tied to specific permissions and SDKs rather than a vague "we may collect information."
- Why each type is collected: a feature the user directly uses (camera for photo upload), versus analytics, versus advertising.
- Every third-party SDK vendor, named specifically, that receives data, matching the third parties disclosed in your Nutrition Label or Data Safety form.
- Whether the app tracks users across other companies' apps and sites via the IDFA or a similar identifier, and, if so, that App Tracking Transparency consent is requested on iOS before that tracking begins.
- How children's privacy is handled, since COPPA in the US and equivalent rules elsewhere apply with extra weight to apps that could appeal to users under 13, and both stores have their own additional review criteria for apps in that category.
- How a user can request deletion of their account and data, since both stores increasingly expect an accessible in-app path for this, not just a policy sentence pointing at an email address.
Step 4: Put the policy URL exactly where both stores expect it
A finished policy does nothing if it's not linked from where reviewers and users actually look for it. In App Store Connect, the Privacy Policy URL field lives under App Information and is required for essentially all apps today. In Google Play Console, it's under App content in your store listing setup. Both need a publicly reachable URL, no login wall, that matches the policy you actually wrote, not a generic placeholder left over from a template.
It's worth linking the policy from inside the app itself too, typically a Settings or About screen, independent of the store listing requirement. Some review guidelines expect this for apps that collect data requiring disclosure, and even where it isn't strictly required, a user who wants to check your data practices shouldn't have to leave the app and search the store listing to find them.
Step 5: Treat it as a release checklist item, not a one-time task
An app's data footprint changes with nearly every release that adds a feature, swaps an ad network, or integrates a new analytics tool. Each of those changes should trigger three updates together: your dependency map from Step 1, your store disclosure form, and your privacy policy text. Stores that catch a mismatch between what an app's build actually does and what its Data Safety or Nutrition Label answers claim can delay a release or require a resubmission, and the same mismatch is exactly what a privacy policy that's fallen out of date produces on your own site.
Add "update privacy policy and store disclosures" to whatever checklist already governs your release process, next to app store screenshots and version bumps, rather than treating it as a separate compliance task that gets remembered only when someone asks about it.
Get an app-ready policy without starting from scratch
Writing an accurate mobile app privacy policy by hand means tracking the same permission and SDK map through your policy text, your App Store Privacy Nutrition Label, and your Google Play Data Safety form, and keeping all three in sync as your app changes. Our Privacy Policy Generator builds a policy around the data types, third-party tools, and audiences you actually tell it about, the same underlying legal requirements, GDPR, CCPA, COPPA, apply whether that data comes from a web form or a device permission, so the policy it produces is ready to link from both App Store Connect and Google Play Console, and to publish alongside a Data Safety form that says the same thing it does.
The information in this article is for informational purposes only and should not be construed as legal advice on any matter, and does not create a lawyer-client relationship.