【问题标题】:Google Analytics API - Choice of Metric Affects Dimension Values Returned?Google Analytics API - 指标的选择会影响返回的维度值吗?
【发布时间】:2011-02-17 01:07:55
【问题描述】:

早上好。我在 Google Analytics API 中看到了这种行为,作为一个 SQL 人,我觉得这很奇怪。我想获取 adContent 的所有值的列表,所以我查询 ga:adContent 和(因为我还必须选择一个指标,没有明确的原因)ga:organicSearches。它在同一个组(Campaign)中,所以它在服务器上的表现可能会更好。

我得到一行:adContent 是“(未设置)”,organicSearches 是 516,674。嗯,我猜 adContent 没有被使用。但营销部门发誓确实如此,并制作了一些令人信服的屏幕截图。

后来,我随意将指标改为ga:transactions。在我醒来的宇宙中,这应该对任何东西都没有影响,除了该列中返回的实际值。相反,我得到了无数行,ga:adContent 的合理值。 ga:transactions 的值有时为零,因此 GA 不会过滤“metric > 0”。

我的查询中没有过滤器。我没有更改这两个变体之间的日期范围。谁能告诉我发生了什么事?我希望上面的查询可以转换成这样的东西,它应该返回完全相同的行数:

SELECT adContent, SUM(organicSearches)
FROM Campaign
WHERE Date BETWEEN X AND Y
GROUP BY adContent

SELECT adContent, SUM(transactions)
FROM Campaign INNER JOIN ECommerce ON <something>
WHERE Date BETWEEN X AND Y
GROUP BY adContent

我意识到 GA 可能没有在后端使用普通的 RDMS,但肯定 1 + 1 在任何数据库中仍然等于 2!

【问题讨论】:

    标签: google-analytics google-analytics-api


    【解决方案1】:

    根据定义,ga:organicSearches 几乎永远不会匹配 ga:adContent(边缘情况除外)。 ga:adContent 用于广告内容,ga:organicSearches 用于会话中的自然搜索结果访问(例如,如果您在同一会话中多次使用 Google 来尝试在网站上查找特定内容)。除了尝试测量特定现象之外,不要将其用于任何其他事情。

    这里尽量不要使用 SQL 思维框架; Google Analytics 在后端不使用 SQL,因此您对传统关系的概念不适用。 IIRC,他们使用了一些东西,其中一个 BigTable variant,它是一个 NoSQL 类型的数据库。

    From a Google Paper on BigTable from 2006:

    我们简要介绍其中的两个表 由谷歌分析使用。原始的 点击表(̃200 TB)保持一行 对于每个最终用户会话。该行 name 是一个元组,包含 网站名称和时间 会话已创建。这个架构 确保访问的会话 同一个网站是连续的,并且 它们按时间顺序排列。这个 表压缩到其 14% 原始尺寸。汇总表(̃20 TB) 包含各种预定义的 每个网站的摘要。这个表 从原始点击表生成 通过定期安排的 MapReduce 工作。每个 MapReduce 作业提取 来自原始点击的最近会话数据 桌子。整个系统的吞吐量 受限于 GFS 的吞吐量。 这个表压缩到它的 29% 原尺寸。

    如果您想要所有维度列表的指标的最小公分母,请使用ga:pageviews

    【讨论】:

    • 感谢您的快速回复,yc。那讲得通;我想我假设在单个组(活动)中不会有加入,因此除非我要求,否则不会过滤。还要感谢 LCD 的建议,这听起来正是我对仅维度查询所需要的。
    猜你喜欢
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    相关资源
    最近更新 更多