我有一个向谷歌分析发送数据的应用程序。我对在Hadoop集群上访问和存储这些数据很感兴趣。我猜这些原始数据将以日志的形式出现。特别是,我希望看到user_id、用户进行的搜索以及他/她决定在应用程序上付费的搜索选项。
我该怎么做?我对GA完全陌生,我不是为该应用程序设置GA的人。我只是想看看是否有办法访问这些原始数据。
我想补充一点,我不能使用Big Query,因为我们无法访问它。而且设置GA的人对升级到Universal Analytics不感兴趣。
如有任何帮助/想法/建议,我们将不胜感激。
没有办法获取日志,但是。。
Google Analytics API将允许您从系统中提取数据。
你能做的事情是有限的:
- 每个请求限制为7个维度和10个度量
- 每个配置文件(视图)每天还有1万个请求配额
- 你所说的一些信息不可用。除非Google Analytics帐户设置正确
- 数据仍将以某种方式进行聚合。API中可用的最小时间单位是分钟,因此您将无法获取带有时间戳的原始数据
值得注意的是,专业的谷歌分析客户可以将GA的原始数据导出到Big Query。从BigQuery导出数据是免费的,但存储和查询处理是根据使用情况定价的。
高级分析以合理的价格收取150000美元的固定年费
由于我们应该回答最初的问题,除了复制服务器调用系统之外,没有其他方法可以获得实际的原始Google Analytics日志。
换句话说,您需要使用analytics.js脚本的修改副本来指向可以收集服务器调用的托管Web服务器。
长话短说,你希望你的网站捕捉点击http://www.yourdatacollectionserver.com/collect?v=1&t=页面视图[…]而不是http://www.google-analytics.com/collect?v=1&t=页面浏览[…]
这可以使用标签管理器(如谷歌的GTM)以及普通的谷歌分析标签轻松部署。
这将有效地在您的web服务器中创建日志条目,您可以使用ETL、Snowplow、Splunk或您最喜欢的Python/perl/Rube文本解析引擎来处理这些条目。
然后由您将实际的原始日志处理成可管理的内容。在你问之前,这是不可追溯的。
要获得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中获得的所有结果连接起来。
您可以使用Google Analytics API获取汇总数据,即您可以在Google Analytics帐户中看到的数据。要获取原始数据,您需要成为高级用户(每年花费约15万)。高级用户可以导出到Google BigQuery,并从那里导出到您想要的任何地方。