我正在尝试将我的小报告从v3迁移到v4,但是我发现了一个令人讨厌的问题,让我觉得自己完全愚蠢。
所以我刚刚在https://developers.google.com/analytics/devguides/reporting/core/core/core/v4/quickstart/web-js获取了示例代码。并更改几件事,它有效,它运行了报告。但是,当我尝试通过以下功能从不同行中检索数据时:
function displayResults(response) {
var Objeto = response.result["reports"];
var Filas01 = Objeto["data"];
console.log(Objeto);
console.log(Filas01);
}
objeto在.Reports
中显示所有内容但FILAS01显示未定义,我试图检索Reponse.Results.Reports.data.Rows;
和几种变化
我不知道为什么它在V3上工作而不在V4上,
请任何帮助将不胜感激:(
有一些如何提出请求和以各种语言来响应的示例。但在这里特别是简单的 javascript 函数,将结果处理到表中:
function handleReportingResults(response) {
if (!response.code) {
outputToPage('Query Success');
for( var i = 0, report; report = response.reports[ i ]; ++i )
{
output.push('<h3>All Rows Of Data</h3>');
if (report.data.rows && report.data.rows.length) {
var table = ['<table>'];
// Put headers in table.
table.push('<tr><th>', report.columnHeader.dimensions.join('</th><th>'), '</th>');
table.push('<th>Date range #</th>');
for (var i=0, header; header = report.columnHeader.metricHeader.metricHeaderEntries[i]; ++i) {
table.push('<th>', header.name, '</th>');
}
table.push('</tr>');
// Put cells in table.
for (var rowIndex=0, row; row = report.data.rows[rowIndex]; ++rowIndex) {
for(var dateRangeIndex=0, dateRange; dateRange = row.metrics[dateRangeIndex]; ++dateRangeIndex) {
// Put dimension values
table.push('<tr><td>', row.dimensions.join('</td><td>'), '</td>');
// Put metric values for the current date range
table.push('<td>', dateRangeIndex, '</td><td>', dateRange.values.join('</td><td>'), '</td></tr>');
}
}
table.push('</table>');
output.push(table.join(''));
} else {
output.push('<p>No rows found.</p>');
}
}
outputToPage(output.join(''));
} else {
outputToPage('There was an error: ' + response.message);
}
}
我还建议花时间回顾参考文档中响应的过度结构