はじめに
現状、 App Store からのアプリのダウンロード数は App Store Connect API を含む App Store Connect 上からでのみ取得が可能になっており、外部への公開等が難しい状況にありました。
自分も個人アプリを開発をしておりショボい開発者並みにとっさに月のダウンロード数などを答えたいっていう場面がたまにあります。(もちろん MAU とか別の指標も大切だと思うよ)
そこで個人開発者向けに使ってくれる人がいればいいなぁというという淡い期待で CLI を作成しました。
生成物
このツールを使用して生成できるバッジは Shields.io を使用しており、カラースタイルは PyPI のダウンロード数を参考に実装しています。*1
0 DL → red 1 ~ 9 DL → yello 10 ~ 99 DL → yellogreen 100 ~ 999 DL → green 1,000 DL ~ → brightgreen
といった具合です。
https://github.com/nnsnodnb/app-store-download-count-badge-maker?tab=readme-ov-file#examples より
また、バッジは SVG で保存され、名前は Apple Identifier と頻度(Frenquency)で構成しています。
- Apple Identifier:
https://apps.apple.com/us/app/id◯◯◯◯◯◯◯◯◯◯?mt=8
の◯
の部分 - 頻度:
year
month
week
day
ちょっと面倒くさくなってまだ自分ではポートフォリオサイト等に追記していませんが、バッジ生成(後で記述)は行っているので気が向いたタイミングで追加を行っておきます。
使用方法・使用例
- Python 3.9 以上
$ pip install app-store-download-count-badge-maker
もしくは pipx
が導入されていれば
$ pipx install app-store-download-count-badge-maker
でインストールが可能です。
使用方法
App Store Connect から
Finance
権限を持つ API キーを生成- レポートを取得する API には Finance 権限が必要になるため
config.yml
を作成するツールを実行
dist
にバッジが生成される
使用例
GitHub Actions でスケジュール実行をして GitHub Pages にデプロイをするワークフローを定義して月1回実行をしています。
上記のように GitHub Pages の機能を使用し GitHub Actions から成果物をアップロードするような実装を行っています。あとは Web サイト等でこの URL を埋め込むだけで自動的に更新をすることが可能になります。
使用技術
今後の課題
Sales and Trends reports are available to download at the following times:
- Daily reports are available the following day.
- Weekly reports are available on Mondays.
- Monthly reports are available five days after the end of the month.
- Yearly reports are available six days after the end of the year.
Reports are generally available by 8 a.m. Pacific Time (PT).
引用:https://developer.apple.com/help/app-store-connect/reference/sales-and-trends-reports-availability
上記のように、レポートの更新は行われます。
例えば現状では日次レポートは3日前まで問答無用で遡って実行をしています。*2
したがって直前のデータが取得できないので実行時に現在時刻を参照して直近のレポートを取得してバッジを生成するようにすることが挙げられます。
最後に
リリースして3週間経ちましたがダウンロード数が約600に達して完全に停滞したのと、先述した課題周りの自分に対しての戒めとして記事を書きました。
もしこういう機能がほしいとか不具合とかあったら Issue 、 Pull Request 、 SNS 、直接会ったとき、ハガキ*3でもいいので教えてください!
名前長いので良い感じな名前考えたけど何も思いつかなかった(すでに取られていたり)
おまけ
このツールを開発している最中に1つのアプリが去年だけで 6,000件以上ダウンロードされていることを知って大変うれしく思いました。今や、旧 Twitter の API が有料化され*4とても個人じゃ賄えきれない利用料になってしまってアプリをほぼ使えない状態のまま放置しています。
当時は1日相当数のツイート*5がされたり、有名人の方が使ってくださったり*6、広告収入もそれなりと結構にぎわっていたのかなと思っています。
*1:参考にした程度なので確証はありません
*2:https://github.com/nnsnodnb/app-store-download-count-badge-maker/blob/bb38f6df47b08921db3821410469d20f017c306d/maker/const.py#L33
*3:テロはやめて
*4:https://developer.x.com/en/docs/x-api/getting-started/about-x-api
*5:Proプランが必要なほど
*6:ツイート検索したらわかること