Save Google PageSpeed Score in Google Sheet

The Google PageSpeed score helps you understand how fast your website will load on a desktop or mobile phone. It has other critical information like the file size, number of external resources requested and the number of hosts your site needs to connect. You can log all this insights data in a Google Spreadsheet automatically using a time-based trigger and visualize your site’s performance over time.


/* Source: http://qiita.com/takoratta/items/9b8d33970d07125e4f96 */
function pageSpeed(url) {
  
  url = url || 'http://ctrlq.org/';
  
  var APIkey   = 'XYZ';     // Get the API key from Google Dev Console
  var strategy = 'desktop'; // 'desktop' or 'mobile'
  
  var api = 'https://www.googleapis.com/pagespeedonline/v1/runPagespeed?url=' 
                + url + '&key=' + APIkey +  '&strategy=' + strategy;
  
  var response = UrlFetchApp.fetch(api, {muteHttpExceptions: true });
  
  var parsedResult = JSON.parse(response.getContentText());
  var pageSpeedResults = {};
  
  pageSpeedResults['score'] = parsedResult.score;
  
  var pageStats = ['numberResources', 'numberHosts', 'totalRequestBytes', 
                   'numberStaticResources', 'htmlResponseBytes', 'cssResponseBytes', 
                   'imageResponseBytes', 'javascriptResponseBytes', 
                   'otherResponseBytes', 'flashResponseBytes','textResponseBytes', 
                   'numberJsResources', 'numberCssResources'];
  
  for (var i=0; i < pageStats.length; i++) {
    pageSpeedResults[pageStats[i]] = parsedResult.pageStats[pageStats[i]];
  }
  
  return(pageSpeedResults);

}