将 Chrome 用户体验报告中的 pagespeed 以秒为单位拉入 google sheet

Pull pagespeed in seconds from Chrome User Experience Report into a google sheet

按照指南 Create Your Own Google Pagespeed & Mobile Usability Tracking Google Sheet in 5 Steps 我成功地为一个(最多 50 个)URL 列表设置了移动页面速度得分。

然而,自 2017 年底以来,Chrome User Experience Report 提供了真实数据,显示基于 chrome 用户数据的页面的平均加载时间(以秒为单位)。 (例如在使用 Pagespeed Insights by google 时使用此数据。)

我不想像上面描述的那样提取页面分数,而是想将平均加载时间提取到我的 google sheet.

是否可以调整上面文章中使用的脚本来以秒为单位拉取加载时间而不是 pagescore?或者还有其他方法吗?

在此先感谢您的帮助。

这是我 运行 在脚本编辑器中根据链接文章 =checkAll(C3):

将 pagescore 设为 google sheet 的脚本
 /**
 * Returns Mobile Pagespeed, Mobile Usability, and Desktop Pagespeed values in three adjacent columns
 * by Cagri Sarigoz
 */

function checkAll(Url) {

  //CHANGE YOUR API KEY WITH YOUR_API_KEY BELOW
  var key = "AIzaSyB2SeOumbCd6YNfFWRg5Jo_WpISZi4gCFs";
  var serviceUrlMobile = "https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url="+Url+"&strategy=mobile&key="+key;
  var serviceUrlDesktop = "https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url="+Url+"&strategy=desktop&key="+key;
  var array = [];

  if (key == "YOUR_API_KEY")
    return "Please enter your API key to the script";  

  var responseMobile = UrlFetchApp.fetch(serviceUrlMobile);

  if(responseMobile.getResponseCode() == 200) {
    var contentMobile = JSON.parse(responseMobile.getContentText());

    if ( (contentMobile != null) && (contentMobile["ruleGroups"] != null) )
    {
      if (contentMobile["responseCode"] == 200)
              {
        var speedScoreMobile = contentMobile["ruleGroups"]["SPEED"]["score"];
        var usabilityScoreMobile = contentMobile["ruleGroups"]["USABILITY"]["score"];
      }
      else
      {
          array.push(["Not Found!", "Not Found!", "Not Found!"]);
          return array;
      }
    }
  }

  var responseDesktop = UrlFetchApp.fetch(serviceUrlDesktop);

  if(responseDesktop.getResponseCode() == 200) {
    var contentDesktop = JSON.parse(responseDesktop.getContentText());

    if ( (contentDesktop != null) && (contentDesktop["ruleGroups"] != null) )
      var speedScoreDesktop = contentDesktop["ruleGroups"]["SPEED"]["score"];  
  }
  array.push([speedScoreMobile, usabilityScoreMobile, speedScoreDesktop]);
  return array;

}

我是您分享的博客 post 的作者。正如您所说,那里的 Google Apps 脚本使用的是 Google Pagespeed API v2。当前API版本为v4,v2将于6月30日折旧

所以我在我自己的电子表格副本上用 v4 更新了代码。您可以从 here.

制作自己的副本

我也想添加适合移动设备的测试结果,但结果是 Google Search Console 的 API 配额限制太紧,几乎总是返回错误。所以我暂时把那部分代码注释掉了

我还没有时间更新我的博客 post。可以看到新版脚本here.