當我準備把第一個 App 上架的時候,最讓我頭痛的不是程式碼,而是隱私政策。Google Play 和 App Store 都要求提供隱私政策 URL,而且不是隨便寫寫就好——你的隱私政策必須真正涵蓋你的 App 收集和處理個人資料的方式。這篇文章整理了我研究各項法規後的心得,特別針對在台灣的獨立開發者。
為什麼隱私政策很重要?
先講實際面。沒有隱私政策,你的 App 根本上不了架。Google Play 從 2024 年起要求所有 App 都必須有隱私政策,App Store 也是一樣。更重要的是,如果你的 App 有投放廣告(特別是 AdMob),廣告 SDK 會收集使用者資料,這些都需要在隱私政策中揭露。
除了上架需求,隱私政策也是法律義務。即使你只是一個人在台灣做獨立開發,你的 App 一旦上架到全球市場,就可能受到不同國家法規的規範。
三大法規概覽
COPPA(美國兒童線上隱私保護法)
如果你的 App 可能有 13 歲以下的使用者(不管你有沒有刻意針對兒童),COPPA 就和你有關。這個法規的重點包括:
- 收集兒童個人資料前,必須取得家長的可驗證同意
- 不能收集超過必要範圍的兒童資料
- 必須在隱私政策中明確說明你收集哪些資料、如何使用
- 家長有權要求查看、刪除其孩子的資料
對我來說最直接的影響是廣告。如果你的 App 被歸類為「兒童導向」,就不能投放個人化廣告。在 AdMob 中,你需要將廣告請求標記為「兒童導向處理方式」:
final adRequest = AdRequest(
extras: {'tag_for_child_directed_treatment': '1'},
);
這樣 AdMob 就只會提供適合兒童的非個人化廣告。eCPM 會降低,但這是法規要求,不能忽略。
GDPR(歐盟一般資料保護規則)
GDPR 是目前全球最嚴格的個人資料保護法規。只要你的 App 可能有歐盟使用者(而全球上架的 App 幾乎都有),你就需要遵守。重點包括:
- 合法基礎:收集資料必須有合法基礎,最常見的是「同意」
- 最小化原則:只收集真正需要的資料
- 透明度:清楚告知使用者你收集了什麼、為什麼收集
- 資料主體權利:使用者有權存取、更正、刪除其資料
- 資料外洩通知:如果發生資料外洩,必須在 72 小時內通知
實務上,這意味著你的 App 在首次啟動時可能需要顯示一個同意對話框,讓使用者選擇是否同意資料收集。如果你用了 AdMob,Google 提供了 User Messaging Platform (UMP) SDK 來處理同意流程:
import 'package:google_mobile_ads/google_mobile_ads.dart';
void requestConsent() {
final params = ConsentRequestParameters();
ConsentInformation.instance.requestConsentInfoUpdate(
params,
() async {
if (await ConsentInformation.instance.isConsentFormAvailable()) {
_loadConsentForm();
}
},
(error) {
debugPrint('同意資訊更新失敗: $error');
},
);
}
void _loadConsentForm() {
ConsentForm.loadConsentForm(
(consentForm) {
consentForm.show((formError) {
// 處理同意結果
});
},
(formError) {
debugPrint('同意表單載入失敗: $formError');
},
);
}
台灣個人資料保護法
身為台灣開發者,我們也需要了解本國的個資法。台灣個資法的主要規範包括:
- 告知義務:收集個資時必須告知當事人收集目的、資料類別、利用期間和方式
- 同意原則:除了法定例外情形,收集個資原則上需要取得當事人同意
- 目的限制:個資的利用不得超出原本收集的目的
- 安全維護:必須採取適當的安全措施保護個資
- 當事人權利:查詢、請求閱覽、請求複本、請求補充或更正、請求停止蒐集處理利用、請求刪除
台灣個資法的罰則雖然沒有 GDPR 那麼嚴厲,但仍然不能忽視。特別是如果你的 App 在台灣有大量使用者,遵守本國法規是基本的法律義務。
隱私政策必備內容
基於以上法規,一份完整的隱私政策應該包含以下章節:
1. 資料收集說明
明確列出你的 App 收集了哪些資料。以一個有 AdMob 廣告的 App 為例:
- 自動收集:裝置識別碼(Advertising ID)、IP 位址、裝置型號、作業系統版本
- 第三方 SDK 收集:Google AdMob 可能收集的廣告相關資料
- 不收集:如果你不收集使用者姓名、電子郵件等個人資料,也要明確說明
2. 資料使用目的
說明每類資料的使用目的,例如:
- 顯示廣告
- 分析 App 使用情況以改善服務
- Crash 報告與除錯
3. 第三方服務
列出你使用的所有第三方服務,並附上它們各自的隱私政策連結:
- Google AdMob
- Firebase Analytics
- Firebase Crashlytics
4. 兒童隱私
如果你的 App 可能有兒童使用者,這一段非常重要:
- 明確說明你是否刻意收集兒童的個人資料
- 說明你如何處理兒童導向的廣告
- 說明家長如何聯繫你要求刪除其孩子的資料
5. 使用者權利
說明使用者擁有哪些權利:
- 存取其個人資料
- 要求刪除其資料
- 選擇退出個人化廣告
- 聯繫你行使這些權利的方式
6. 聯絡資訊
提供一個有效的聯絡方式,通常是電子郵件地址。這是所有法規都要求的。
隱私政策的託管
隱私政策頁面需要是一個穩定、公開可存取的 URL。我的做法是直接放在我的開發者網站上,用靜態 HTML 頁面:
https://你的網域/privacy/app-name.html
這樣的好處是不需要額外的伺服器或服務,部署到 Cloudflare Pages 之類的靜態網站託管就好,穩定性高且完全免費。
每個 App 獨立一個隱私政策頁面是比較好的做法,因為不同 App 可能收集不同的資料、使用不同的第三方服務。
實務建議
用英文撰寫
雖然這篇文章是中文的,但我建議隱私政策本身用英文撰寫。理由是:
- 你的 App 上架到全球市場,英文是最通用的法律語言
- Apple 和 Google 的審查人員通常看英文
- 如果未來需要法律諮詢,英文版本更方便律師審閱
保持更新
每次你的 App 新增了資料收集功能、更換了第三方 SDK,或是法規有重大變更時,都要更新隱私政策。記得加上「最後更新日期」。
不要直接複製別人的
網路上有很多隱私政策範本,參考可以,但不要直接複製。每個 App 的情況不同,你的隱私政策應該準確反映你的 App 實際的資料收集行為。
結語
隱私政策可能是獨立開發中最不有趣的部分,但它是不可跳過的法律義務。好消息是,如果你的 App 功能相對單純(例如一個帶有 AdMob 廣告的休閒遊戲),隱私政策的內容不會太複雜。
我的建議是把隱私政策當作 App 開發流程的一部分,在第一版 App 上架前就準備好。這比事後被商店退件再匆忙補上要好得多。
如果你有更複雜的資料收集需求(例如使用者帳號系統、社交功能),建議還是諮詢專業的法律意見。這篇文章提供的是一般性的指引,不構成法律建議。
希望這篇整理對大家有幫助,讓我們一起做負責任的開發者!