GASで楽天市場ランキングAPIで人気商品情報の取得方法を解説

2021年9月10日

楽天が運営する楽天市場や楽天トラベルには、プログラムで情報を取得できる各種APIが用意されています。

楽天市場人気ランキングAPIを使い、Google Apps Script(GAS)で人気商品の情報を取得する方法を解説します。

楽天サービスには各種APIが用意

ECで有名な楽天グループは、楽天市場の他にも、楽天トラベル、楽天ブックス、楽天レシピといった様々なサービスを運営しています。

そうした楽天の各種サービスには、プログラムによって情報を取得できるAPIが用意されています。

上の画像には、楽天市場系APIと楽天ブックス系APIが掲載されています。

楽天市場を対象としたAPIだけでも6種類もあります。

  1. 楽天市場商品検索API
  2. 楽天市場ジャンル検索API
  3. 楽天市場タグ検索API
  4. 楽天市場ランキングAPI
  5. 楽天商品コード検索API
  6. 商品価格ナビ製品検索API

こうした楽天のAPIを活用することで、日本最大級のECサイトである楽天市場の情報を自動的に取得することが可能です。

楽天市場ランキングAPIで人気商品を自動取得

楽天が提供するサービスのAPIの中でも便利なものが「楽天市場ランキングAPI」です。

楽天市場ランキングAPIでは、楽天市場で人気の商品情報をAPI経由で取得することができます。

楽天市場の商品全体で人気のものだけでなく、特定のジャンルの商品に絞ったケースでも人気商品を抽出可能です。

さらに、年代(10~50代)や性別(男性・女性)といったユーザー属性を限定したランキングもAPIで自動取得できます。

楽天市場ランキングAPIを利用するだけで、人気を集めている商品を紹介するアプリやウェブサービス、ボットを作成できます。

楽天API利用申請手順(アプリID取得)

そこで、楽天APIの利用申請を行う手順を紹介します。

楽天APIを利用するには、APIのリクエストで必要なアプリIDを取得する必要があります。

1.楽天APIの利用申請を行う楽天ウェブサービスのページにアクセスし、「アプリID発行」をクリックします。

2.利用規約を確認し、アプリ新規作成フォームの入力欄を埋め、「規約に同意して新規アプリを作成」ボタンをクリックします。

3.アプリ登録が完了すると、アプリIDやシークレットキーやアフィリエイトIDが表示されるので、控えておきます。

以上の3Stepで楽天APIの利用申請と、APIキーの情報取得が完了です。

楽天市場ランキングAPIのテスト方法

楽天ウェブサービスの各種APIは、リクエストするAPIの取得情報や、パラメータのテスト可能なページが用意されています。

楽天市場ランキングAPIで特定ジャンルに絞った人気商品を知りたい場合は、そのジャンルのカテゴリIDが必要ですが、楽天市場ジャンル検索APIがあります。

最も親ジャンルのIDは0なので、genreIdを0を指定してAPIのリクエストURLを生成し、GETボタンを押すと、第一階層のジャンル一覧が取得できます。

第一階層のジャンル名とジャンルIDがJSON形式で出力されます。

第一階層のジャンルIDを控えておき、再びそのジャンルIDで楽天市場ジャンル検索APIにリクエストすると、より細かなジャンルが取得可能です。

スイーツ・お菓子ジャンルをさらに細分化した、洋菓子やクッキー・焼き菓子、チョコレートなどの子ジャンルが表示されました。

そこで、今回はチョコレートの「201136」のジャンルIDを指定する形で、楽天市場ランキングAPIのテストページでリクエストします。

GETを実行すると、楽天市場ランキングAPIで取得した人気商品情報がjson形式で出力されます。

さらに、URLで表示されているAPIリクエストURLを利用すれば、Google Apps ScriptやPythonといったプログラミングによるAPIリクエストも可能です。

人気ランキングAPIを利用するGASサンプルコード

続いて、Google Apps Script(GAS)を使って、楽天市場ランキングAPIを利用する方法も紹介します。

先程の楽天市場ランキングAPIのテストページで取得した、APIのURLにリクエストを行い、商品情報を取得する処理をGASで実装します。

function getRankingItem() {
  //スクリプトに紐付いたスプレッドシートのアクティブなシートを取得
  let mySheet = SpreadsheetApp.getActiveSheet();
  //楽天商品ランキングAPIにリクエストするURLを定義
  let apiUrl = "https://app.rakuten.co.jp/services/api/IchibaItem/Ranking/20170628?format=json&affiliateId=215d90c2.35c906b0.215d90c3.+++++++++&genreId=201136&applicationId=1012***************";
  //定義したAPIのURLにHTTP_GETでリクエストし、レスポンスを取得
  let response = UrlFetchApp.fetch(apiUrl).getContentText();
  //レスポンスデータを処理できるようにJSONデータとしてパース
  let json = JSON.parse(response);
  //jsonデータをループ処理で配列に格納する処理
  let itemData = [];
  for(let i = 0; i < json['Items'].length;i++){
    //配列を2次元配列に変換
    itemData[i]= [];
    //スプレッドシートに記録できるように必要な情報を抽出し配列に格納
    itemData[i][0] = json['Items'][i]['Item']['itemName'];
    itemData[i][1] = json['Items'][i]['Item']['itemPrice'];
    itemData[i][2] = json['Items'][i]['Item']['shopName'];
    itemData[i][3] = json['Items'][i]['Item']['reviewCount'];
    itemData[i][4] = json['Items'][i]['Item']['reviewAverage'];
    itemData[i][5] = json['Items'][i]['Item']['affiliateUrl'];
  }
  //楽天商品ランキングAPIから取得した情報をスプレッドシートに書き込み
  mySheet.getRange(2, 1, itemData.length, itemData[0].length).setValues(itemData);
}

※リクエストするAPIのURLは一部伏せています。

定義した楽天市場ランキングAPIのURLにリクエストして取得したjsonデータから必要な情報を2次元配列に格納し、スプレッドシートに書き込むGASコードです。

このようにスプレッドシートに楽天市場ランキングAPIから取得した商品情報を出力できました。

書き出した楽天市場の人気商品情報をベースに人気商品として紹介するアプリやサービスに活用できます。

まとめ・終わりに

今回、Google Apps Script(GAS)で楽天市場ランキングAPIを利用して、人気商品情報を取得する方法を紹介しました。

楽天ウェブサービスには、楽天市場や楽天トラベルで利用できるAPIが多数用意されており、その中でも便利なのが楽天市場ランキングAPIです。

この楽天市場ランキングAPIを使えば、楽天市場でよく売れている人気商品情報を取得できます。

GASと組み合わせることで、楽天APIから商品情報を取得し、売れ筋商品を紹介するサービスやアプリが開発可能です。

さらに、楽天アフィリエイトも利用可能なので、マネタイズできるサービスが開発できます。

アイディア次第で楽天APIは様々な活用ができるので、ぜひGASと組み合わせて有益なサービスを作ってみましょう。