20

我有一个向 Google Analytics 发送数据的应用程序。我有兴趣在 Hadoop 集群上访问和存储这些数据。我猜这些原始数据将以日志的形式出现。特别是,我想查看 user_id、用户进行的搜索以及他/她决定在应用程序上支付的搜索选项。

我怎样才能做到这一点?我对 GA 完全陌生,我不是为应用程序设置 GA 的人。我只是想看看是否有办法可以访问这些原始数据。

想补充一点,我无法使用 Big Query,因为我们无权访问它。设置 GA 的人对升级到 Universal Analytics 不感兴趣。

任何帮助/想法/建议表示赞赏。

4

4 回答 4

18

没有办法获取日志,但是..

Google Analytics API可让您从系统中提取数据 。

您可以做的事情是有限制的:

  1. 每个请求限制为 7 个维度和 10 个指标。
  2. 每个配置文件(视图)每天还有 10k 个请求的配额。
  3. 您正在谈论的某些信息不可用。除非 Google Analytics 帐户设置正确。
  4. 数据仍将以一种或另一种方式聚合。API 中可用的最小时间单位是分钟,例如,您将无法获取带有时间戳的原始数据。

需要注意的是,专业的 Google Analytics 客户可以将原始数据从 GA 导出到Big Query。从 BigQuery 导出数据是免费的,但存储和查询处理是根据使用情况收费的。

150,000 美元的固定年费,以合理的价格提供高级分析

于 2014-10-23T08:22:35.267 回答
6

因为我们应该回答最初的问题,所以除了复制服务器调用系统之外,没有办法获得实际的原始 Google Analytics 日志。

换句话说,您需要使用 analytics.js 脚本的修改副本来指向可以收集服务器调用的托管网络服务器。

长话短说,您希望您的网站将点击量捕获到 http://www.yourdatacollectionserver.com/collect?v=1&t=pageview[...] 而不是 http://www.google-analytics.com/collect? v=1&t=综合浏览量[...]

这很容易使用标签管理器(例如 Google 的 GTM)以及普通的 Google Analytics 标签进行部署。

这将有效地在您的 Web 服务器中创建日志条目,您可以使用 ETL、Snowplow 或 Splunk 或您最喜欢的 Python/perl/Ruby 文本解析引擎对其进行处理。

然后由您将实际的原始日志处理成可管理的东西。在你问之前,这不是追溯性的。

于 2016-09-15T10:14:19.370 回答
3

要通过单击获取 GA 数据,您可以进行查询,使您能够将数据连接在一起。

首先,您需要在 GA 中准备数据。因此,对于您发送的每次点击,将一些散列值或 clientId + 一些时间戳添加到自定义维度中。这将使您能够加入每个查询结果。

例如(这就是我们在 Scitylana 的做法)下面的这个脚本挂钩到 GA 的跟踪脚本,并确保每个命中都包含一个键,以便以后拼接查询结果

<script>
var BindingsDimensionIndex = CUSTOM DIMENSION INDEX HERE;
var Version = 1;

function overrideBuildTask() {
    var c = window[window['GoogleAnalyticsObject'] || 'ga'];
    var d = c.getAll();
    if (console) { console.log('Found ' + d.length + ' ga trackers') }
    for (var i = 0; i < d.length; i++) {
        var e = d[i]; var f = e.get('name');
        if (console) { console.log(f + ' modified') }
        var g = e.get('buildHitTask');
        if (!e.buildHitTaskIsModified) {
            e.set('buildHitTask', function(a) {
            window['_sc_order'] = typeof window['_sc_order'] == 'undefined' ? 0 : window['_sc_order'] + 1;
                var b = ['sl=' + Version, 'u=' + e.get('clientId'), 't=' + (new Date().getTime() + window['_sc_order'])].join('&');
                a.set('dimension' + BindingsDimensionIndex, b);
                g(a);
                if (console) {
                    console.log(f + '.' + a.get('hitType') + '.set.customDimension' + BindingsDimensionIndex + ' = ' + b)
                }
            });
            e.buildHitTaskIsModified = true
        }
    }
}
window.ga = window.ga || function() {
    (ga.q = ga.q || []).push(arguments);
    if (arguments[0] === 'create') { ga(overrideBuildTask) }
};
ga.l = +new Date();

</script>

当然,现在您需要编写一些脚本来连接您从 GA 中取出的所有结果。

于 2016-09-08T09:17:23.670 回答
2

您可以获得汇总数据,即。您可以使用 Google Analytics API 在您的 Google Analytics 帐户中看到的数据。要获取原始数据,您需要成为高级用户(每年花费约 150k)。高级用户可以导出到 Google BigQuery 并从那里导出到您想要的任何地方。

于 2014-12-03T10:43:54.493 回答