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 配列です。各レコードは 1 件の取得を表し、通常は次の情報を持ちます。
- 項目の説明:タイトルと、多くの場合は Android アプリなどのコンテンツ種別。
- 購入日時:取得が行われた時刻。
- 購入種別:アプリ購入、アプリ内購入、定期購入などを区別する情報。
価格や支払いの詳細は通常このファイルにはありません。それは Order History 側の役目です。2 つを対応付けることで、購入の「名前 + 日付 + 価格」を得られます。
架空の例
以下の断片は説明用に作った架空の例です。実際のユーザーデータではなく、項目名を保証するものでもない簡略図です。実際のエクスポートでは構造の入れ子や名称が異なる場合があります。
[
{
"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"
}
}
]
アプリ、アプリ内購入、定期購入
観察されたエクスポートでは、購入種別の情報によって、多くの人が知りたい次の 3 つの大きなカテゴリを分けられます。
| カテゴリ | レコードが表すもの | 注意点 |
|---|---|---|
| アプリ & ゲーム | アプリまたはゲームを 1 回取得した記録(有料・無料を含む) | 無料アプリも含まれる場合があります。取得 ≠ 支払いです |
| アプリ内購入 | アプリ内で購入した項目 | レコードには購入項目名があり、元のアプリはタイトルから推測が必要な場合があります |
| 定期購入 | 定期購入関連のイベント | 更新と初回の定期購入が別形式で記録される場合があります。金額は Order History で確認してください |
ビューアが無視すべき項目
Order History.json には支払い方法に関する項目が含まれる場合があります。適切なビューアやパーサーは処理時にそれらを破棄し、表示も保存もしないべきです。役立つ履歴は「何を、いつ、いくらで」です。カード情報はそこに価値を加えず、リスクだけを増やします。
共有についても同じ考え方です。購入履歴は個人データです。エクスポートはローカルに保管し、アップロードを求めるツールは慎重に扱ってください。
JSON の処理はおまかせ。
App Purchase Vault は Android ベータ版を提供中です。ZIP を選べば検索できるアーカイブに変換。処理は端末内だけで行います。