【发布时间】:2014-09-17 17:29:01
【问题描述】:
我正在开发一个应用程序,其中每个“业务”都有自己的页面(或者说有很多页面):
例如 example.com/business/abc/
因此,对于系统中已登录的企业主,我想提供一个功能“查看页面分析”。它会显示该特定页面的访问次数(可能还有其他一些内容)。
有没有办法在我的限制下使用 Google Analytics API 来做到这一点:
- 我不希望客户提供自己的 UA 代码
- 我不希望他们要求拥有 GA 帐户
- 客户无需拥有 Google 电子邮件帐户
- 我不想自己构建整个前端和后端。我宁愿使用现有的东西
我一直在研究这个话题好几个小时试图想出一个解决方案,但什么也想不通。
这是我尝试过的以及发生在我身上的问题:
-
http://ga-dev-tools.appspot.com/demos/embed-api/
- 这基本上正是我希望我的客户在我的网站上显示的内容(如示例中所示),除了 Embed Api 尝试授权用户使用他们自己的(拥有的)谷歌分析。我希望它改用我自己的 Google Analytics(分析)数据(或者说是其中的一部分)
- 我考虑限制数据访问的方式是让我的每个客户在 GA 中创建一个视图,向该视图添加过滤器,以便在那里仅列出客户页面,将用户分配给视图,并使用嵌入 Api仅显示来自该视图的数据。这样做有几个问题:
- 要将用户分配给 View,我们需要电子邮件地址。这必须是 google 帐户电子邮件,或来自使用 Google Developers Console(应用程序)创建的项目的帐户。
- 换句话说,我无法创建(以我知道的任何方式)一个帐户,该帐户将成为我的客户对他们可能感兴趣的 GA 数据子集的屏蔽帐户。它必须是真实的用户或真实的应用程序电子邮件地址。
- 所以我尝试做的是...我在 Google Developers Console 中创建了一个应用程序,创建了新的 OAuth 服务帐户。使用 Ruby 代码(在生产应用程序中将在后端运行)我获得了 OAuth 令牌。我将此 OAuth 服务帐户的电子邮件作为用户添加到视图中
- 我希望这个服务器端生成的 oauth 令牌供 Embed Api 使用。这将达到我在后端生成令牌的效果,并且用户可以在我的 GA 属性中没有 GA 用户的情况下使用它。所以我根据文档更改了要使用的基本 Embed Api 示例
gapi.analytics.auth.authorize({
container: 'auth',
clientid: 'xxx.apps.googleusercontent.com',
serverAuth: {
access_token: 'Server side generated token'
}
});
而不是
gapi.analytics.auth.authorize({
container: 'auth',
clientid: 'xxx.apps.googleusercontent.com',
});
效果和我预期的不太一样。该示例不再显示(我看不到我的数据),但我可以在 Chrome 的 Netowrking 部分看到它实际上是从 GA 接收真实数据。但不知什么原因,什么都没有出现。
我试图避免的是构建一个解决方案,在该解决方案中我需要构建服务器端代码来查询 GA 以获取数据,将其提供给前端,然后由 JS 负责显示它。我宁愿使用 Embed API,但它似乎不太适合我不希望用户使用他们的 UA 数据而是将我自己的 UA 数据限制在某个范围内的用例。我希望至少解决解决方案的前端或后端部分。该解决方案甚至不需要基于 Google Analytics。任何其他能让我轻松实现用例并让企业主看到他们的营销(流量、销售)效果的东西也会很有趣。
相关:
- Using google analytics API to show subset of data for customers of web application
- Google analytics customer data?
- Google Analytics API: filter by URI?
- https://embeddedanalytics.com 看起来很有用,但他们的页面和图表看起来像是几年前的样子。我想要更漂亮的东西。
-
https://oocharts.com 似乎很有趣,因为他们的 docs.oocharts.com 关于查询的内容。但他们不为他们的产品收取任何费用,所以我怀疑他们的商业模式以及这是否是一个好的长期解决方案。更新:死链接 - 我没有足够的业力来发布链接 ;)
TLDR:向我的客户显示我的 GA 数据的子集,而不强制他们成为 GA 用户并将他们添加到我的 GA 帐户。
任何帮助表示赞赏!
【问题讨论】:
-
这个问题确实太大了。如果您将所有数据记录到一个 Google Analytics(分析)帐户,则每次查看您可以针对 GA API 发出的请求限制为 10k,您无法扩展该请求。嵌入式 API 使用 Javascript,您不能将服务帐户与 Javascript 一起使用。
-
使用带有
serverAuth参数的 Embed API 是完全按照您的意愿行事的推荐方法。我不知道为什么它不适合你。您能否详细说明您遇到的问题或file an issue? -
@PhilipWalton 感谢您向我保证,这确实是解决此类问题的正确方法。我按照你的要求提交了一个错误code.google.com/p/analytics-issues/issues/detail?id=496。
标签: google-analytics google-analytics-api