Reading Pal — 隱私權政策

生效日期:2026-05-23 — 最後更新:2026-07-15


1. 簡介

Reading Pal 是一款閱讀紀錄與番茄鐘計時應用程式,由 林承葦(Darren Lin)(個人開發者,台灣)所營運。本政策說明您在使用 Reading Pal 時,我們蒐集哪些個人資料、蒐集目的為何、向誰提供,以及您可行使的相關權利。

本政策適用於 Reading Pal 行動應用程式及其後端 API。不適用於您所連結的第三方服務(如 Google)——該等服務由其各自的隱私權政策所規範。


2. 我們蒐集的資料

(a) 帳號資料

欄位 來源 目的
電子郵件地址 您(於註冊時)或 Google OAuth 帳號識別、登入、帳號找回
顯示名稱 您或 Google OAuth 於應用程式內顯示
大頭貼網址 Google OAuth(如適用) 個人頭像
密碼雜湊值(bcrypt) 您(限電子郵件+密碼註冊) 身分驗證——我們從不儲存或查看您的明文密碼
語系與時區 於註冊時設定 介面在地化;確保通知於正確時間送達

(b) 驗證權杖

(c) 閱讀活動

(d) 裝置資料

欄位 目的
匿名裝置 ID(裝置端產生的 UUID) 將推播權杖與使用段落關聯至特定裝置,且不連結至手機硬體識別碼或 IMEI
FCM 推播權杖(Firebase 雲端訊息) 讓我們向您的裝置傳送推播通知
應用程式版本與作業系統版本 當機診斷;相容性確認

(e) 伺服器日誌

每次對後端的請求均記錄下列資訊: - IP 位址(用於流量限速、資安防護與濫用偵測——每 30 天自動輪替清除) - HTTP 方法、URL 路徑、回應狀態碼、回應延遲、請求 ID

我們在正式環境不記錄請求本文。

(f) 審計日誌

我們僅針對以下四種事件類型維護審計日誌:deletion_requesteddeletion_cancelleddeletion_executedexport_requested。每筆事件記錄下列資訊: - 時間戳記 - 事件類型 - 數字型使用者 ID - IP 位址、裝置 ID,以及您填寫的刪除原因(如有提供,上限 2,000 字)——這些後設資料欄位於帳號永久刪除時即設為 NULL;僅事件類型、時間戳記與數字型使用者 ID 於該時間點後繼續保存

這些記錄在您的帳號刪除後仍予以保留,並無限期保存以供法遵驗證之用——以證明我們已履行您的刪除或匯出請求。帳號永久刪除後,留存記錄已完全去識別化:僅包含事件類型、時間戳記,以及一個不再對應任何真實人士的數字型使用者 ID(帳號本身已不存在)。記錄中不含任何個人識別資訊,亦無任何閱讀內容。

(g) 當機與錯誤報告(透過 Sentry)

當應用程式當機或後端發生錯誤時,我們傳送至 Sentry 的報告包含: - 堆疊追蹤 - 您的數字型使用者 ID(不含電子郵件或顯示名稱) - 應用程式版本與環境標籤 - 請求 URL 路徑(已移除查詢字串)

我們不傳送:您的電子郵件地址、顯示名稱、IP 位址、請求本文、Cookie、更新權杖,或任何自由文字備註內容。

Sentry 保留這些報告 7 天(免費方案預設值)。Sentry 資料託管於歐盟區域de.sentry.io)。詳見第 4 節。

(h) 設定與偏好

(i) 遊戲化資料

(j) 分析資料(透過 Firebase Analytics / Google Analytics)

我們使用 Firebase Analytics(Google 服務)了解整體使用模式,以改善應用程式體驗。我們傳送的事件與參數嚴格限制於以下範圍:

事件/欄位 參數 目的
screen_view screen_namescreen_class 畫面瀏覽與離開點漏斗分析。值為不含個人識別資訊的路由字面(/library/library/[bookId]/profile/shop 等);動態 ID 已以字面佔位符取代
sign_uploginguest_start 認證漏斗轉換率。不附帶電子郵件或帳號資料
add_book category(如 fiction 閱讀漏斗起點與內容類型偏好分析。僅到類別代碼層級,絕無書名、書本內容或 ISBN
start_reading_session 閱讀漏斗:開始閱讀。不帶書籍 ID 或書名
complete_reading_session duration_bucket<1515-3030-6060+ 分鐘) 閱讀漏斗:完成閱讀及投入時長分布。僅使用粗分桶,絕無精確秒數
view_subscriptionbegin_purchasepurchase_success product_id(SKU 常數) 變現漏斗。product_id 為靜態 SKU 字串,非個人資料——不含購買憑證、金額或付款資訊
view_shopredeem_item item_id(商品常數) 商店漏斗。item_id 為靜態常數——不帶數量或餘額
rewarded_offer_shownrewarded_startedrewarded_earned 獎勵廣告漏斗:曝光→開始觀看→看完獲獎
Firebase 內建:engagement_timesession_startfirst_open 自動 Firebase SDK 自動採集的工程指標,我們未手動寫入

我們不傳送給 Firebase Analytics 的資料: 電子郵件地址、顯示名稱、書名、備註內容、閱讀時間戳記、精確閱讀時長、ISBN、購買憑證,或任何自由文字內容。

Firebase Analytics 也會自動將事件關聯至 App Instance ID(Firebase 產生的裝置安裝識別碼,清除應用程式資料或重裝即可重設)及 Android 上的 Android 廣告 ID(由 Google 管理的可重設裝置層識別碼)。這些識別碼由 Firebase SDK 自動收集,我們未手動附加。

Firebase Analytics 的資料由 Google 依其隱私條款處理。詳見第 4 節。


3. 我們如何使用您的資料

目的 使用的資料
提供服務——跨裝置同步書庫、紀錄閱讀段落、計算閱讀統計數據 第 2(a)、2(c)、2(h)、2(i) 節
身分驗證與帳號安全(權杖輪替、工作階段失效) 第 2(a)、2(b)、2(d) 節
推播通知(各類型嚴格採用戶主動開啟制——詳見第 10 節) 第 2(d) 節 FCM 推播權杖
當機診斷與服務穩定性 第 2(g) 節
資安防護——依 IP 與裝置的流量限速、驗證流程的詐欺偵測、防範撞庫攻擊 第 2(d)、2(e) 節
證明已履行刪除/匯出請求 第 2(f) 節
分析——了解整體使用模式並改善應用程式 第 2(j) 節

電子郵件驗證(電子郵件/密碼註冊): 當您以電子郵件與密碼註冊時,我們會透過 Resend 寄送一封含 6 位數驗證碼的驗證信,以確認您擁有該電子郵件地址。使用 Google 登入不會觸發此流程。

應用程式內廣告(Google AdMob): Reading Pal 透過 Google AdMob 投放廣告(僅限 Android;iOS 暫無廣告)。廣告形式共三種:書庫列表底部的 banner 廣告、閱讀時長達 13 分鐘以上的閱讀結束後全螢幕插頁廣告,以及使用者可主動選擇觀看以換取應用程式內積分的獎勵廣告。

提供給 AdMob 用於廣告投放、計量及防詐的資料:Android 廣告 ID(AAID,由 Google 管理的可重設裝置層識別碼)及情境/技術訊號(應用程式與裝置後設資料)。AAID 已由 Firebase Analytics SDK 收集(詳見上方第 2(j) 節);AdMob 沿用同一識別碼用於廣告用途。

獎勵廣告採用 AdMob 伺服器端驗證(SSV):我們傳送一個假名化的數字型使用者 ID 及自訂資料字串給 AdMob,僅用於驗證獎勵資格,不用於廣告定向

我們不會向 AdMob 或任何廣告商提供:您的電子郵件地址、顯示名稱、帳號資料、書庫內容或閱讀記錄。

歐盟/英國使用者: 廣告載入前會先執行 Google 使用者訊息平台(UMP)同意流程。若您拒絕同意或法規另有要求,則僅顯示非個人化廣告(或不顯示廣告)。未取得同意前不載入廣告(fail-closed)。

選擇退出: Android 設定 → 隱私 → 廣告 → 重設或刪除廣告 ID。


4. 資料存取對象(次處理者)

提供者 角色 共享資料 地區
Google(OAuth) Google 登入 標準 OpenID Connect 聲明(sub、email、name、picture) 全球
Google Firebase 雲端訊息(FCM) 推播通知傳遞 FCM 註冊權杖;推播通知標題與內容 全球
Google Firebase Analytics / Google Analytics 使用分析 第 2(j) 節所列應用程式互動事件與參數;App Instance ID;Android 廣告 ID(Android,SDK 自動收集) 全球
Google Play 應用程式發布與授權 標準安裝後設資料(不含閱讀資料) 全球
Sentry(Functional Software, Inc.,美國;資料託管於歐盟) 當機與錯誤監控 詳見第 2(g) 節——堆疊追蹤、數字型使用者 ID、版本、路徑 歐盟
Resend(Resend, Inc.,美國;寄送區域設定於歐盟—愛爾蘭) 交易性電子郵件遞送(驗證碼信) 電子郵件地址+驗證碼內容,僅於您以電子郵件/密碼註冊時傳送 歐盟(愛爾蘭)
Apple / APNs iOS 推播傳遞(僅於 iOS 版本上線後適用——目前為 Android 專用) APNs 裝置權杖+推播酬載 全球
Google AdMob 應用程式內廣告(Android) Android 廣告 ID(AAID)+ 情境/技術訊號;獎勵廣告 SSV 另傳送假名化數字型使用者 ID 供獎勵驗證(非用於廣告定向) 全球

我們從不將個人資料販售給任何第三方。


5. 個人資料的跨境傳輸

您的所有帳號、書庫及閱讀資料均儲存於 DigitalOcean 法蘭克福(德國,歐盟)資料中心(區域:FRA1)。歐盟使用者的資料不會離開歐盟境內。

Sentry 當機報告同樣使用 Sentry 的歐盟區域(de.sentry.io)。

部分次處理者(Google、AdMob)在全球範圍內運作,可能依其自身隱私條款在不同地區間傳輸資料以維持服務可靠性。


6. 您的權利

您可在應用程式中直接行使大多數權利,無需傳送電子郵件。

權利 行使方式
查閱 設定 → 帳號 → 「匯出我的資料」——立即產生完整 JSON 匯出檔供下載
更正 設定 → 個人頁面——直接編輯顯示名稱及其他個人資料欄位
刪除 設定 → 帳號 → 「刪除帳號」——啟動 30 天緩衝期。在此期間重新登入即可取消。30 天後,您的所有個人資料將從資料庫中永久刪除(依第 2(f) 節保留一筆去識別化審計記錄以供法遵驗證)。
可攜性 與查閱權相同的 JSON 匯出
限制處理 請傳送電子郵件(第 12 節)
拒絕行銷 設定 → 通知 → 「行銷推播」——關閉(預設值即為關閉)

歐盟/歐洲經濟區使用者: 您亦有權向所在國家的監管機關(如各國資料保護主管機關)提出申訴。

台灣使用者: 相關權利依據《個人資料保護法》行使。

我們將於收到請求後 30 天內予以回應。


7. 兒童

Reading Pal 並非針對 13 歲以下兒童設計。我們不會在知情情況下蒐集未滿 13 歲使用者的個人資料。如您認為有兒童建立帳號,請傳送電子郵件至 tn08869679@gmail.com,我們將刪除該帳號。


8. Cookie 與追蹤識別碼

Reading Pal 是行動應用程式,不使用網頁 Cookie。我們使用下列識別碼:

識別碼 類型 目的 可重設?
裝置 ID 於首次啟動時在本地端產生的匿名 UUID 工作階段與推播路由——不連結至硬體識別碼 是——解除安裝應用程式後重裝即產生新的識別碼
FCM 權杖 由 Firebase 指派 推播通知傳遞 是——Firebase 會定期更新;登出時亦會清除
Firebase App Instance ID 由 Firebase Analytics SDK 於安裝時指派 將分析事件關聯至同一次安裝 是——清除應用程式資料或重裝即重設
Android 廣告 ID Google(由 Firebase Analytics SDK 自動收集於 Android;AdMob 亦沿用同一識別碼) 分析事件關聯;AdMob 廣告投放與計量 是——設定 → 隱私 → 廣告 → 重設廣告 ID

9. 資料保存期限

資料類別 保存期限
帳號、書庫、閱讀段落、設定、成就、點數 使用期間保存;刪除帳號後進入 30 天緩衝期,期滿後永久刪除
審計日誌(刪除/匯出事件記錄——不含個人閱讀內容) 去識別化記錄(事件類型+時間戳記+不再對應任何真實人士的數字型使用者 ID)無限期保存,供法遵驗證;IP、裝置 ID 與使用者填寫的原因於帳號永久刪除時設為 NULL
伺服器存取日誌(IP 位址、請求後設資料) 30 天,到期後自動輪替清除
當機報告(Sentry) 7 天(Sentry 免費方案預設值)
更新權杖記錄 至權杖過期或明確撤銷為止
Firebase Analytics 事件資料 依 Google 的保留設定(使用者層級資料預設 2 個月;彙總報告由 Google 另行保留)。詳見 Google 資料保留說明

10. 行銷通訊

行銷推播通知預設為關閉。您可主動開啟:設定 → 通知 → 「行銷推播」。您可隨時在同一位置關閉。

我們不傳送行銷電子郵件。


11. 本政策的變更

重大變更(新增資料類別、新增次處理者、擴大現有資料用途)將透過應用程式內橫幅,於生效前 30 天公告。更新版本將標註日期。

輕微修訂(錯字修正、不影響您權利的說明澄清)將立即生效,不另行事先通知。

預先揭露的未來變更:

重大變更(新增資料類別、新增次處理者、擴大現有資料用途)將透過應用程式內橫幅,於生效前至少 30 天公告。


12. 聯絡方式

如有隱私相關問題、申訴,或應用程式內無法處理的刪除/查閱請求:

我們致力於在 30 天內回應。


13. 生效日期與版本歷程

版本 日期 摘要
1.0 2026-05-23 初始版本
1.1 2026-06-14 新增第 2(j) 節 Firebase Analytics 揭露;同步更新第 3、4、8、9、11 節
1.2 2026-06-23 應用程式內廣告(Google AdMob)由預計未來用途改為現行揭露;同步更新第 3、4、8、11 節
1.3 2026-06-23 審計日誌保留措辭改為去識別化、無限期保存(移除未實作的 6 個月刪除承諾);資料匯出時效改為即時
1.4 2026-07-15 新增 Resend 次處理者(email 註冊驗證信);新增 email 驗證流程揭露