iTunes ConnectのiPhoneアプリのダウンロード数を自動取得

itunes-connect-capture

2014年1月5日: シェルスクリプトの内容を更新しました。

iPhoneアプリのダウンロードレポートをSQLで管理したい

iTunes ConnectのiPhone/iPadアプリダウンロードレポートは保存期間が短い上に、得られる情報が少ない。 Google Analyticsくらいまで細かい分析結果が得られると嬉しいのだけど・・・。 とりあえず、iPhoneアプリのダウンロード数の日次レポートを自動取得するように設定してみた。

iTunes Connectレポートの自動取得方法

Appleからレポート取得用ライブラリ(Java)が提供されています。 このライブラリを使えば、itunes connectの”Sales and Trends”にあるデータを全て取得できるようです。 ドキュメントは下記参照↓

iTunes Connect Sales and Trends Guide

Javaが必要、大きな流れとしては、こんな感じでしょうか。 サーバーの基本的な設定は済んであるものとしています。

  1. サーバー(VPS)にJAVAをインストール
  2. Autoingestion.classをダウンロード
  3. レポート取得用のコード作成 (シェルスクリプト)
  4. CRON設定

ちなみに使用しているサーバーはさくらのVPSでCentOS6 x86_64です。

1. サーバー(VPS)にJAVAをインストール

JDKをダウンロード

http://www.oracle.com/technetwork/java/javase/downloads/index.html 「Java SE 6 Update 33」リンクからjdk-6u33-linux-x64-rpm.binをインストール

ダウンロードしたJDK-RPMファイルをサーバーへ移動(wgetできないのでMac経由)

JDKをインストール

環境変数を設定

2. Autoingestion.classをダウンロード

下記URLからダウンロードしておきます。

3. レポート取得用のコード作成 (シェル)

下記のようなコマンドで取得できるみたいです。 取得形式はTSVでした。

java Autoingestion <username> <password> <vendorid> <report_type> <date_type> 
<report_subtype> <date_yyyymmdd>

Variable Value Notes
username
ユーザー名
Your user name The user name you use to log into iTunes Connect
password
パスワード
Your password The password you use to log into iTunes Connect
vendorid
ベンダーID
8####### (your unique  Vendor ID for the entity which you want to download the report
report_type
レポートタイプ
Sales This is the report type you want to download.  Currently only Sales Reports are available.
date_type
データタイプ
Daily or Weekly Selecting Weekly will provide you the Weekly version of the report. Selecting Daily will provide you 
report_subtype
レポートタイプ
Summary or Opt-In This is the parameter for the Sales Reports.
date
日付
YYYYMMDD This is the date of report you are requesting. If the value for Date parameter is not provided, you will get the latest report available.

シェルスクリプトを書いてみました。流れとしてはこんな感じ。

  1. iTunesConnectからデイリーレポートをダウンロード
  2. ダウンロードしたZipファイル解凍 & データを少し加工(インポートできる形に)
  3. Sqlite3にインポート
  4. 全データをTSV出力 (ついでに)

ディレクトリ構成は以下の通り。

前準備として、SQlite3のテーブルを作成しておきます。

getDailyReport.sh

※ デイリーレポートでは、過去30日までしか取れないみたいです。30日以降を指定すると下記のエラーメッセージが返ってきます。

4. CRON設定

一日一回動かします。(パスは自分の環境に合わせ変更)

レポートの形式について

気になるダウンロードできるレポートの形式ですが、上でも書きましたがTSV形式で、項目は下記の通りです。(「Category」は途中で追加されました。)

Provider APPLE
Provider Country US
SKU {‚あなたのアプリのSKU}
Developer {‚あなたのDeveloper名}
Title {ƒあなたのアプリタイトルƒ‹}
Version 2.01
Product Type Identifier 1T
Units 13
Developer Proceeds 0
Begin Date 7/12/12
End Date 7/12/12
Customer Currency JPY
Country Code JP
Currency of Proceeds JPY
Apple Identifier {アプリのApple Identifier}
Customer Price 0
Promo Code
Parent Identifier
Subscription
Period
Category

上記で「Product Type Identifier」という項目だけがよくわからなかったのですが、 それもドキュメントに下記のように書いてありました。 何のアプリなのか、新規なのか更新なのかということみたいです。

Product Type Identifier Type Description
1 Free or Paid Apps iPhone and iPod Touch,iOS
7 Updates iPhone and iPod Touch,iOS
IA1 In Apps Purchase, iOS
IA9 In Apps Subscription, iOS
IAY In Apps Auto-Renewable Subscription, iOS
IAC In Apps Free Subscription, iOS
1F Free or Paid Apps Universal, iOS
7F Updates Universal, iOS
1T Free or Paid Apps iPad, iOS
7T Updates iPad,iOS
F1 Free or Paid Apps Mac OS
F7 Updates Mac OS
FI1 In Apps Mac OS
1E Paid Apps Custom iPhone and iPod Touch, iOS
1EP Paid Apps Custom iPad, iOS
1EU Paid Apps Custom Universal, iOS

参照

iTunesConnectからアプリダウンロード数レポートを取得する方法