App Purchase Vault
Takeout · 技術說明

Google Play Purchase History.json 詳解

Purchase History.json 是 Google Play Takeout 匯出的核心檔案:它用機器可讀的方式列出你獲取過甚麼以及時間。本頁說明它的用途和總體結構,同時也會強調一個關於“保證”的重要限制。

更新於:2026年9月 · App Purchase Vault 項目 · 閱讀約 6 分鐘

先說限制:沒有公開結構規範

Google 沒有為 Play Takeout 檔案公開正式、帶版本的結構規範。下面所有內容都來自實際匯出結果中的觀察,包括我們自己的匯出以及社區記錄的樣本。不同賬號、內容類型和時間段的字段可能不同,Google 也可能隨時修改。這裡所說的一切都是“通常存在”,絕不是“契約保證”。

這個檔案是做甚麼的

在匯出檔案的 Google Play Store 資料夾中,Purchase History.json 記錄的是獲取行為:你獲得過的應用程式和游戲、進行過的應用程式內購買、開始過的訂閱。可以把它理解為買了甚麼、甚麼時候買。而花了多少錢通常在同目錄的 Order History.json 中,它更像交易賬本:金額、貨幣、付款和退款相關字段。

總體結構

檔案是一個 JSON 記錄數組。每條記錄描述一次獲取行為,通常包含:

價格和付款詳情通常不在這個檔案里;那是 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 可能包含與付款方式有關的字段。一個規範的查看器或解析器應該在解析時直接丟棄這些字段:既不顯示,也不存儲。有價值的記錄是“買了甚麼、甚麼時候、花了多少”。銀行卡詳情對這些問題沒有幫助,只會增加風險。

分享時也應遵循同樣原則:購買記錄屬於個人資料。盡量讓匯出檔案留在本地,並對任何要求你上傳它的工具保持警惕。

我們如何使用這些資料App Purchase Vault(目前處於 Android 測試版)會在你的手機上解析這些檔案:Purchase History 提供項目和日期,Order History 提供金額,並在解析時丟棄敏感付款字段。上面提到的“容忍結構變化”是設計要求,不是事後補丁。

JSON 交給我們處理。

App Purchase Vault 正處於 Android 測試版:選擇 ZIP,就能得到可搜尋歸檔,而且只在裝置上處理。

瞭解這個思路