Privacy Nutrition Label jsou štítky soukromí v App Store, které uživateli ukazují, jaká data aplikace shromažďuje a k jakým účelům. Apple vyžaduje, aby každá aplikace měla před publikací nebo aktualizací vyplněný štítek. Podle Apple App Privacy Details pokrývají štítky soukromí 14 kategorií dat a 5 účelů shromažďování, od analytiky po personalizaci obsahu.
Hlavní body
Privacy Nutrition Label je vizuální blok na stránce aplikace v App Store, který zobrazuje souhrn shromažďování dat. Apple zavedl štítky v prosinci 2020 jako analogii nutriční hodnoty na produktech: místo kalorií a tuků uživatel vidí, jaká data aplikace shromažďuje a jak jsou používána.
Štítky se skládají ze dvou částí: „Data používaná ke sledování" a „Data spojená s uživatelem". V první jsou uvedena data předávaná třetím stranám ke sledování. Ve druhé — všechna data, která aplikace shromažďuje a spojuje s účtem nebo zařízením uživatele.
Každý datový prvek je označen barvou: žlutá (data spojená s uživatelem) nebo zelená (data nespojená s uživatelem). Čím více žlutých štítků, tím více pozornosti uživatel věnuje tomu, jaká data jsou shromažďována. Podle údajů Adjust (2024) mají aplikace s 8+ žlutými štítky o 22% méně konverzí instalací.
Vyplňování štítků probíhá v App Store Connect prostřednictvím webového rozhraní. Vývojář odpovídá na otázky: zda aplikace shromažďuje určitý typ dat, zda je spojen s uživatelem a k jakým účelům se používá. Apple nekontroluje pravdivost štítků programově, ale nesoulad prohlášení se skutečným chováním může vést k odmítnutí.
Apple oznámil štítky na WWDC 2020 spolu s iOS 14. Původně byly součástí širší iniciativy na ochranu soukromí, včetně ATT a Privacy Manife. Vyplňování štítků se stalo povinným pro všechny aplikace a aktualizace od 8. prosince 2020.
Štítky byly odpovědí Apple na rostoucí pozornost regulátorů a uživatelů vůči shromažďování dat. Na rozdíl od GDPR a CCPA, které vyžadují formální souhlas, Apple kladl důraz na transparentnost: uživatel okamžitě vidí, jaká data jsou shromažďována, ještě před instalací aplikace.
V roce 2022 Apple přidal štítkům interaktivitu: uživatel může kliknout na každou kategorii a zjistit, k jakým účelům se data používají. V roce 2024 Apple začal vyžadovat, aby štítky odpovídaly datům deklarovaným v Privacy Manife uvnitř binárního souboru.
Google zavedl podobnou sekci „Bezpečnost dat" (Data Safety) v Google Play v dubnu 2022. Hlavní rozdíl: Google kontroluje štítky prostřednictvím automatického skenování kódu a může požádat vývojáře o potvrzení, zatímco Apple spoléhá na prohlášení vývojáře s kontrolou při recenzi.
Kromě toho Google Play vyžaduje uvedení bezpečnostních opatření (šifrování dat v klidu a při přenosu, soulad s bezpečnostními programy). Apple tyto informace nevyžaduje, ale kontroluje splnění požadavků prostřednictvím povinných funkcí, jako je ATS (App Transport Security).
Apple neanalyzuje kód aplikace pro vyplnění štítků — vývojář samostatně deklaruje shromažďovaná data. V roce 2024 však Apple začal porovnávat štítky s Privacy Manife uvnitř binárního souboru, což proces formalizuje.
Vývojář vstoupí do App Store Connect → vybere aplikaci → sekce „Soukromí aplikace" → „Štítky soukromí". Otevře se dotazník s otázkami pro každou ze 14 kategorií dat. Pro každou kategorii je třeba uvést: zda tento typ dat shromažďujete, zda je spojen s uživatelem (linked) a k jakým účelům.
Účely shromažďování zahrnují: reklamu třetích stran, analytiku vývojáře, vývoj produktu (Product Personalization), personalizaci obsahu, provádění funkcí aplikace (App Functionality). Jedna kategorie dat může být použita pro více účelů. Důležité: pokud jsou data předávána třetím stranám, musí to být označeno jako sledování.
Po uložení změn Apple vygeneruje novou verzi štítků, která se zobrazí v App Store do 24 hodin. Při odesílání nového sestavení jsou štítky automaticky kontrolovány: pokud nejsou vyplněny, tlačítko odeslání je blokováno. Apple Developer (2024) doporučuje aktualizovat štítky při každé změně logiky shromažďování dat.
Do roku 2024 byly štítky zcela self-reported — Apple důvěřoval odpovědím vývojáře. S příchodem Privacy Manife a integrací štítků s manifestem Apple zahájil automatické porovnávání. Pokud například manifest deklaruje shromažďování identifikátorů (IDFA) pro reklamu, ale štítky tuto kategorii neoznačují, App Store Connect zobrazí varování.
Úplná automatická kontrola však zatím neexistuje. Vývojář je povinen udržovat oba zdroje dat (štítky + manifest) v aktuálním stavu. Nesoulad může být odhalen při ruční kontrole recenzentem, zejména u velkých aktualizací nebo aplikací s velkým množstvím dat.
| Metoda kontroly | Apple | |
|---|---|---|
| Self-reporting | Ano, základ | Ano, základ |
| Automatická kontrola kódu | Částečně (od 2024, přes manifest) | Ano |
| Ruční kontrola recenzentem | Při podezření | Zřídka |
Apple rozděluje data do 14 kategorií seskupených do 3 sekcí: data používaná ke sledování; data spojená s uživatelem; data nespojená s uživatelem. Podívejme se na hlavní kategorie.
Kategorie „Kontaktní informace" zahrnuje jméno, e-mail, telefon, fyzickou adresu. Kategorie „Identifikátory" — IDFA, User ID, uživatelské jméno. Pokud aplikace používá přihlášení přes sociální sítě a získává e-mail uživatele, je třeba uvést tuto kategorii s účelem „Provádění funkcí".
Kategorie „Platební údaje" zahrnuje informace o nákupech: číslo karty (pokud není použito Apple Pay), historii nákupů. Apple Pay nevyžaduje uvedení této kategorie, protože Apple zpracovává platby na své straně a nepředává data vývojáři.
Kategorie „Data o použití" zahrnuje protokoly interakcí, kliknutí na reklamy, zobrazení stránek, dobu relace. Většina aplikací shromažďuje tato data pro analytiku. Důležité: pokud jsou data předávána třetím stranám (Google Analytics, Firebase), je třeba označit účel „Analytika".
Kategorie „Diagnostika" zahrnuje crash logy, data o výkonu, zprávy o spuštění. Tato data obvykle nejsou spojena s uživatelem (not linked) a jsou shromažďována v agregované podobě. Přesto by měla být zohledněna ve štítcích, pokud aplikace používá Crashlytics nebo Sentry.
Kategorie „Obsah uživatele" zahrnuje fotografie, video, audio, soubory, obsah vytvořený uživatelem (zprávy, komentáře). Pokud aplikace požaduje přístup k fotografiím nebo souborům, je tato kategorie povinná. I když aplikace pouze čte fotografie, považuje se to za shromažďování dat.
Kategorie „Historie nákupů" — agregovaná data o nákupech v aplikaci, předplatných, platbách. Nezaměňujte s „Finančními informacemi". Historie nákupů jsou metadata transakcí, nikoli platební údaje.
Podrobný návod k vyplnění Privacy Nutrition Label v App Store Connect pro novou nebo aktualizovanou aplikaci.
Před vyplněním štítků sestavte úplný seznam všech SDK a služeb, které shromažďují data: Firebase, AppsFlyer, Google Ads, Facebook SDK, Sentry, Amplitude. U každého SDK zkontrolujte, jaká data shromažďuje a zda je předává třetím stranám. Adjust (2024) doporučuje vést tabulku s typy dat, účely a propojením pro každé SDK.
Určete, jaká data přímo shromažďuje váš kód. Pokud například aplikace ukládá historii vyhledávání a spojuje ji s účtem uživatele — jedná se o „Data o použití" linked pro účel „Vývoj produktu". Vždy kontrolujte, zda data nejsou předávána třetím stranám (reklamní sítě, analytika).
V App Store Connect vyberte aplikaci → sekce „Soukromí aplikace". Klikněte na „Začít" a vyberte, zda vaše aplikace shromažďuje data pro sledování. Pokud ne, přejděte k dotazníku. Odpovězte na každou otázku postupně pro všech 14 kategorií dat.
Příklad: pokud aplikace používá Firebase Analytics, odpovězte „Ano" pro kategorii „Data o použití", uveďte linked (Firebase spojuje data s Instance ID) a účel „Analytika". Pokud také používáte Firebase Crashlytics, přidejte kategorii „Diagnostika" s účelem „Vývoj produktu".
Po vyplnění štítky uložte. Pokud máte více aplikací, štítky jsou pro každou jedinečné — kopírování není možné. Aktualizujte štítky při každé změně logiky shromažďování dat, jinak staré štítky nemusí odpovídat nové funkcionalitě.
// Příklad: kontrola odesílání dat pro analytiku
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
])
}
}
Pro aktualizaci štítků publikované aplikace otevřete verzi aplikace v App Store Connect a proveďte změny v sekci „Soukromí aplikace". Změny vstoupí v platnost po absolvování recenze. Nové štítky se uživatelům zobrazí do 24 hodin po publikaci aktualizace.
Důležité: odstranění dat ze štítků (například jste přestali předávat data třetím stranám) nevyžaduje nové sestavení — stačí změnit štítky v App Store Connect. Přidání nových dat vyžaduje jak změnu štítků, tak odpovídající aktualizaci Privacy Manife v kódu.
Vývojáři často dělají chyby při vyplňování štítků, což vede k odmítnutí aktualizací nebo stížnostem uživatelů.
Nejčastější chyba — vývojář vyplňuje štítky pouze na základě svého kódu a zapomíná na SDK třetích stran. Firebase, AppsFlyer, Facebook SDK a další shromažďují data automaticky bez dalšího kódu vývojáře. Firebase Analytics například shromažďuje data o použití (události, obrazovky) a identifikátory (Instance ID, IDFV).
Doporučení: pro každé integrované SDK si přečtěte sekci „Data Collected" v dokumentaci a přidejte odpovídající kategorie do štítků. AppsFlyer (2024) zveřejňuje seznam shromažďovaných dat pro každou verzi SDK, což vývojářům pomáhá kontrolovat štítky.
Mnoho vývojářů označuje data jako not linked, i když jsou spojena s účtem. Pokud má uživatel účet a ukládáte jeho jméno nebo e-mail — jedná se o linked. Pokud shromažďujete crash logy bez propojení s účtem — jedná se o not linked. Chyba v propojení může být považována za zavádění uživatele.
Data linked se zobrazují žlutě a přitahují více pozornosti uživatele. Pokud si nejste jisti, zda je konkrétní typ dat linked, raději uveďte linked a poskytněte vysvětlení při recenzi. Apple netrestá za nadměrné deklarování, ale může odmítnout za nedostatečné.
Pokud jsou data předávána třetím stranám a používána k cílené reklamě, musí být označena jako „Data používaná ke sledování". Někteří vývojáři skrývají sledování tím, že předávají data pod záminkou analytiky — to porušuje pravidla Apple a může vést k zákazu.
Pravidlo Apple: pokud jsou data předávána třetí straně a používána k personalizaci reklamy nebo atribuci — jedná se o sledování. I když aplikace sama nezobrazuje reklamy, ale používá Google Ads k atribuci instalací, data o zobrazeních jsou považována za sledování.
Staré štítky, které neodpovídají aktuální logice shromažďování dat — častý problém při dlouhodobé údržbě aplikace. Vývojáři mění SDK, přidávají nové funkce, ale zapomínají aktualizovat štítky. V důsledku toho uživatel vidí neaktuální informace, což snižuje důvěru.
Nejlepší praxe: při každé změně kódu související s daty zkontrolujte štítky a manifest. Doporučuje se nastavit CI kontrolu, která upozorňuje na nutnost aktualizace štítků při změně souborů PrivacyInfo.xcprivacy nebo seznamu SDK.
Často kladené otázky
Ano, štítky jsou povinné pro všechny aplikace, včetně bezplatných, bezplatných s nákupy a placených. Výjimkou jsou pouze aplikace v kategorii „Pro děti", kde jsou pravidla ještě přísnější.
App Store Connect neumožní odeslat sestavení k recenzi bez vyplněných štítků. Již publikované aplikace zůstávají v obchodě, ale bez štítků nemohou dostávat aktualizace.
Při každé změně logiky shromažďování dat: přidání nového SDK, změně účelů použití, předávání dat třetím stranám. Alespoň jednou za 6-12 měsíců zkontrolujte štítky podle aktuálního kódu.
Ano, každý uživatel může nahlásit nesoulad štítků se skutečným chováním aplikace prostřednictvím formuláře Apple. Po obdržení několika stížností může Apple provést kontrolu a odmítnout další aktualizaci.
Ano, štítky jsou viditelné na stránce aplikace, ale nezobrazují se ve výsledcích vyhledávání ani v doporučeních. Uživatel je vidí při prohlížení stránky aplikace před instalací.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také