iTunes Connect のデータを自動的にダウンロードする

App Store に公開したアプリケーションの販売動向は、iTunes Connect で確認できる。タカラモノデイズというアプリケーションを公開したので、早速確認してみた。ダッシュボードで新規ダウンロード、アップロード、販売などをグラフで確認できるが、一ヶ月分しか表示できない。また、ダウンロード数もトップ10しか表示できず正確なマーケティングができない。正確なマーケティングが必要なのか?といわれると今のところ必要ないレベルではあるが、データは保持しておきたいので自動的にダウンロードする方法を模索した。

調べてみると、iTunesConnectからアプリダウンロード数レポートを取得する方法という記事を書いてくれている人を見つけた。どうやら、Auto-Ingest Instructions をダウンロードして使えばよいようだ。

Java のプログラムをダウンロードして動かしてみたが、Windows では動くが Linux でうまく動かない。原因を調べてもよいのだが、バージョンが変わるたびに動作検証をするのは面倒なので通信を解析して、同じ動作をするシェルを作成した。

#!/bin/bash

URL="https://reportingitc.apple.com/autoingestion.tft?"
USERNAME="<iTunes Connect にログインするメールアドレス>"
PASSWORD="<iTunes Connect にログインするパスワード>"
VNDNUMBER="<iTunes Connect のダッシュボードの上部に記述されている数字>"
TYPEOFREPORT="Sales"
DATETYPE="Daily"
REPORTTYPE="Summary"
REPORTDATE=`date -d '2 days ago' '+%Y%m%d'`
FILENAME="S_D_${VNDNUMBER}_${REPORTDATE}.txt"

wget --post-data="USERNAME=${USERNAME}&PASSWORD=${PASSWORD}&VNDNUMBER=${VNDNUMBER}&TYPEOFREPORT=${TYPEOFREPORT}&DATETYPE=${DATETYPE}&REPORTTYPE=${REPORTTYPE}&REPORTDATE=${REPORTDATE}" ${URL} -o /dev/null -O ${FILENAME}.gz

gzip -d ${FILENAME}.gz
sed -e "1d" ${FILENAME} | sed -e "s/\t/,/g" >> report.csv
rm -f ${FILENAME}
rm -f ${FILENAME}.gz

USERNAME、PASSWORD、VNDNUMBER を、自分の ID にあわせて設定すればよい。iTunes Connect のデータはリアルタイムに反映されないので、日付は2日前を指定しており cron で13:00頃起動している。その他のオプションは、iTunes Connect Sales and Trends Guide: App Storeを参照してほしい。
ダウンロードしてきたファイルは圧縮されているため展開し、sed で CSV に変換して report.csv に追記する。ファイル名などは、環境に合わせて修正してほしい。

ダウンロード対象日、誰もダウンロードせず、誰もアップデートしなかった場合、ファイルサイズは0になる(そんな悲しい日もあります)。ファイルサイズが0だったら処理しないようにしたり、iTunes Connect に接続できない場合はメールを送るかリトライするなどのエラー処理を追加すべきだが、現状、アプリケーションは1つだけなので、エラー処理は手動で行っている。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.