2015/03/19
AppStoreランキング情報を表示する
iTunes, JavaScript, jQuery今回はiOSアプリのAppStoreランキング情報を取得します。
ランキング情報の取得は、前回までのSearch APIと異なりRSSを利用します。 (iTunesのRSS Feed Generatorのサイトで確認できます) RSSフィードは一般的にXML形式で回答されますが、上記サイトではパラメータの指定によりJSONで取得することもできます。
以下は、日本のAppStoreマーケットの総合ランキングを取得するサンプルです。
サンプルコード
rss_url = "https://itunes.apple.com/jp/rss"; // 日本のマーケット(jp)を指定
rss_url = rss_url + "/topfreeapplications"; // 無料総合ランキング(iPhone)を指定 --- ①
rss_url = rss_url + "/limit=100"; // 100位までのランキングを取得 --- ②
rss_url = rss_url + "/json"; // JSON形式で取得
$.ajax({
type: 'GET',
url: rss_url,
dataType : 'json',
success: function(json){
var entries = json['feed']['entry']; // ランキング情報の格納位置を取得
jQuery.each(entries, function(cnt, entry) {
// --- ③
// ここで1~100位のApp情報を取得する
// 各アプリを識別するIDは、 entry['id']['attributes']['im:id'] で取得
// (SearchAPIのtrackIdと同値)
});
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
// エラー処理
},
complete : function(data) {
// Ajax通信完了
}
});
サンプルコードの説明
- サンプルコード① マーケットは有料/無料/Sales別、またiPhone/iPad別に指定する必要があります。
- サンプルコード② limitに指定できる最大値は変動する可能性があります。
- サンプルコード③ ここで1位から順にアプリの情報を取得します。
総合ランキングではなくジャンル別ランキングを取得する場合は、サンプルコードのrss_urlに以下を追加します。
rss_url = rss_url + "/genre=ジャンルID"; // ジャンルID はSearch APIで取得可
ランキング順に表示するだけであれば、このRSSフィードだけで十分です。
「特定のアプリの順位が知りたい」場合は、まずSearch APIでアプリを検索して、取得したtrackIdとサンプルコード③のid (entry['id']['attributes']['im:id'])でマッチングして順位を求める必要があります。
(上記RSSフィードを使用した画面 : iOSアプリ ランキング検索(β版))
次に、このRSSフィードを使用して、所謂「AppStoreランキングサイト」を構築する場合を考えてみます。
利用者が検索したiPhone(iPad)アプリの順位変動グラフを表示したりするサイトです。そのようなサイトを構築する場合は、以下の考慮が必要になってきます。
- ランキング情報(RSSフィード)の取得タイミング
- 取得したデータのキャッシュ領域・容量
- 順位変動グラフの表示期間
- ターゲットとするユーザ
- その他iTunes利用規約等
AppStoreのランキングが更新されるのは数時間に1回程度なので、あまり頻繁にRSSを取得しても意味がありません。 また、順位変動グラフを表示する為には、ランキングインしたアプリの全情報をキャッシュしておく必要がありますので、容量の見積も必要です。 ターゲット・ユーザについても、購入を目的としている利用者と、順位の確認をしたいデベロッパーとでは見せる情報も異なります。
現在、すでに多くのAppStoreランキング・サイトがあり、これから後発組として参入するのは厳しいかもしれません。それでも、ターゲットを特定したり、オリジナル機能を付加することにより、今からでも人気サイトを育てる余地は充分あると思います。
関連記事:「Search APIを使ってiOSアプリの詳細情報を表示する」