我正在尝试使用Google Analytics Embed API创建关于KPI性能的基于文本的语句,以便位于仪表板上方。一个示例声明可能是这样的:“本周有X个在线交易,这是上周表现的Y%的变化,这来自Z会话,给出了每个会话的近似值$ abc”。等等。目的是这将是数据的有用见解,可以自动生成,并且应该占用页面上比图表或图表更少的空间。
为实现这一目标,我需要能够:
似乎我能够执行第1步和第3步。我可以对API执行查询并将这些查询发送到我的HTML页面,但我仍然坚持第2步 - 以我想要的方式操作/更改返回的结果。
举一个真实的例子 - 假设我想在会话数据中显示每周的变化。我可以获取最近7天的数据并使用以下代码将这些数据发送到我页面上的元素(box1):
var lastSevenDays = new gapi.analytics.report.Data({
query: {
ids: 'ga:123456789',
'start-date':'7daysAgo',
'end-date':'today',
'metrics': 'ga:sessions'
}
});
lastSevenDays.on('success', function(lastSevenDays) {
for (var prop in lastSevenDays) {
var outputDiv = document.getElementById('box1');
outputDiv.innerHTML = lastSevenDays[prop];
}
console.log(lastSevenDays);
});
lastSevenDays.execute();
//profile id: 123456789 isn't real in this example.
这样可以正常工作,过去7天的会话数据会写入我的页面。
然而,当我尝试将它与我的第二个查询,前7天的数据相结合时,将其作为box2(第二个查询)发送到页面,最后发送box3(数字上的差异)某些东西不起作用。
下面的代码尝试。我认为我的第一个查询可能是从Google Analytics API返回一个数组,当输出到HTML页面时,它似乎有效,因为数组中只有一个值。
var lastSevenDays = new gapi.analytics.report.Data({
query: {
ids: 'ga:123456789',
'start-date':'7daysAgo',
'end-date':'today',
'metrics': 'ga:sessions'
}
});
lastSevenDays.on('success', function(lastSevenDays) {
for (var prop in lastSevenDays) {
var outputDiv = document.getElementById('box1');
outputDiv.innerHTML = lastSevenDays[prop];
}
console.log(lastSevenDays);
});
lastSevenDays.execute();
// The previous 7 days
var previousSevenDays = new gapi.analytics.report.Data({
query: {
ids: 'ga:123456789',
'start-date':'7daysAgo',
'end-date':'today',
'metrics': 'ga:sessions'
}
});
previousSevenDays.on('success', function(previousSevenDays) {
for (var prop in previousSevenDays) {
var outputDiv = document.getElementById('box2');
outputDiv.innerHTML = previousSevenDays[prop];
}
console.log(previousSevenDays);
});
previousSevenDays.execute();
// Week on week change, where I am going wrong:
var weekOnWeekChange = lastSevenDays - previousSevenDays;
weekOnWeekChange.on('success', function(weekOnWeekChange) {
for (var prop in weekOnWeekChange) {
var outputDiv = document.getElementById('box3');
outputDiv.innerHTML = weekOnWeekChange[prop];
}
console.log(weekOnWeekChange);
});
weekOnWeekChange.execute();
//profile id: 123456789 isn't real in this example.
我是一个市场营销人员,只是想学习更多,而不是编码器。因此我对Javascript不太熟悉。因此,我非常感谢任何能指出我正确方向的人的建议。
请原谅我的任何重大错误,并提前感谢您的帮助。
答案 0 :(得分:0)
我首先要添加一些日志记录
....
'success', function(weekOnWeekChange) {
console.log(weekOnWeekChange);
使用cmd + alt + j(在Mac上)打开控制台。那么你将能够看到函数返回的内容