Privacy Nutrition Label, App Store'da kullanıcıya uygulamanın hangi verileri topladığını ve hangi amaçlarla kullandığını gösteren gizlilik etiketleridir. Apple, yayınlama veya güncellemeden önce her uygulamanın doldurulmuş bir etikete sahip olmasını zorunlu kılar. Apple App Privacy Details'e göre, gizlilik etiketleri analitikten içerik kişiselleştirmeye kadar 14 veri kategorisini ve 5 toplama amacını kapsar.
Önemli Noktalar
Privacy Nutrition Label, App Store'da bir uygulamanın sayfasında veri toplamanın özetini gösteren görsel bir bloktur. Apple, Aralık 2020'de gıda ürünlerindeki besin değerlerine benzer olarak etiketleri tanıttı: kalori ve yağ yerine, kullanıcı uygulamanın hangi verileri topladığını ve nasıl kullanıldığını görür.
Etiketler iki bölümden oluşur: “İzleme İçin Kullanılan Veriler” ve “Kullanıcıyla İlişkili Veriler”. İlki, izleme için üçüncü taraflara iletilen verileri belirtir. İkincisi, uygulamanın topladığı ve kullanıcının hesabına veya cihazına bağladığı tüm verileri içerir.
Her veri öğesi bir renkle işaretlenir: sarı (kullanıcıyla ilişkili veriler) veya yeşil (kullanıcıyla ilişkili olmayan veriler). Ne kadar çok sarı etiket varsa, kullanıcı toplanan verilere o kadar fazla dikkat eder. Adjust (2024)'e göre, 8+ sarı etikete sahip uygulamaların yükleme dönüşümleri %22 daha düşüktür.
Etiketlerin doldurulması, App Store Connect'te web arayüzü aracılığıyla gerçekleşir. Geliştirici şu soruları yanıtlar: uygulama belirli bir veri türünü topluyor mu, kullanıcıyla ilişkili mi ve hangi amaçlarla kullanılıyor. Apple, etiketlerin doğruluğunu programlı olarak doğrulamaz, ancak beyan ile gerçek davranış arasındaki tutarsızlık reddedilmeye yol açabilir.
Apple, etiketleri WWDC 2020'de iOS 14 ile birlikte duyurdu. Başlangıçta, ATT ve Privacy Manifest'i de içeren daha geniş bir gizlilik girişiminin parçasıydılar. Etiketlerin doldurulması, 8 Aralık 2020'den itibaren tüm uygulamalar ve güncellemeler için zorunlu hale geldi.
Etiketler, Apple'ın veri toplamaya yönelik düzenleyicilerin ve kullanıcıların artan ilgisine verdiği yanıttı. Resmi onay gerektiren GDPR ve CCPA'nın aksine, Apple şeffaflığa odaklandı: kullanıcı, uygulamayı yüklemeden önce bile hangi verilerin toplandığını hemen görür.
2022'de Apple, etiketlere etkileşim ekledi: kullanıcı her kategoriye dokunabilir ve verilerin hangi amaçlarla kullanıldığını görebilir. 2024'te Apple, etiketlerin ikili dosya içindeki Privacy Manifest'te beyan edilen verilerle eşleşmesini zorunlu kılmaya başladı.
Google, Nisan 2022'de Google Play'de benzer bir “Veri Güvenliği” (Data Safety) bölümü sunmuştur. Temel fark: Google, otomatik kod taraması kullanarak etiketleri doğrular ve geliştiriciden onay isteyebilirken, Apple inceleme sırasında doğrulama ile geliştiricinin beyanına güvenir.
Ayrıca, Google Play güvenlik önlemlerinin (beklemede ve aktarım sırasında veri şifreleme, güvenlik programlarına uygunluk) belirtilmesini gerektirir. Apple bu bilgiyi istemez, ancak ATS (App Transport Security) gibi zorunlu özellikler aracılığıyla gereksinimlere uygunluğu doğrular.
Apple, etiketleri doldurmak için uygulamanın kodunu analiz etmez — geliştirici toplanan verileri bağımsız olarak beyan eder. Ancak 2024'te Apple, ikili dosya içindeki Privacy Manifest ile etiketleri çapraz referanslamaya başlayarak süreci daha resmi hale getirdi.
Geliştirici, App Store Connect'e gider → uygulamayı seçer → “Uygulama Gizliliği” bölümü → “Gizlilik Etiketleri”. 14 veri kategorisinin her biri hakkında sorular içeren bir anket açılır. Her kategori için şunları belirtmek gerekir: bu tür verileri topluyor musunuz, kullanıcıyla ilişkili mi ve hangi amaçlarla.
Toplama amaçları şunları içerir: üçüncü taraf reklamcılığı, geliştirici analitiği, ürün geliştirme, içerik kişiselleştirme ve uygulama işlevselliği. Bir veri kategorisi birden çok amaç için kullanılabilir. Önemli: veriler üçüncü taraflarla paylaşılıyorsa, izleme olarak işaretlenmelidir.
Değişiklikleri kaydettikten sonra Apple, 24 saat içinde App Store'da görünen yeni bir etiket sürümü oluşturur. Yeni bir derleme gönderirken etiketler otomatik olarak kontrol edilir: doldurulmamışsa gönderme düğmesi bloke edilir. Apple Developer (2024), veri toplama mantığındaki her değişiklikte etiketlerin güncellenmesini önerir.
2024'e kadar etiketler tamamen kendi kendine raporlanıyordu — Apple geliştiricinin yanıtlarına güveniyordu. Privacy Manifest'in tanıtılması ve etiketlerin bildirimle entegrasyonu ile Apple, otomatik çapraz referanslamaya başladı. Örneğin, bildirim reklam için tanımlayıcıların (IDFA) toplandığını beyan ediyor ancak etiketler bu kategoriyi işaretlemiyorsa, App Store Connect bir uyarı yayınlar.
Ancak tam otomatik doğrulama henüz mevcut değildir. Geliştirici her iki veri kaynağını da (etiketler + bildirim) güncel tutmalıdır. Tutarsızlıklar manuel inceleme sırasında, özellikle büyük güncellemeler veya büyük miktarda veriye sahip uygulamalar için tespit edilebilir.
| Doğrulama Yöntemi | Apple | |
|---|---|---|
| Kendi kendine raporlama | Evet, birincil | Evet, birincil |
| Otomatik kod doğrulaması | Kısmi (2024'ten itibaren, bildirim yoluyla) | Evet |
| Manuel inceleyici kontrolü | Şüphe durumunda | Nadiren |
Apple, verileri 3 bölüm halinde gruplandırılmış 14 kategoriye ayırır: izleme için kullanılan veriler, kullanıcıyla ilişkili veriler ve kullanıcıyla ilişkili olmayan veriler. Ana kategorileri inceleyelim.
“İletişim bilgileri” kategorisi ad, e-posta, telefon ve fiziksel adresi içerir. “Tanımlayıcılar” kategorisi IDFA, kullanıcı kimliği ve kullanıcı adını içerir. Uygulama sosyal giriş kullanıyorsa ve kullanıcının e-postasını alıyorsa, bu kategori “İşlev yürütme” amacıyla belirtilmelidir.
“Ödeme verileri” kategorisi satın alma bilgilerini içerir: kart numarası (Apple Pay kullanılmıyorsa) ve satın alma geçmişi. Apple Pay bu kategorinin belirtilmesini gerektirmez çünkü Apple ödemeleri kendi tarafında işler ve geliştiriciye veri iletmez.
“Kullanım verileri” kategorisi etkileşim günlükleri, reklam tıklamaları, sayfa görüntülemeleri ve oturum süresini içerir. Çoğu uygulama bu verileri analitik için toplar. Önemli: veriler üçüncü taraflarla (Google Analytics, Firebase) paylaşılıyorsa, “Analitik” amacı işaretlenmelidir.
“Teşhis” kategorisi çökme günlükleri, performans verileri ve başlatma raporlarını içerir. Bu veriler genellikle kullanıcıyla ilişkili değildir (not linked) ve toplu olarak toplanır. Buna rağmen, uygulama Crashlytics veya Sentry kullanıyorsa etiketlere yansıtılmalıdır.
“Kullanıcı içeriği” kategorisi fotoğrafları, videoları, ses dosyalarını, dosyaları ve kullanıcı tarafından oluşturulan içeriği (mesajlar, yorumlar) içerir. Uygulama fotoğraflara veya dosyalara erişim istiyorsa, bu kategori zorunludur. Uygulama yalnızca fotoğrafları okusa bile bu veri toplama olarak kabul edilir.
“Satın alma geçmişi” kategorisi, uygulama içi satın almalar, abonelikler ve ödemelerle ilgili toplu verileri içerir. Bunu “Finansal bilgiler” ile karıştırmayın. Satın alma geçmişi, işlem meta verileridir, ödeme ayrıntıları değildir.
Yeni veya güncellenmiş bir uygulama için App Store Connect'te Privacy Nutrition Label'ı doldurmak için adım adım kılavuz.
Etiketleri doldurmadan önce, veri toplayan tüm SDK'ların ve hizmetlerin tam bir listesini oluşturun: Firebase, AppsFlyer, Google Ads, Facebook SDK, Sentry, Amplitude. Her SDK için hangi verileri topladığını ve üçüncü taraflarla veri paylaşıp paylaşmadığını kontrol edin. Adjust (2024), her SDK için veri türleri, amaçlar ve bağlantı içeren bir tablo tutulmasını önerir.
Kendi kodunuzun hangi verileri topladığını belirleyin. Örneğin, uygulama arama geçmişini kaydediyor ve kullanıcının hesabına bağlıyorsa, bu “Kullanım verileri”dir ve “Ürün geliştirme” amacıyla ilişkilendirilmiştir. Verilerin üçüncü taraflarla (reklam ağları, analitik) paylaşılıp paylaşılmadığını her zaman kontrol edin.
App Store Connect'te uygulamayı seçin → “Uygulama Gizliliği” bölümü. “Başlayın” butonuna tıklayın ve uygulamanızın izleme için veri toplayıp toplamadığını seçin. Toplamıyorsa, ankete geçin. 14 veri kategorisinin tümü için her soruyu sırayla yanıtlayın.
Örnek: uygulama Firebase Analytics kullanıyorsa, “Kullanım verileri” kategorisi için “Evet” yanıtını verin, ilişkili (Firebase verileri Instance ID'ye bağlar) ve “Analitik” amacını belirtin. Ayrıca Firebase Crashlytics kullanıyorsanız, “Teşhis” kategorisini “Ürün geliştirme” amacıyla ekleyin.
Doldurduktan sonra etiketleri kaydedin. Birden çok uygulamanız varsa, etiketler her biri için benzersizdir — kopyalama desteklenmez. Veri toplama mantığındaki her değişiklikte etiketleri güncelleyin, aksi takdirde eski etiketler yeni işlevsellikle eşleşmeyebilir.
// Örnek: analitik için veri gönderiminin kontrolü
import FirebaseAnalytics
final class AnalyticsService {
static func logEvent(_ name: String, params: [String: Any]) {
Analytics.logEvent(name, parameters: params)
}
static func logPurchase(amount: Double, currency: String) {
Analytics.logEvent(AnalyticsEventPurchase, parameters: [
AnalyticsParameterValue: amount,
AnalyticsParameterCurrency: currency
])
}
}
Yayınlanmış bir uygulamanın etiketlerini güncellemek için, App Store Connect'te uygulama sürümünü açın ve “Uygulama Gizliliği” bölümünde değişiklik yapın. Değişiklikler incelemeden geçtikten sonra yürürlüğe girer. Yeni etiketler, güncelleme yayınlandıktan sonra 24 saat içinde kullanıcılara gösterilir.
Önemli: etiketlerden veri kaldırmak (örneğin, üçüncü taraflarla veri paylaşmayı bıraktınız) yeni bir derleme gerektirmez — sadece App Store Connect'te etiketleri değiştirin. Yeni veri eklemek, hem etiket değişikliklerini hem de kodda karşılık gelen Privacy Manifest güncellemesini gerektirir.
Geliştiriciler etiketleri doldururken sık sık hata yaparak güncellemelerin reddedilmesine veya kullanıcı şikayetlerine yol açar.
En yaygın hata, geliştiricilerin etiketleri yalnızca kendi kodlarına dayanarak doldurup üçüncü taraf SDK'ları unutmasıdır. Firebase, AppsFlyer, Facebook SDK ve diğerleri, geliştiricinin ek kodu olmadan otomatik olarak veri toplar. Örneğin, Firebase Analytics kullanım verilerini (etkinlikler, ekranlar) ve tanımlayıcıları (Instance ID, IDFV) toplar.
Öneri: entegre edilen her SDK için belgelerdeki “Toplanan veriler” bölümünü okuyun ve etiketlere ilgili kategorileri ekleyin. AppsFlyer (2024), her SDK sürümü için toplanan verilerin bir listesini yayınlayarak geliştiricilerin etiketleri doğrulamasına yardımcı olur.
Birçok geliştirici, veriler aslında bir hesaba bağlı olmasına rağmen not linked olarak işaretler. Kullanıcının bir hesabı varsa ve adını veya e-postasını kaydediyorsanız, bu linked'dir. Çökme günlüklerini bir hesaba bağlamadan topluyorsanız, bu not linked'dir. Bağlantıdaki bir hata, kullanıcıyı yanıltıcı olarak değerlendirilebilir.
Linked veriler sarı renkte gösterilir ve kullanıcının daha fazla dikkatini çeker. Belirli bir veri türünün linked olup olmadığından emin değilseniz, linked olarak işaretlemek ve inceleme sırasında bir açıklama sağlamak daha iyidir. Apple aşırı beyanı cezalandırmaz, ancak yetersiz beyan nedeniyle reddedebilir.
Veriler üçüncü taraflarla paylaşılıyorsa ve hedefli reklamcılık için kullanılıyorsa, “İzleme İçin Kullanılan Veriler” olarak işaretlenmelidir. Bazı geliştiriciler, verileri analitik olarak ileterek izlemeyi gizler — bu Apple'ın kurallarını ihlal eder ve yasaklamaya yol açabilir.
Apple'ın kuralı: veriler üçüncü bir tarafla paylaşılıyorsa ve reklam kişiselleştirme veya atıf için kullanılıyorsa, bu izlemedir. Uygulamanın kendisi reklam göstermese bile yükleme atıfı için Google Ads kullanıyorsa, görüntüleme verileri izleme olarak kabul edilir.
Mevcut veri toplama mantığıyla eşleşmeyen eski etiketler, uzun vadeli uygulama bakımında yaygın bir sorundur. Geliştiriciler SDK'ları değiştirir, yeni özellikler ekler ancak etiketleri güncellemeyi unutur. Sonuç olarak, kullanıcı güncel olmayan bilgileri görür ve bu da güveni azaltır.
En iyi uygulama: verilerle ilgili her kod değişikliğinde, etiketleri ve bildirimi kontrol edin. PrivacyInfo.xcprivacy dosyaları veya SDK listesi değiştiğinde etiketlerin güncellenmesi gerektiği konusunda uyaran bir CI kontrolü kurulması önerilir.
Sıkça Sorulan Sorular
Evet, etiketler ücretsiz, uygulama içi satın almalı ücretsiz ve ücretli uygulamalar dahil tüm uygulamalar için zorunludur. Tek istisna, kuralların daha da katı olduğu “Çocuklar için” kategorisindeki uygulamalardır.
App Store Connect, doldurulmuş etiketler olmadan inceleme için bir derleme göndermenize izin vermez. Halihazırda yayınlanmış uygulamalar mağazada kalır ancak etiketler olmadan güncelleme alamaz.
Veri toplama mantığındaki her değişiklikte: yeni bir SDK ekleme, kullanım amaçlarını değiştirme, üçüncü taraflarla veri paylaşma. En az 6-12 ayda bir etiketleri mevcut kodla karşılaştırın.
Evet, herhangi bir kullanıcı Apple'ın formu aracılığıyla etiketler ile gerçek uygulama davranışı arasındaki tutarsızlığı bildirebilir. Birden çok şikayet alındığında, Apple bir inceleme yapabilir ve bir sonraki güncellemeyi reddedebilir.
Evet, etiketler uygulama sayfasında görünür, ancak arama sonuçlarında veya önerilerde görüntülenmez. Kullanıcı, yüklemeden önce uygulama sayfasını görüntülerken bunları görür.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun