从Chrome用户体验报告中将页面速度从几秒钟拉到Google表格中

时间:2018-06-06 07:57:47

标签: google-sheets google-api google-pagespeed

按照指南Create Your Own Google Pagespeed & Mobile Usability Tracking Google Sheet in 5 Steps,我设法为(最多50个)网址列表设置移动网页速度分数。

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

如上所述,我不想拉取页面分数,而是将平均加载时间拉到我的Google工作表中。

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

在此先感谢您的帮助。非常感谢。

这是我在脚本编辑器中运行的脚本,根据带有函数=checkAll(C3)的链接文章将pagescore输入到google工作表中:

 /**
 * 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;

}

1 个答案:

答案 0 :(得分:1)

我是您分享的博文的撰稿人。正如您所说,Google Apps脚本使用的是Google Pagespeed API v2。当前的API版本为v4,v2将于6月30日折旧。

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

我还想添加适合移动设备的测试结果,但事实证明Google Search Console的API配额限制太紧,几乎一直都会返回错误。所以我暂时注释掉了部分代码。

我还没有时间更新我的博文。您可以看到脚本here的新版本。