51 lines
3.6 KiB
Markdown
51 lines
3.6 KiB
Markdown
# Example Game · App Store "App Privacy" answers
|
|
|
|
App Store Connect > your app > App Privacy (https://appstoreconnect.apple.com/apps, then the app; `storebound console plan apple-app-privacy` gives the deep link). **Web UI only, there is no API.** Fill it from this table, then press
|
|
**Publish** at the top of the App Privacy page (saving alone does not publish it, and review checks the published one).
|
|
Keep it consistent with the privacy policy and the Play Data safety answers (`dataSafety` in `storebound.config.ts`).
|
|
|
|
Typical free-to-play game: analytics SDK + ad mediation (with ATT) + optional server backup, no accounts.
|
|
|
|
**Do you or your third-party partners collect data from this app?** Yes
|
|
|
|
**Tracking**: Yes, if any ad network uses the IDFA after the App Tracking Transparency prompt (third-party advertising).
|
|
Then `NSUserTrackingUsageDescription` must be in Info.plist and the prompt must come before the ad SDK starts.
|
|
|
|
| data type | collected | used to track | linked to the user | purposes |
|
|
|---|---|---|---|---|
|
|
| Identifiers > Device ID (IDFA, analytics random id) | yes | yes (IDFA, with ATT consent) | no | Third-Party Advertising, Analytics, App Functionality |
|
|
| Location > Coarse Location (country from IP) | yes | yes | no | Third-Party Advertising, Analytics |
|
|
| Usage Data > Advertising Data (ads shown, ad taps) | yes | yes | no | Third-Party Advertising, Analytics |
|
|
| Usage Data > Product Interaction (sessions, level events) | yes | no | no | Analytics |
|
|
| User Content > Gameplay Content (save backup, scores) | only with a server backup | no | no | App Functionality |
|
|
| Diagnostics > Other Diagnostic Data (device model, OS version) | yes | no | no | Analytics, Third-Party Advertising |
|
|
| Purchases > Purchase History | only if your server stores receipts | no | yes if tied to an account | App Functionality |
|
|
|
|
"Linked to you" is **No** when there are no accounts and nothing is tied to a name, email or phone number.
|
|
Not collected (typical): Contact Info, Health and Fitness, Financial Info, Precise Location, Sensitive Info, Contacts,
|
|
Emails or Text Messages, Photos or Videos, Audio, Browsing History, Search History, Crash Data (unless you ship a crash
|
|
reporter).
|
|
|
|
Purposes follow Apple's definitions (https://developer.apple.com/app-store/app-privacy-details/): ads shown by an ad
|
|
SDK are **Third-Party Advertising** only. **Developer's Advertising or Marketing** is your own ads or marketing to your
|
|
users; tick it only when that is true.
|
|
|
|
Put the answers into `storebound.config.ts` so `storebound console fill apple-app-privacy` fills them and
|
|
`storebound check` compares them with Info.plist and PrivacyInfo.xcprivacy (all type ids: storebound's
|
|
cli/lib/app-privacy.ts):
|
|
|
|
```ts
|
|
appPrivacy: { tracking: true, types: {
|
|
DEVICE_ID: { collected: true, linked: false, tracking: true, purposes: ['THIRD_PARTY_ADVERTISING', 'ANALYTICS', 'APP_FUNCTIONALITY'] },
|
|
COARSE_LOCATION: { collected: true, linked: false, tracking: true, purposes: ['THIRD_PARTY_ADVERTISING', 'ANALYTICS'] },
|
|
ADVERTISING_DATA: { collected: true, linked: false, tracking: true, purposes: ['THIRD_PARTY_ADVERTISING', 'ANALYTICS'] },
|
|
PRODUCT_INTERACTION: { collected: true, linked: false, tracking: false, purposes: ['ANALYTICS'] },
|
|
GAMEPLAY_CONTENT: { collected: false },
|
|
} },
|
|
```
|
|
|
|
Per data type the UI asks, in order: purposes (checkboxes) > "Is this data linked to the user's identity?" >
|
|
"Do you or your third-party partners use this data for tracking purposes?".
|
|
|
|
Privacy policy URL: App Information > Privacy Policy URL (set by `storebound apple listing`). Privacy choices URL:
|
|
optional, leave empty unless you have a page for it.
|