Rehberler Mağaza formları ve SDK'lar
Google Play'in Data safety formu ve Apple'ın App Privacy ayrıntıları nasıl doldurulur
Her soru listesi ne sorar, SDK'larınız yanıtları nasıl değiştirir, en sık yanlış yanıtlanan üç soru ve her sağlayıcı gereken yanıtları nerede yayınlar.
Derlemenizdeki her SDK'yı listeleyin, her sağlayıcının kendi açıklama sayfasını ya da gizlilik manifestosunu açın ve hesaplar gibi kendi topladıklarınızı ekleyin. Ardından iki soru listesini de bu tek listeden yanıtlayın. Play neyin toplandığını, paylaşıldığını ve nedenini sorar. Apple aynısını sorar, ayrıca her veri türünün kullanıcıya bağlı olup olmadığını ve izleme için kullanılıp kullanılmadığını da sorar.
Bunun yerine birkaç dakikada halledin
AppFoyer, bu rehberin konusu olan sayfaları — gizlilik politikası, kullanım koşulları, destek, hesap silme ve app-ads.txt — kendi alt alan adlarında barındırır; size ait bir alan adı ya da sunucu gerekmez. Bir uygulama ücretsizdir ve bir mağazanın zorunlu tuttuğu hiçbir şey asla ödeme duvarının arkasında değildir.
25 Eylül 2026 tarihinde kontrol edildi. Mağaza politikaları bazen haber vermeden değişir. Aşağıdaki her şey resmî belgelere bağlantı verir ve yetkili kaynak bu sayfa değil, o sayfadır. İkisi çelişirse mağaza haklıdır. Bu rehber İngilizceden çevrilmiştir; mağaza belgelerinden yapılan alıntılar orijinal İngilizce hâliyle korunmuştur.
Uygulamanızın cihazdan dışarı gönderdiği her şeyin, SDK’lar dahil, tek bir listesini yapın ve iki soru listesini de ondan yanıtlayın. Google Play’in Data safety formu ve Apple’ın App Privacy ayrıntıları aynı olguları farklı kelimelerle sorar. Yanıtlarınız iki ayrı hafızadan geldiğinde birbirinden uzaklaşır.
Google Play’deki her uygulama, hiçbir şey toplamayan bir uygulama dahil, Data safety formunu doldurmak zorundadır. Yalnızca dahili test kanallarında yayında olan uygulamalar muaftır (Google Play’in Data safety yardımı). Apple, App Store’daki her uygulama için App Privacy ayrıntılarını ister (Apple’ın App Privacy ayrıntıları).
Formlar nerede
- Google Play: Play Console → uygulamanız → App content → Data safety.
- App Store: App Store Connect → uygulamanız → App Privacy.
1. adım: listeyi oluşturun
- Her üçüncü taraf SDK. Bağımlılık dosyalarınızı okuyun:
build.gradle/libs.versions.toml,Podfile/Package.swift,pubspec.yaml,package.json. İki mağaza da bir SDK’nın topladıklarını sizin topladığınız sayar. Apple, sizin yazmadığınız kod dahil uygulamanızdaki tüm koddan sizi sorumlu tutar. - Her birinin ne gönderdiği. Sağlayıcının kendi sayfasını kullanın. Bazı sağlayıcılar,
RevenueCat, Unity Ads ve OneSignal dahil, yanıtlarını doğrudan Play’in kendi terimleriyle yayınlar.
Google, AdMob ve her Firebase ürünü için tablolar yayınlar. iOS’ta güncel SDK’ların çoğu bir
gizlilik manifestosuyla (
PrivacyInfo.xcprivacy) gelir. Derlemenizdeki tüm manifestoları tek sayfada görmek için Xcode’da Organizer’ı açın, bir arşive sağ tıklayın ve Generate Privacy Report’u seçin (Apple’ın gizlilik manifestosu belgeleri). - Kendi topladıklarınız. Hesaplar (e-posta, kullanıcı kimliği), arka ucunuzun sakladığı her şey, kendi kodunuzun okuduğu konum, sunucunuzun tuttuğu satın alma kayıtları.
Bazı sağlayıcılar hiçbir şey yayınlamaz. AppLovin’in iki mağaza için de bir veri türü listesi yoktur ve birkaç analiz SDK’sının Play eşlemesi yoktur. Bunlar için SDK’nın neyi ilettiğine dair kendi belgelerini okuyun ve eksikliği not edin. Tahmin etmeyin.
2. adım: Google Play’in soruları
Play her veri türü için şunları sorar:
- Collected, shared, or both? (Toplanıyor mu, paylaşılıyor mu, yoksa ikisi de mi?) “Collected” (toplanan), cihazdan dışarı gönderilen demektir. “Shared” (paylaşılan), üçüncü bir tarafa gönderilen demektir. Verileri sizin adınıza işleyen bir hizmet sağlayıcı paylaşım sayılmaz, tamamen anonimleştirilmiş veriler de sayılmaz. Bu yüzden Firebase Analytics genellikle “collected, not shared” (toplanan, paylaşılmayan), bir reklam SDK’sı ise genellikle “collected and shared” (toplanan ve paylaşılan) olur.
- Processed ephemerally? (Geçici olarak mı işleniyor?) Yalnızca veri o tek isteği karşılayacak kadar bellekte tutuluyorsa; örneğin hava durumunu almak için gönderilen ve saklanmayan bir konum.
- Required or optional? (Zorunlu mu, isteğe bağlı mı?) İsteğe bağlı, kullanıcının toplanıp toplanmayacağını seçebildiği anlamına gelir.
- Why? (Neden?) Play’in amaçları şunlardır: App functionality, Analytics, Developer communications, Advertising or marketing, Fraud prevention, security, and compliance, Personalization, Account management. Toplama ve paylaşımın her biri kendi amaçlarını alır.
Ardından iki güvenlik sorusu gelir. Is all user data encrypted in transit? (Tüm kullanıcı
verileri aktarım sırasında şifreleniyor mu?) Bunu yalnızca siz kontrol edebilirsiniz. Tek bir düz
http:// uç noktası yanıtı No (Hayır) yapar. Can users request deletion? (Kullanıcılar silme
talep edebilir mi?) Talep etmenin bir yolunu sunuyorsanız ya da verileri 90 gün içinde otomatik
olarak siliyorsanız Yes (Evet) yanıtını verebilirsiniz.
Uygulamanız kullanıcıların hesap oluşturmasına izin veriyorsa, aynı formdaki Data deletion soruları ayrıca kullanıcıların hesap silme talep edebileceği bir web bağlantısı da ister (Google Play’in hesap silme gereksinimleri). Bkz. hesap silme URL’si rehberi.
Google Play’in kendi faturalandırma ekranına girilen ödeme bilgileri, uygulamanız onlara hiç erişmediği sürece beyan edilmek zorunda değildir. Uygulamanızın ya da bir SDK’nın aldığı satın alma kayıtlarını ise yine sizin beyan etmeniz gerekir.
3. adım: Apple’ın soruları
Apple her veri türü için amacı ve iki evet/hayır sorusunu sorar:
- Linked to the user? (Kullanıcıya bağlı mı?) Veriler, toplanmadan önce kimliksizleştirilmedikçe bağlı sayılır. Bir hesap, bir kullanıcı kimliği ya da bir cihaz kimliği bağlamak için yeterlidir.
- Used for tracking? (İzleme için kullanılıyor mu?) İzleme, uygulamanızın bir kullanıcı ya da cihaz hakkındaki verilerini hedefli reklam veya reklam ölçümü için başka şirketlerin verileriyle birleştirmek ya da bir veri simsarıyla paylaşmak demektir. Siz o özelliği hiç kullanmasanız bile bir SDK bunu yapabilir. Herhangi bir şey izleme için kullanılıyorsa, uygulama önce App Tracking Transparency aracılığıyla izin istemelidir (Apple’ın kullanıcı gizliliği ve veri kullanımı sayfası).
Apple’ın amaçları şunlardır: Third-Party Advertising, Developer’s Advertising or Marketing, Analytics, Product Personalization, App Functionality, Other Purposes.
Apple bir veri türünü yalnızca dört koşulun her biri sağlandığında dışarıda bırakmanıza izin verir. İzleme ya da reklam için kullanılmamalıdır. Yalnızca seyrek olarak, uygulamanın ana işlevi dışında ve kullanıcının tercihiyle toplanmalıdır. Ve kullanıcı onu her seferinde bilerek sağlamalıdır. SDK verilerinin çoğu ilk koşulu karşılamaz.
En sık yanlış verilen üç yanıt
- “Hiçbir şey toplamıyoruz.” Çökme raporlayıcıları ve analiz araçları, kendi kodunuz hiçbir şey göndermese bile cihaz tanımlayıcılarını ve tanılama verilerini gönderir.
- Bir reklam SDK’sı için “Not shared” (paylaşılmıyor). Reklam ağları tanımlayıcıları ve etkileşimleri kendi reklam amaçları için alır. Bu paylaşımdır.
- Gizlilik politikasıyla çelişen bir form. Mağazalar ikisini birlikte okur, bu yüzden çelişki tek başına yeterlidir. İkisini de aynı listeden yazın. Bkz. ikisi çeliştiğinde.
Güncel tutmak
Yanıtlar ancak SDK listeniz kadar güncel olur. Bir SDK eklediğinizde, iki formu ve gizlilik politikanızı aynı değişiklikte güncelleyin. Sağlayıcılar da yeni SDK sürümleriyle açıklamalarını günceller.
SDK’ları bir yapay zekâ asistanına buldurun
Yavaş kısım 1. adımdır ve uygulamanızın deposunda açılmış bir kodlama ajanı bunu sizin için yapabilir: Claude Code, Cursor, Codex ve benzerleri. Aşağıdaki istem, ondan yalnızca derleme dosyalarınızı okumasını ve her SDK’yı ve veri olgusunu geldiği dosyayla birlikte adlandırmasını ister. Her SDK’nın ne topladığını sormaz. Bir modelin bir sağlayıcının açıklamasına dair hafızası bir tahmindir; o kısım sağlayıcıdan gelmelidir.
Yanıtını AppFoyer kontrol panelinin okuduğu küçük bir JSON biçiminde verir. AppFoyer olmadan da 2. adımda size gösterdiği liste, iki formu doldururken kullanacağınız listedir.
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.
AppFoyer ile
Kontrol panelindeki her uygulamanın bir Store forms sekmesi vardır. Derlemenizin içerdiği SDK’ları işaretleyin; sekme bunlardan ve uygulamanızın ayarlarından Data safety ve App Privacy yanıtlarının taslağını hazırlar. Her yanıt kaynağını belirtir: sağlayıcının kendi yanıtları, gizlilik manifestosu ya da onun veri listesine dair bizim yorumumuz. Sekme, gizlilik politikanızda geçmeyen bir SDK’yı işaretler ve yapıştırmanız için hesap silme bağlantısını verir. Claude Code eklentisi SDK listesini derleme dosyalarınızdan doldurur. Başka bir asistanla, istemi sekmeden kopyalayın, çalıştırın ve yanıtı geri yapıştırın: sekme, herhangi bir şey kaydedilmeden önce bu yanıtın gerektirdiği yanıtları gösterir. Yanıtları yine de her konsola siz girer ve orada kontrol edersiniz. Bunlar taslaktır, hukuki tavsiye değildir. Sekme her planda ücretsizdir.