将 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;
}
按照指南 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)
:
/**
* 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;
}