表紙

コピペでできる! Google Apps ScriptでApp Store スクリーンショット情報ラクラク収集チュートリアル

ある時、施策検討のため、スクリーンショットを調べたいと思った。
しかし、手でスクショをいっぱい取るなんてダルすぎる・・・・

そうだ!API叩くの自動化して全部スプレッドシートにキレイにまとめてみよう!
と思いたちGoogle Apps Scriptで指定したアプリIDのスクショを収集するスクリプトを書くことにした。

対象者

●デザイナー
●アプリエンジニア
●マーケター

他社や同ジャンルのアプリのスクショを収集して、比較したり研究したい方
提案する際に、スクリーンショットの情報収集を楽にしたい方

何ができるようになるのか

アプリのIDを入力すると、iPhone,iPad,Apple TVのスクリーンショット一覧をスプレッドシートにまとめることができます。
なんて便利なの・・・・・Google Apps Script

また、日本語版や英語版の比較も簡単にできるようになります。
●日本語版

●英語版


導入手順

1.まずスプレッドシートを開きます

2.ツールの中のスクリプトエディタを選択します

3.スクリプトエディタの画面に遷移します。

4.コード.gsの画面の中に下記コードをコピペします


//検索したいappIDをいれておく
var appIDs = [363590051,333903271,972909677,443904275]

function myFunction(){
  var appCount = appIDs.length
  
  var lustCellNumber = 0
  
  //すべて終わるまでループ
  for(var appNumber = 1; appNumber <= appCount; appNumber++){
      //APIをたたく
    var response = UrlFetchApp.fetch("https://itunes.apple.com/lookup?id="+appIDs[appNumber-1]+ "&country=JP");
    //パースさせる
    var json=JSON.parse(response.getContentText());
  
      //スプレッドシートを取得
    var sheet = SpreadsheetApp.getActiveSheet();
    
    //セルの高さを固定する
    sheet.setRowHeight(appNumber, 200);
  
    //////////////////////////////////////////////////////////////////////////////
    //1行目*タイトルについて*
    //APIからかえってきたアプリのタイトルをスプレッドシートにいれる
    sheet.getRange(appNumber, 1).setValue(json["results"][0]["trackCensoredName"])
    //現在の列の位置を記録
    lustCellNumber += 1
    
      //////////////////////////////////////////////////////////////////////////////
    //2行目*説明について*
    //APIからかえってきたアプリの説明をスプレッドシートに入れる
    sheet.getRange(appNumber, 2).setValue(json["results"][0]["description"])
    //セルの折返しを設定する
    sheet.getRange(appNumber, 2).setWrap(true)
    //セルのフォントサイズを指定する
    sheet.getRange(appNumber, 2).setFontSize(5)
    //説明文を入れるセルの列幅を固定値にする
    sheet.setColumnWidth(2, 400)
    //現在の列の位置を記録
    lustCellNumber += 1
    
    //////////////////////////////////////////////////////////////////////////////
    //3行目以降*iPhoneスクリーンショットについて*
    //取得したスクリーンショットの数を数える
    var screenshotsCounts = json["results"][0]["screenshotUrls"].length
    
    //APIから帰ってきたiPhoneのスクリーンショットの数を習得し、そのぶんだけループを回す
    for(var screenshotsNumber = 0; screenshotsNumber <= screenshotsCounts; screenshotsNumber++){
        //セルに入力させる文字列を作る
       var func = "IMAGE(\"" + json["results"][0]["screenshotUrls"][screenshotsNumber] + "\")"
       //指定したセルに、作った文字列と関数を入れる
       sheet.getRange(appNumber, lustCellNumber + 1 + screenshotsNumber).setFormula(func)
       //指定したセルを中央揃えにする
       sheet.getRange(appNumber, lustCellNumber + 1 + screenshotsNumber).setHorizontalAlignment('center');
      //指定したセルの横の長さを固定する
       sheet.setColumnWidth( lustCellNumber + 1 + screenshotsNumber, 150)
    }
    //現在の列の位置を記録
    lustCellNumber += screenshotsCounts
    
    //////////////////////////////////////////////////////////////////////////////
    //*iPadスクリーンショットについて*
    var iPadScreenshotsCounts = json["results"][0]["ipadScreenshotUrls"].length
    
    //APIから帰ってきたiPadのスクリーンショットの数を習得し、そのぶんだけループを回す
    for(var screenshotsNumber = 0; screenshotsNumber <= iPadScreenshotsCounts; screenshotsNumber++){
        //セルに入力させる文字列を作る
       var func = "IMAGE(\"" + json["results"][0]["ipadScreenshotUrls"][screenshotsNumber] + "\")"
       //指定したセルに、作った文字列と関数を入れる
       sheet.getRange(appNumber, lustCellNumber + 1 + screenshotsNumber).setFormula(func)
       //指定したセルを中央揃えにする
       sheet.getRange(appNumber, lustCellNumber + 1 + screenshotsNumber).setHorizontalAlignment('center');
      //指定したセルの横の長さを固定する
       sheet.setColumnWidth( lustCellNumber + 1 + screenshotsNumber, 150)
    }
    //現在の列の位置を記録
    lustCellNumber += iPadScreenshotsCounts
    
    //////////////////////////////////////////////////////////////////////////////
    //*appleTVスクリーンショットについて*
    var tvScreenshotsCounts = json["results"][0]["appletvScreenshotUrls"].length
    
    //APIから帰ってきたiPadのスクリーンショットの数を習得し、そのぶんだけループを回す
    for(var screenshotsNumber = 0; screenshotsNumber <= tvScreenshotsCounts; screenshotsNumber++){
        //セルに入力させる文字列を作る
       var func = "IMAGE(\"" + json["results"][0]["appletvScreenshotUrls"][screenshotsNumber] + "\")"
       //指定したセルに、作った文字列と関数を入れる
       sheet.getRange(appNumber, lustCellNumber + 1 + screenshotsNumber).setFormula(func)
       //指定したセルを中央揃えにする
       sheet.getRange(appNumber, lustCellNumber + 1 + screenshotsNumber).setHorizontalAlignment('center');
      //指定したセルの横の長さを固定する
       sheet.setColumnWidth( lustCellNumber + 1 + screenshotsNumber, 150)
    }
    
    //現在の列の位置をリセット
    lustCellNumber = 0
  }
  
}

5.左上の三角ボタンを押すとアラートが出てくるので「はい」をおします

6.プロジェクト名を記入します

7.承認を要求されるので許可をおします

8.アカウントを選択してください

9.このようなアラートが出るのでしたの詳細をクリックします

10.テスト(安全でないページ)に移動を押します

11.許可を押します

12.スプレッドシートの画面に戻ると、完成です。

使い方

アプリIDはApp StoreのURLから習得します

ここにカンマ区切りでIDをいれていきます
この例ではPinterest、ツイッター,periscope,LINEの順番で取得できます

var appIDs = [429047995,333903271,972909677,443904275]

たとえばPinterestのみ知りたい場合,下記のように書きます

var appIDs = [429047995]

Pinterestとツイッターを知りたい場合,下記のように書きます

var appIDs = [429047995,333903271]

英語版を集めたい場合

//APIをたたく
    var response = UrlFetchApp.fetch("https://itunes.apple.com/lookup?id="+appIDs[appNumber-1]+ "&country=JP");

下記のように

//APIをたたく
    var response = UrlFetchApp.fetch("https://itunes.apple.com/lookup?id="+appIDs[appNumber-1]+ "&country=US");

"&country=JP" → "&country=US"
に変更して実行すると英語版が手に入ります

まとめ

Google Apps Script超便利!!すごい!!

もっといい方法あるよ。
もっと改善できるよなどご意見ありましたらおしえてください
↓PRはこちらにお願いします


エンジニアとして働いている成長記録やおもしろいと思ったこと色々書いていこうとおもいます 頂いたご支援は、資料や勉強のための本、次のネタのための資金にし、さらに面白いことを発信するために使います 応援おねがいします