如何打印多个调用谷歌分析API谷歌表与应用程序脚本
How to print multiple calls to Google Analytics API to Google Sheets with Apps Script
我试图从多个调用中打印多个结果到相同的谷歌表。我使用谷歌应用程序脚本调用谷歌分析API。
我目前能够打印两组数据,但第二组强制执行我的第一个调用。这几乎就像第二次调用的结果被第一次调用覆盖。我确信我的问题是在我试图打印两组结果的底部。
下面是我的代码:function getReportDataForProfile(firstProfile) {
var profileId = firstProfile;
var tableId = 'ga:' + profileId;
var startDate = getMonthsAgo(3); // Months ago.
var endDate = getEndDate (0); // Today.
var optArgs = {
'dimensions': 'ga:month', // Comma separated list of dimensions.
'segment':'gaid::-lPvLp6LTbyDv3jOuYgEQA', // Female 18-24
'start-index': '1',
'max-results': '250' // Display the first 250 results.
};
var optArgs1 = {
'dimensions': 'ga:month', // Comma separated list of dimensions.
'segment':'gaid::Uu6nRXdoQxipnELhe94ejg', //Female 25 - 30
'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:goal19Completions', // Comma seperated list of metrics.
optArgs);
if (results.getRows()) {
return results;
} else {
throw new Error('No views (profiles) found');
};
var results1 = 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:goal19Completions', // Comma seperated list of metrics.
optArgs1);
if (results1.getRows()) {
return results1;
} else {
throw new Error('No views (profiles) found');
};
}
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());
}
function outputToSpreadsheet(results1) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// Print the headers.
var headerNames = [];
for (var i = 0, header; header = results1.getColumnHeaders()[i]; ++i) {
headerNames.push(header.getName());
}
sheet.getRange(1, 3, 1, headerNames.length)
.setValues([headerNames]);
// Print the rows of data.
sheet.getRange(2, 3, results1.getRows().length, headerNames.length)
.setValues(results1.getRows());
}
你的javascript逻辑不正确。得到第一个结果,然后有:if (x)
return y;
else
throw exception
所以它永远不会通过。使用调试器并逐行执行。您将看到无法进入第二个查询
相关文章:
- 三星智能电视应用程序使用谷歌API
- 在谷歌api v3中使用地理自动完成功能获取邮政编码
- 从谷歌API地理代码的形式字段到数据库
- 从名称或邮政编码获取纬度和经度-谷歌API
- 英国邮政编码谷歌API不返回街道地址
- 用于谷歌API的Jquery
- 根据谷歌 Api v3 书/也用一个按钮添加一个标记
- 谷歌 API :仪表动画
- (谷歌API)单元格引用中的动态工作表和工作表创建脚本的名称
- 谷歌APi 不检索值
- 一个回调两个异步函数,一个是谷歌 api getDistanceMatrix
- 谷歌API正在计算无效地址的距离
- 在文件系统中使用谷歌API
- 如何对谷歌 API 搜索查询进行编码
- 如何使用谷歌API从街景切换到路线图
- 谁能告诉我为什么我不能从谷歌 API 获得城市列表
- 如何使用谷歌 API 网页版从address_components获取地点 ID
- 从经度和纬度谷歌 API 获取邮政编码
- 动态向下面的透视柱形图添加注释 - 谷歌 API
- 谷歌 API 图表日志刻度不起作用