0

好的,所以我真的希望有人可以帮助我开始,我已经能够通过带有谷歌可视化的 api 从我的谷歌分析数据中绘制饼图和时间线。我现在想从谷歌访问分析中提取数据并绘制地图。这是有效的地理地图示例代码

google.load('visualization', '1', {packages: ['geochart']});

function drawVisualization() {

  var data = google.visualization.arrayToDataTable([
    ['Country', 'Popularity'],
    ['Germany', 200],
    ['United States', 300],
    ['Brazil', 400],
    ['Canada', 500],
    ['France', 600],
    ['RU', 700],
    ['South Africa', 800]
  ]);

  var geochart = new google.visualization.GeoChart(
      document.getElementById('visualization'));
  geochart.draw(data, {width: 556, height: 347});
}


google.setOnLoadCallback(drawVisualization);

但当然我想从我的谷歌分析 api 中获取 var 'data' 到这样一个数组中,并根据过去 30 天的综合浏览量绘制前 10 个受欢迎的国家?

我相信以下查询会给我我想要的

 dimensions=ga:country
 metrics=ga:visits
 sort=-ga:visits

如何将其转换为数据变量的正确格式以绘制此地理地图?如果你能帮我重写 var 数据使其正常工作,我可能是最快乐的人。提前致谢

4

2 回答 2

2

这个函数应该把谷歌分析返回的数据,输入到一个DataTable中,然后按访问次数绘制前10个国家的GeoChart:

function drawChart(results) {
    var entries = results.feed.getEntries();
    var data = new google.visualization.DataTable();
    data.addColumn('string', 'Country');
    data.addColumn('number', 'Visits');

    for (var i = 0; i < entries.length; i++) {
        data.addRow([entries.getValueOf('ga:country'), parseInt(entries.getValueOf('ga:visits'))]);
    }

    // sort by visits, descending
    var sortedRows = data.getSortedRows([{column: 1, desc: true}]);
    // remove all elements after the 10th
    while (sortedRows.length > 10) {
        sortedRows.splice(10, 1);
    }
    var view = new google.visualization.DataView(data);
    view.setRows(sortedRows);

    var geochart = new google.visualization.GeoChart(document.getElementById('visualization'));
    // draw the chart using the view
    geochart.draw(view, {width: 556, height: 347});
}
于 2013-08-02T17:02:43.553 回答
0

您应该考虑使用新的 Google Analytics SuperProxy,它简化了将 api 查询导入图表 api 的过程,仍然存在一些错误,但设置非常简单,下面链接上的 YouTube 视频将带您完成整个过程. https://developers.google.com/analytics/solutions/google-analytics-super-proxy

于 2013-08-06T22:48:13.833 回答