gpt4 book ai didi

google-apps-script - 触发器不适用于Google Analytics(分析)的GS代码

转载 作者:行者123 更新时间:2023-12-04 23:25:22 24 4
gpt4 key购买 nike

我有一张图表要开发。我已经使用Google文档的电子表格发布了图表。我希望图表可以随着数据的任何变化而自动更新。因此,我每天都会在午夜1点设置触发器,方法是转到Google电子表格中的“工具”>“脚本编辑器”>“资源”>“触发器”。

但是,这不起作用,并且发布的图表也没有得到更新。

我为其添加了触发器的代码如下:

function runDemo() {
try {

var firstProfile = getFirstProfile();
var results = getReportDataForProfile(firstProfile);
outputToSpreadsheet(results);

} catch(error) {
Browser.msgBox(error.message);
}
}


function getFirstProfile() {
var accounts = Analytics.Management.Accounts.list();
if (accounts.getItems()) {
var firstAccountId = accounts.getItems()[0].getId();

var webProperties = Analytics.Management.Webproperties.list(firstAccountId);
if (webProperties.getItems()) {

var firstWebPropertyId = webProperties.getItems()[0].getId();
var profiles = Analytics.Management.Profiles.list(firstAccountId, firstWebPropertyId);

if (profiles.getItems()) {
var firstProfile = profiles.getItems()[0];
return firstProfile;

} else {
throw new Error('No views (profiles) found.');
}
} else {
throw new Error('No webproperties found.');
}
} else {
throw new Error('No accounts found.');
}
}

function getReportDataForProfile(firstProfile) {

var profileId = firstProfile.getId();
var tableId = 'ga:' + profileId;
var startDate = getLastNdays(14); // 2 weeks (a fortnight) ago.
var endDate = getLastNdays(0); // Today.

var optArgs = {
'dimensions': 'ga:date', // Comma separated list of dimensions.
'sort': '-ga:date,ga:sessions', // Sort by sessions descending, then keyword.
'segment': 'dynamic::ga:isMobile==No', // Process only mobile traffic.
//'filters': 'ga:source==google', // Display only google traffic.
'start-index': '1',
'max-results': '250' // Display the first 250 results.
};

// Make a request to the API.
var results = Analytics.Data.Ga.get(
tableId, // Table id (format ga:xxxxxx).
startDate, // Start-date (format yyyy-MM-dd).
endDate, // End-date (format yyyy-MM-dd).
'ga:sessions,ga:pageviews', // Comma seperated list of metrics.
optArgs);
//{‘dimensions’: ‘ga:date’}

if (results.getRows()) {
return results;

} else {
throw new Error('No views (profiles) found');
}
}

function getLastNdays(nDaysAgo) {
var today = new Date();
var before = new Date();
before.setDate(today.getDate() - nDaysAgo);
return Utilities.formatDate(before, 'GMT', 'yyyy-MM-dd');
}

function outputToSpreadsheet(results) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

// Print the headers.
var headerNames = [];
for (var i = 0, header; header = results.getColumnHeaders()[i]; ++i) {
headerNames.push(header.getName());
}
sheet.getRange(1, 1, 1, headerNames.length)
.setValues([headerNames]);

// Print the rows of data.
sheet.getRange(2, 1, results.getRows().length, headerNames.length)
.setValues(results.getRows());

//for(var i=2; results.getRows().length; i++)
//{
// sheet.getRange(i, 1).getNumberFormat();
//}
//sheet.getRange(2, 1, results.getRows().length).setNumberFormat('Plain text');
}


我将触发器放在函数runDemo()上

谁能帮我做到这一点。

最佳答案

鉴于提供的代码,我将集中几个方面来进行故障排除。

1)使用特定的属性ID定义getFirstProfile()的版本:

function getFirstProfile() {  

var accounts = Analytics.Management.Accounts.list();

if (accounts.getItems()) {
var profile = Analytics.Management.Profiles.list('XXXXXXX',
'UA-XXXXXXX-1'); //Google Analytics Profile ID
} else {
throw new Error('No views (profiles) found.');
}
}




2) Define a number for your profile ID

function getReportDataForProfile(firstProfile) {

//var profileId = profile.getId();
var tableId = 'ga:xxxxxxxx'; // digits;




同时,使用脚本编辑器中提供的工具来获取有关问题区域的其他提示。



让我们知道怎么回事。

关于google-apps-script - 触发器不适用于Google Analytics(分析)的GS代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26779574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com