Hatena::ブログ(Diary)

(旧)サンフラットの開発日記 RSSフィード

新しい方の日記(はてなブログ)へ移動

2009/03/05

AppStoreのダウンロード数レポートを集計するスクリプト

f:id:sunflat:20090305104703p:image

iTunes Connect からダウンロードできる、AppStoreのダウンロード数レポート(S_W_*.txt や S_D_*.txt)を、集計するRubyスクリプトを作ったので、置いておきます。

上の図のような、アプリ別のダウンロード数のグラフや、アプリ別の売上のグラフを作るのに使えるかも。(グラフ化にはExcelを使用)

レポート内容をSQLite3のDBに入れて、SQLで集計しています。


ライセンスは、修正BSDライセンス

[ダウンロード]

準備

Windows + Ruby 1.8.6 [i386-mswin32] で動かしました。Macでも動くかも?

  • Ruby (1.8.x)をインストール
  • RubyGemsをインストール
  • SQLite3をインストール
  • gemコマンドを使って、sqlite3-rubyライブラリをインストール
    • gem install sqlite3-ruby
    • Windowsの場合は、最新版は未対応らしいので、バージョンを指定してインストール(参考)
      • gem install sqlite3-ruby --version '= 1.2.3'

使い方

  • あらかじめ、レポートはgzipで展開しておく
    • 例:gzip -d datas/S_W_*.gz
  • DBの作成: ruby create.rb レポートファイル名
    • 例:ruby create.db datas/S_W_*.txt datas/S_D_*.txt
    • 追記するのではなく、現在のDBを削除して、新たに作成するので注意
  • アプリ別ダウンロード数を集計: ruby analyze_units.rb
  • アプリ別売上高を集計: ruby analyze_royalities.rb
  • 国別ダウンロード数を集計: ruby analyze_country_units.rb
  • SQLite3で直接さわってみる
    • sqlite3 summary.db
    • 例:アプリ別の総売上高を確認
      • select appid, name, sum(royalty_sum) as royalty from summary, app where summary.appid=app.id and summary_type=2 and product_type=1 group by appid having royalty>0
  • 売上計算に使う為替レートがcommon.rbに書いてあるので、経済状況に合わせて修正してください。(本当は振り込み時の日付に応じたレートを使うべきだが、現状では一律で計算)

Excelへ読み込んでグラフ化

  • 生成されたreport-*.txtを[開く]で開く
  • 1列目は文字列として読み込む
    • 自動判定にすると、日付扱いになってしまい、週間グラフを描く時に日付が飛び飛びのグラフになってしまう
  • 適当に棒グラフや円グラフなどを描く

smile4usmile4u 2009/07/15 11:16 Mac OS X 10.5.7で、標準のRuby+SQLiteで動作しました。
とても役に立ちます。ありがとうございました。

sunflatsunflat 2009/07/15 14:04 おお、情報ありがとうございます

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/sunflat/20090305/p1