这是我用来使用Google Visualization API从Google表格中检索表格的代码段。
google.load('visualization', '1', {
packages: ['table']
});
var visualization;
function drawVisualization() {
var query = new google.visualization.Query('http://spreadsheets.google.com/tq?key=XXXXXXXX&hl=it_IT');
query.setQuery('SELECT B, C, D, E, F, G, H where upper(B) like upper("%<?php echo $search; ?>%") or upper(D) like upper("%<?php echo $search; ?>%") or upper(F) like upper("%<?php echo $search; ?>%") order by G DESC label G "Data"');
query.send(handleQueryResponse);
}
function handleQueryResponse(response) {
if (response.isError()) {
alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
return;
}
var data = response.getDataTable();
var formatter = new google.visualization.PatternFormat(
'<a href="{6}" target="_blank" onclick="var that=this;_gaq.push([\'_trackEvent\',\'Event Category\',{2},this.href]);setTimeout(function(){location.href=that.href;},200);return false;">{2}</a>');
// Apply formatter and set the formatted value of the first column.
formatter.format(data, [0, 1, 2, 3, 4, 5, 6], 2);
var view = new google.visualization.DataView(data);
view.setColumns([2, 0, 1, 4, 5]); // Create a view with the first column only.
visualization = new google.visualization.Table(document.getElementById('table'));
visualization.draw(view, {
legend: 'bottom',
allowHtml: true
});
}
google.setOnLoadCallback(drawVisualization);
正如您所看到的,我正在尝试跟踪触发Javascript事件的下载。
<a href="URL" target="_blank" onclick="var that=this;_gaq.push(['_trackEvent','EVENT_CATEGORY','EVENT_URL',this.href]);setTimeout(function(){location.href=that.href;},200);return false;">LINK_NAME</a>
此代码适用于&#34;普通&#34;页面(即在Google Analytics中跟踪事件),但它在这里不起作用(我猜是因为它在iframe中?)。 是否有解决方法可以跟踪事件?
答案 0 :(得分:0)
如果您在iframe中包含GA跟踪代码,并且(如果iframe来自其他域),您可以使用Google Analytics设置iframe跟踪,如果您在iframe中附加跨域跟踪代码,则链接两个领域在一起。从它的声音,你将无法跟踪它。
另请注意,在iframe中没有跟踪的页面上的iframe将被视为反弹,因为您正在加载您的网页,然后谷歌开火,然后谷歌会认为您要离开,因为您正在加载单独的域。
一种解决方案可能是尝试在iframe外部构建您自己的按钮,该按钮将触发图表的下载(通过使用图像mimetype再次有效地请求它)。你可以跟踪它。它不一定能获得100%的点击次数,但至少有一些(即点击按钮的人,而不是iframe)。