跳至主要內容
AppFoyer
免費開始

指南 商店表單和 SDK

當你的 Data safety 表單與隱私權政策不一致時

同一個應用程式的兩份聲明,會被並排對照,卻往往相隔數月才寫成。兩者各是什麼、會在哪裡出現落差,以及如何從相依套件清單讓兩者一致。

兩者描述的是同一個應用程式,商店也會把它們放在一起看,所以不一致本身就是問題。修正要從應用程式本身著手,而不是以其中任何一份文件為準:列出建置中的每個 SDK,寫下每個 SDK 會傳送什麼,然後根據這一份清單填寫表單、重寫隱私權政策。

1:04
1:04 影片 · 在 YouTube 上開啟

改用幾分鐘完成這件事

AppFoyer 託管這篇指南所談的頁面:隱私權政策、服務條款、支援、帳戶刪除和 app-ads.txt,放在各自的子網域上,你不需要自己的網域或伺服器。一個應用程式免費,而且商店要求的任何內容都不會放在付費牆後面。

查核日期:2026年9月19日。 商店政策會變動,有時不會事先通知。以下所有內容都附上官方文件的連結,具有權威的是那個頁面,而不是本頁。如果兩者不一致,以商店為準。 本指南譯自英文;引用的商店文件保留英文原文。

你的 Data safety 表單和隱私權政策,是對同一個應用程式的兩份描述,而商店會把它們放在一起看。兩者不一致時,問題就在於不一致本身,而不在於哪一份剛好寫錯。Google Play 說得很直白:“When Google becomes aware of a discrepancy between your app behavior and your declaration, we may take appropriate action, including enforcement action.”(譯文:當 Google 發現你的應用程式行為與你的聲明不符時,我們可能會採取適當措施,包括執法行動。)

Apple 的結構相同,只是名稱不同:產品頁上的 App Privacy 詳細資料,加上必須提供的隱私權政策網址。

本頁談的是如何讓兩者保持一致,以及兩者都要拿來核對的第三樣東西:你的應用程式實際上做了什麼。

兩份文件簡介

Data safety 表單(Play Console → App content)和 App Privacy 詳細資料(App Store Connect)是結構化的聲明:核取方塊和類別,會在你的商店資訊頁上呈現為一份摘要,使用者在安裝前就會讀到。它們是對一份固定問卷的回答。

隱私權政策則是放在你自行託管的網址上的一段文字。它用句子說明同樣的事,再加上問卷裡沒有欄位可填的內容:你的法律依據、保存期限、聯絡方式、如何要求刪除。

兩者無法互相取代。隱私權政策不會替你填好表單,填完的表單也不代表你的政策正確無誤。

兩者在哪裡出現落差

它們相隔數月才寫成。隱私權政策在上架那一週寫好;表單則是在提交當天,由某個人對著相依套件清單填寫,之後再也沒有人回頭看政策。

加入了新的 SDK。你在某個衝刺中加了一個當機回報工具。pull request 裡完全沒有關於政策或表單的內容,所以兩者都沒有改。Google Play 明確表示這也算在內:資料收集“includes data collected and handled through any third-party libraries or SDKs used in their apps… You must reflect data collection or sharing carried out by such third-party code in the Data safety form for your app.”(譯文:包括透過其應用程式中使用的任何第三方程式庫或 SDK 所收集和處理的資料……你必須在應用程式的 Data safety 表單中反映這類第三方程式碼所進行的資料收集或分享。)Apple 的要求相同:“You need to identify all of the data you or your third-party partners collect.”(譯文:你需要指出你或你的第三方合作夥伴所收集的所有資料。)

功能上線了,揭露卻沒有跟上。為了「尋找附近」功能使用位置資訊,或是一套會把使用者 ID 分享給合作夥伴的推薦機制。工程工作大家都看得見;聲明的工作卻不在任何人的看板上。

其中一份用了範本。一份自動產生的政策,替一個沒有廣告的應用程式列出了廣告識別碼,這和遺漏一樣都是不一致,而且更容易被發現,因為它和你誠實填寫的表單互相矛盾。

讓兩者一致:唯一行得通的順序

從應用程式著手,而不是從任何一份文件著手。兩份文件都應該描述應用程式本身,所以拿其中一份去修正另一份,只會把錯誤搬來搬去。

  1. 打開你的相依套件檔案:build.gradle/libs.versions.toml、Podfile/Package.swift、pubspec.yaml、package.json。列出每一個第三方 SDK。
  2. 逐一寫下每個 SDK 會傳送什麼。當機回報工具會傳送裝置識別碼和堆疊追蹤。分析 SDK 會傳送事件,通常還有廣告 ID。廣告 SDK 傳送的東西又多得多。推播程式庫會註冊裝置權杖。這裡的依據是供應商自己的隱私權文件。
  3. 加上你自己收集的資料:帳戶、上傳的內容,以及你的後端儲存的任何東西。
  4. 檢查你宣告的權限和用途說明字串,這是應用程式能存取哪些東西的第二份、獨立的清單:ACCESS_FINE_LOCATION、NSLocationWhenInUseUsageDescription、相機、聯絡人、相片。
  5. 現在根據這份清單填寫表單,並且根據同一份清單重寫隱私權政策。兩者最後之所以一致,是因為它們來自同一個來源,而不是因為你逐項比對過。

需要持續更新的是這份清單,而不是表單。兩份聲明都是從它衍生出來的。

之後如何保持一致

聲明會在不知不覺中過時,所以檢查必須綁在一件不會悄悄發生的事情上。Google Play 有此要求:“Your Data safety form responses must remain accurate and complete at all times.”(譯文:你的 Data safety 表單回答必須隨時保持正確且完整。)Apple 也一樣:“You’re responsible for keeping your responses accurate and up to date.”(譯文:你有責任讓你的回答保持正確且為最新狀態。)

最省事又有效的做法,是在發布檢查清單上加一行:這次發布有沒有任何相依套件變動?如果有,重新檢查隱私權政策和表單。因為相依套件變動,正是會讓兩者同時失效的那個事件。

本頁無法告訴你的事

哪一套具體法規適用於你。GDPR、UK GDPR、CCPA/CPRA、LGPD 以及兒童隱私規定,各自對隱私權政策有特定要求,而哪些適用,取決於你的使用者在哪裡、你的應用程式做什麼。如果你的應用程式有任何不尋常之處,例如健康資料、兒童,或任何你會猶豫要不要用一句話解釋的東西,就值得花一小時請教律師。範本(包括我們的)只是起點,不是建議。

AppFoyer 在這裡做什麼

我們根據在你的建置檔案中找到的 SDK 起草隱私權政策,可以透過讀取儲存庫的程式設計代理,也可以透過一份簡短表單,讓隱私權政策和你提供給商店的答案來自同一份相依套件清單,而不是憑記憶。在列出第三方的預留位置被替換之前,檢查清單會持續標示這個頁面,因為審查人員正是拿這一節來和你的表單比對。

我們不會替你填寫 Data safety 表單,也沒有任何服務能這麼做:那是你在自己的主控台中簽署的聲明,而 Google Play 表示 “you alone are responsible for making complete and accurate declarations.”(譯文:只有你自己須負責提出完整且正確的聲明。)

權威來源