Guide Moduli degli store e SDK
Come compilare il modulo Data safety di Google Play e i dettagli App Privacy di Apple
Cosa chiede ciascun questionario, come i tuoi SDK cambiano le risposte, le tre domande che si sbagliano più spesso e dove ogni fornitore pubblica le risposte che ti servono.
Elenca ogni SDK presente nella tua build, apri la pagina informativa di ciascun fornitore o il suo privacy manifest, e aggiungi la tua raccolta di dati, come gli account. Poi rispondi a entrambi i questionari partendo da quell'unico elenco. Play chiede cosa viene raccolto, condiviso e perché. Apple chiede lo stesso, più se ogni tipo di dato è collegato all'utente e usato per il tracciamento.
Fallo invece in pochi minuti
AppFoyer ospita le pagine di cui parla questa guida (informativa sulla privacy, termini, supporto, eliminazione dell'account e app-ads.txt) su un sottodominio dedicato, senza un tuo dominio o server. Un'app è gratis, e niente di ciò che uno store richiede è mai a pagamento.
Verificata il 25 settembre 2026. Le policy degli store cambiano, a volte senza preavviso. Tutto ciò che segue rimanda alla documentazione ufficiale, ed è quella pagina, non questa, a fare fede. Se le due non concordano, ha ragione lo store. Questa guida è tradotta dall'inglese; le citazioni dalla documentazione degli store restano nell'originale inglese.
Crea un unico elenco di ciò che la tua app invia fuori dal dispositivo, SDK compresi, e rispondi a entrambi i questionari partendo da quello. Il modulo Data safety di Google Play e i dettagli App Privacy di Apple chiedono gli stessi fatti con parole diverse. Quando le risposte vengono da due memorie separate, finiscono per divergere.
Ogni app su Google Play deve compilare il modulo Data safety, anche un’app che non raccoglie nulla. Sono esentate solo le app pubblicate esclusivamente su canali di test interno (la guida Data safety di Google Play). Apple chiede i dettagli App Privacy per ogni app sull’App Store (i dettagli App Privacy di Apple).
Dove si trovano i moduli
- Google Play: Play Console → la tua app → App content → Data safety.
- App Store: App Store Connect → la tua app → App Privacy.
Passo 1: costruisci l’elenco
- Ogni SDK di terze parti. Leggi i file delle dipendenze:
build.gradle/libs.versions.toml,Podfile/Package.swift,pubspec.yaml,package.json. Entrambi gli store considerano tuo ciò che un SDK raccoglie. Apple ti ritiene responsabile di tutto il codice della tua app, compreso quello che non hai scritto tu. - Cosa invia ciascuno. Usa la pagina del fornitore stesso. Alcuni fornitori pubblicano le loro
risposte nel vocabolario di Play, tra cui RevenueCat, Unity Ads e OneSignal. Google pubblica
tabelle per AdMob e per ogni prodotto Firebase. Su iOS, la maggior parte degli SDK attuali include
un privacy manifest (
PrivacyInfo.xcprivacy). In Xcode, apri Organizer, fai clic con il tasto destro su un archivio e scegli Generate Privacy Report per vedere in una sola pagina ogni manifest presente nella tua build (la documentazione di Apple sui privacy manifest). - La tua raccolta di dati. Account (email, id utente), qualunque cosa salvi il tuo backend, la posizione letta dal tuo codice, i registri degli acquisti conservati dal tuo server.
Alcuni fornitori non pubblicano nulla. AppLovin non ha un elenco dei tipi di dati per nessuno dei due store, e diversi SDK di analytics non hanno una corrispondenza per Play. Per questi, leggi la documentazione dell’SDK su ciò che trasmette e annota la lacuna. Non tirare a indovinare.
Passo 2: le domande di Google Play
Per ogni tipo di dato, Play chiede:
- Collected, shared, or both? (Raccolto, condiviso o entrambi?) “Collected” significa inviato fuori dal dispositivo. “Shared” significa inviato a una terza parte. Un fornitore di servizi che tratta i dati per tuo conto non conta come condivisione, e nemmeno i dati completamente anonimizzati. Per questo Firebase Analytics di solito è “collected, not shared” e un SDK pubblicitario di solito è “collected and shared”.
- Processed ephemerally? (Trattato in modo temporaneo?) Solo se i dati restano in memoria giusto il tempo necessario a servire quella singola richiesta, come una posizione inviata per ottenere il meteo e non salvata.
- Required or optional? (Obbligatorio o facoltativo?) Facoltativo significa che l’utente può scegliere se vengono raccolti.
- Why? (Perché?) Le finalità di Play sono: App functionality, Analytics, Developer communications, Advertising or marketing, Fraud prevention, security, and compliance, Personalization, Account management. Raccolta e condivisione hanno ciascuna le proprie finalità.
Poi due domande sulla sicurezza. I dati degli utenti sono tutti crittografati in transito? Solo
tu puoi verificarlo. Un solo endpoint in semplice http:// rende la risposta No. Gli utenti
possono richiedere la cancellazione? Puoi rispondere Sì se offri un modo per richiederla, oppure
se cancelli i dati automaticamente entro 90 giorni.
Se la tua app permette agli utenti di creare account, le domande Data deletion dello stesso modulo chiedono anche un link web dove gli utenti possono richiedere la cancellazione dell’account (i requisiti di Google Play sulla cancellazione dell’account). Vedi la guida all’URL per la cancellazione dell’account.
I dati di pagamento inseriti nella schermata di fatturazione di Google Play non vanno dichiarati, purché la tua app non vi acceda mai. I registri degli acquisti che la tua app o un SDK ricevono vanno comunque dichiarati da te.
Passo 3: le domande di Apple
Per ogni tipo di dato, Apple chiede la finalità e due domande sì/no:
- Linked to the user? (Collegato all’utente?) I dati contano come collegati a meno che non vengano anonimizzati prima di essere raccolti. Un account, un id utente o un id del dispositivo bastano a collegarli.
- Used for tracking? (Usato per il tracciamento?) Tracciamento significa combinare i dati della tua app su un utente o un dispositivo con i dati di altre aziende per annunci mirati o per la misurazione degli annunci, oppure condividerli con un data broker. Un SDK può farlo anche se tu non usi mai quella funzione. Se qualcosa viene usato per il tracciamento, l’app deve prima chiedere il permesso tramite App Tracking Transparency (user privacy and data use di Apple).
Le finalità di Apple sono: Third-Party Advertising, Developer’s Advertising or Marketing, Analytics, Product Personalization, App Functionality, Other Purposes.
Apple ti permette di omettere un tipo di dato solo quando valgono tutte e quattro le condizioni. Non deve essere usato per il tracciamento o la pubblicità. Deve essere raccolto solo di rado, al di fuori della funzione principale dell’app, e a scelta dell’utente. E l’utente deve fornirlo consapevolmente ogni volta. La maggior parte dei dati degli SDK non soddisfa la prima condizione.
Le tre risposte che si sbagliano più spesso
- «Non raccogliamo nulla.» I crash reporter e gli SDK di analytics inviano identificatori del dispositivo e dati diagnostici, anche quando il tuo codice non invia nulla.
- “Not shared” per un SDK pubblicitario. Le reti pubblicitarie ricevono identificatori e interazioni per le proprie finalità pubblicitarie. Questa è condivisione.
- Un modulo che non coincide con l’informativa sulla privacy. Gli store leggono i due documenti insieme, quindi un disaccordo basta da solo. Scrivili entrambi partendo dallo stesso elenco. Vedi quando i due non coincidono.
Tenerlo aggiornato
Le risposte sono aggiornate solo quanto il tuo elenco di SDK. Quando aggiungi un SDK, aggiorna entrambi i moduli e l’informativa sulla privacy nella stessa modifica. Anche i fornitori rivedono le loro informative con le nuove versioni degli SDK.
Lascia che un assistente IA trovi gli SDK
La parte lenta è il passo 1, e un agente di programmazione aperto nel repository della tua app può farla al posto tuo: Claude Code, Cursor, Codex e simili. Il prompt qui sotto gli chiede di leggere solo i file di build e di nominare ogni SDK e ogni fatto sui dati insieme al file da cui proviene. Non gli chiede cosa raccoglie ciascun SDK. Il ricordo che un modello ha dell’informativa di un fornitore è un’ipotesi, e quella parte deve venire dal fornitore.
Risponde in un piccolo formato JSON che la dashboard di AppFoyer sa leggere. Senza AppFoyer, l’elenco che ti mostra nello step 2 resta comunque quello da cui compilare entrambi i moduli.
You are helping me fill in Google Play's Data safety form and Apple's App Privacy details for my mobile app. AppFoyer turns your answer into draft answers for both forms, using each SDK vendor's own published disclosure. Your job is only to find what is in the build — not to say what any SDK collects.
## About the app
- App name: [app name]
- Platforms: [Android, iOS or both]
## Step 1 — read the build files
Read only the app's build, manifest and store-metadata files — for example `build.gradle(.kts)`, `gradle/libs.versions.toml`, `AndroidManifest.xml`, `Podfile.lock`, `Package.swift`, `Package.resolved`, `Info.plist`, `*.entitlements`, `PrivacyInfo.xcprivacy`, `pubspec.yaml`, `package.json`, `app.json`. Do not open `.env` files, keystores, credentials or any other secrets, and do not change any file. If you cannot read the code, ask me which SDKs the app uses instead.
Find:
1. Every third-party SDK in the build. Match it to one of these ids where it fits:
- `admob` — Google Mobile Ads (AdMob)
- `applovin-max` — AppLovin MAX
- `unity-ads` — Unity Ads
- `firebase-analytics` — Google Analytics for Firebase
- `mixpanel` — Mixpanel
- `amplitude` — Amplitude
- `meta-app-events` — Meta SDK — App Events
- `firebase-crashlytics` — Firebase Crashlytics
- `sentry` — Sentry
- `firebase-auth` — Firebase Authentication
- `google-sign-in` — Google Sign-In
- `meta-login` — Meta SDK — Facebook Login
- `revenuecat` — RevenueCat
- `firebase-messaging` — Firebase Cloud Messaging
- `onesignal` — OneSignal
An SDK that fits none of them goes under `otherSdks` with its package name. Never force a match.
2. Which of these facts are true, from the dependencies, permissions and usage-description keys:
- `account` — users sign in or create accounts
- `analytics` — usage analytics
- `ads` — advertising
- `crash` — crash reporting or diagnostics
- `location` — the app reads the device location
- `purchases` — in-app purchases or subscriptions
If none is true, the facts are `["none"]`.
Keep the file, and the line where you can, for every SDK and every fact. A README sentence is not evidence.
## Step 2 — confirm with me
Show me the list, grouped as SDKs, other SDKs and facts, each with its file. Ask me to confirm or correct it, and to add anything the build files cannot show — for example an SDK loaded at runtime. Wait for my answer.
## Step 3 — reply in AppFoyer's format
Reply with one ```json code block and nothing after it, exactly in this shape:
```json
{
"format": "appfoyer-store-forms/1",
"platform": "android | ios | both",
"sdks": [{ "id": "admob", "file": "app/build.gradle.kts", "line": 42 }],
"otherSdks": [{ "name": "com.example:tracker", "file": "app/build.gradle.kts", "line": 57 }],
"facts": [{ "fact": "ads", "file": "app/src/main/AndroidManifest.xml", "line": 12 }]
}
```
- `id` is one of the ids above, spelled exactly. `fact` is one of the facts above, or `none`.
- `line` is a number, or leave it out when you do not know it.
- Empty lists are `[]`. No comments inside the JSON.
- Do not describe what an SDK collects, and do not add fields.
Con AppFoyer
Ogni app nella dashboard ha una scheda Store forms. Spunta gli SDK inclusi nella tua build e la scheda prepara le bozze delle risposte Data safety e App Privacy a partire da quelli e dalle impostazioni della tua app. Ogni risposta indica la propria fonte: le risposte del fornitore stesso, il suo privacy manifest o la nostra lettura del suo elenco di dati. La scheda segnala un SDK che la tua informativa sulla privacy non menziona, e ti dà il link per la cancellazione dell’account da incollare. Il plugin di Claude Code compila l’elenco degli SDK dai tuoi file di build. Con un altro assistente, copia il prompt dalla scheda, eseguilo e incolla la risposta: la scheda mostra le risposte che ne derivano prima che venga salvato qualcosa. Le risposte le inserisci comunque tu in ciascuna console e le verifichi lì. Sono bozze, non consulenza legale. La scheda è gratuita in ogni piano.