Google Play Purchase History.json 詳解
Purchase History.json 是 Google Play Takeout 匯出的核心檔案:它用機器可讀的方式列出你獲取過甚麼以及時間。本頁說明它的用途和總體結構,同時也會強調一個關於“保證”的重要限制。
先說限制:沒有公開結構規範
Google 沒有為 Play Takeout 檔案公開正式、帶版本的結構規範。下面所有內容都來自實際匯出結果中的觀察,包括我們自己的匯出以及社區記錄的樣本。不同賬號、內容類型和時間段的字段可能不同,Google 也可能隨時修改。這裡所說的一切都是“通常存在”,絕不是“契約保證”。
這個檔案是做甚麼的
在匯出檔案的 Google Play Store 資料夾中,Purchase History.json 記錄的是獲取行為:你獲得過的應用程式和游戲、進行過的應用程式內購買、開始過的訂閱。可以把它理解為買了甚麼、甚麼時候買。而花了多少錢通常在同目錄的 Order History.json 中,它更像交易賬本:金額、貨幣、付款和退款相關字段。
總體結構
檔案是一個 JSON 記錄數組。每條記錄描述一次獲取行為,通常包含:
- 項目說明:項目標題,以及通常用於區分 Android 應用程式和其他內容的類型。
- 購買時間戳:獲取發生的時間。
- 購買類型:例如區分應用程式購買、應用程式內購買或訂閱。
價格和付款詳情通常不在這個檔案里;那是 Order History 的職責。把兩個檔案關聯起來,才能得到某筆購買的“名稱 + 日期 + 價格”。
一個虛構示例
下面的片段僅為說明而虛構。它不是真實使用者資料,而且只是簡化示意,並不保證字段名稱。真實匯出中的嵌套方式或命名可能不同:
[
{
"purchase": {
"document": {
"type": "Android App",
"title": "Example Launcher (fictional)"
},
"purchaseTime": "2019-04-12T14:23:00Z",
"purchaseType": "App"
}
},
{
"purchase": {
"document": {
"type": "In-app item",
"title": "Example Game - Coin Pack (fictional)"
},
"purchaseTime": "2021-11-02T09:05:00Z",
"purchaseType": "In-app purchase"
}
}
]
應用程式、應用程式內購買、訂閱
在實際觀察到的匯出里,購買類型資訊可以幫助你區分使用者最關心的三大類別:
| 類別 | 一條記錄代表甚麼 | 需要注意 |
|---|---|---|
| 應用程式與游戲 | 一次性獲取某個應用程式或游戲(付費或免費) | 免費應用程式也可能出現:獲取 ≠ 付款 |
| 應用程式內購買 | 在應用程式內部購買的項目 | 記錄會寫明購買項目;所屬應用程式有時需要根據標題推斷 |
| 訂閱 | 訂閱相關事件 | 續訂與首次訂閱可能以不同方式記錄;金額請查看 Order History |
查看工具應忽略的字段
Order History.json 可能包含與付款方式有關的字段。一個規範的查看器或解析器應該在解析時直接丟棄這些字段:既不顯示,也不存儲。有價值的記錄是“買了甚麼、甚麼時候、花了多少”。銀行卡詳情對這些問題沒有幫助,只會增加風險。
分享時也應遵循同樣原則:購買記錄屬於個人資料。盡量讓匯出檔案留在本地,並對任何要求你上傳它的工具保持警惕。
JSON 交給我們處理。
App Purchase Vault 正處於 Android 測試版:選擇 ZIP,就能得到可搜尋歸檔,而且只在裝置上處理。