开源项目 Google Analytics 存在的问题

hooopo · 2021年01月11日 · 最后由 lialzm 回复于 2021年03月09日 · 2296 次阅读

Google analytics 是一个非常好用的免费行为分析工具,对于中小型企业来完全满足需求,甚至一些独角兽级别的公司也在使用。

但 Google analytics 也并不完美,当你想深度使用 GA 的数据的时候,你会发现很多限制:

  • GA 的 API 不提供 event level 或者 hit level 的 raw data,只提供 aggregated data;可以通过购买 GA360 和 bigquery 方案解决,但要花费至少 15w 刀每年
  • GA 的数据有留存和采样限制,具体规则:https://support.google.com/analytics/answer/7667196?hl=zh-Hans
  • 免费意味着你的数据被用来训练谷歌的广告服务
  • dimensions 和 metrics 的限制,大概 API 限制 7 dimensions and 10 metrics

总体来说,就是你不拥有 GA 采集的数据,你只能消费报表。有时候我们需要深度使用行为数据,比如下面这些场景;

  • 自定义报表逻辑
  • 和现有数据平台集成,比如拿行为数据给推荐系统和搜索系统用
  • 基于行为数据来开发 CRM 系统,比如给点击过某产品的用户发短信等

最近在计划开发一个 Google Analytics 的替代品,试图解决上面提到的问题。

产品的形态基本确立下来了,直接使用 GA4 的 sdk,然后配置 transport_url 就可以实现替换,提供一个简单的可视化 + 自定义查询,或者自己对接 metabase。

提供开源和 SaaS 版本。

相比优势就是可以本地部署,数据永久保存在自己的服务器,不需要受 GA 的留存时间和取样规则限制,而且提供了原始数据,GA 里如果获取原始数据就需要使用付费服务,GA360 这种,$150k 每年,并且导出到 bigquery 也是付费服务。

相比其他开源 Google Analytics 替代品的优势:

调研了一下现有的的开源产品,比如 plausible 和 umani,都是 5k star 以上的开源项目;都只是提供基础款的功能,这些和 GA 比还差的非常多;比如电商分析、自定义事件、多子站、自定义维度和度量等功能都不提供。

Matomo,这个项目看了没?功能比较全。

我有兴趣,我们公司项目最近有个需求就是做个类似 GA 的 sdk

daqing 回复

看过 功能上接近 ga 了,但是从架构上看,php+mysql,挺担心单机性能的。。。还有就是这种架构只能做预聚合,灵活性差很多了

renyuanz 回复

我最近也研究了一下各种 SDK,然后选择了直接使用 ga 的 sdk,可以配置 endpoint,就可以利用 ga 的文档和使用习惯了。sdk 已经很成熟了,还有 GTM,GA v4 的 API 非常友好,改掉了很多遗留问题。

期待。

中美冲突也会影响很多公司使用 GA

renyuanz 回复

druid 是不错,但不太熟

技术选型大概是 openresty+rails+clickhouse/timescaledb+sidekiq.cr

棒,进一步关注

lyfi2003 回复

感谢😝

hooopo 回复

自定义报表逻辑,有现成的参考方案么?

lyqscmy 回复

可以参考 metabase

“最近在计划开发一个 Google Analytics 的替代品”。期待,我们也有这方面的需求。😂 😂 说不定有机会合作。目前业务还没起来就用 GA 先顶着。

hooopo 回复

这个 ui 可以借鉴,但 data model 和 tracker 还是有点弱,只能做基本的 uvpv 之类的统计,适合小型网站,复杂一些的一定要有电商模块和自定义纬度还有自定义事件这种高级功能才能满足定制化需求

hooopo Hypercable Analytics open sourced 提及了此话题。 03月01日 13:14
hooopo 回复

请问下 ga v4 sdk 是指的 Google Analytics 的 track sdk 吗,这个谷歌是开源了吗?我没有找到对应的代码地址

lialzm 回复

新建的 ga 都是 google Analytic v4 的;

这里有介绍:https://support.google.com/analytics/answer/10089681

lialzm 回复

sdk 都是可以得到源码的,但经过混淆了。

也不需要开源,目前 hypercable analytics 的使用方式:

<script async src="https://www.googletagmanager.com/gtag/js?id=G-PJBVFLBFSB"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'G-PJBVFLBFSB', {transport_url: 'https://learnsql.io/c7f4edce-58c3-4917-8f18-a2ea6c1b93dc'});
</script>
hooopo 回复

学习了,原来 ga 可以将数据推送到自己的服务器,但是这个方式可以作为商用吗?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号