Google analytics 应用电子商务操作筛选器时,大查询和Google Analytics UI不匹配

Google analytics 应用电子商务操作筛选器时,大查询和Google Analytics UI不匹配,google-analytics,google-bigquery,Google Analytics,Google Bigquery,我们正在大查询中验证查询,无法获得与google analytics UI匹配的结果。我们可以找到一个类似的问题,但在我们的例子中,不匹配只发生在我们对电子商务\u action.action\u类型应用特定过滤器时 以下是查询: SELECT COUNT(distinct fullVisitorId+cast(visitid as string)) AS sessions FROM ( SELECT device.browserVersion, geoNetwork.net

我们正在大查询中验证查询,无法获得与google analytics UI匹配的结果。我们可以找到一个类似的问题,但在我们的例子中,不匹配只发生在我们对电子商务\u action.action\u类型应用特定过滤器时

以下是查询:

SELECT COUNT(distinct fullVisitorId+cast(visitid as string)) AS sessions
FROM (
  SELECT
    device.browserVersion,
    geoNetwork.networkLocation,
    geoNetwork.networkDomain,
    geoNetwork.city,
    geoNetwork.country,
    geoNetwork.continent,
    geoNetwork.region,
    device.browserSize,
    visitNumber,
    trafficSource.source,
    trafficSource.medium,
    fullvisitorId,
    visitId,
    device.screenResolution,
    device.flashVersion,
    device.operatingSystem,
    device.browser,
    totals.pageviews,
    channelGrouping,
    totals.transactionRevenue,
    totals.timeOnSite,
    totals.newVisits,
    totals.visits,
    date,
    hits.eCommerceAction.action_type
  FROM
    (select * 
     from TABLE_DATE_RANGE([zzzzzzzzz.ga_sessions_], 
    <range>) ))t
WHERE
 hits.eCommerceAction.action_type = '2' and <stuff to remove bots>
  )
从使用内置购物行为报告的UI中,我们获得了带有产品详细信息视图的3.836M唯一会话,而在使用上述查询的大查询中,获得了3.684M唯一会话

有几个问题: 1我们的印象是,带有产品视图细分的购物行为报告会话基于电子商务\u action.actiontype筛选器。这是真的吗?
2是否有一个.totals预聚合表供UI使用?

听起来问题在于COUNTDISTINCT。。。使用旧SQL时为近似值,因此计数不准确。要么改用首选方法,要么与传统SQL一起使用。

听起来问题在于COUNTDISTINCT。。。使用旧SQL时为近似值,因此计数不准确。请改用preferred或与遗留SQL一起使用。

此外,COUNTDISTINCT。。。当使用传统SQL时,可能存在仅包含非交互式点击的会话,这些会话在Google Analytics UI中不会被计算为会话,但它们由两个COUNTDISTINCT计算。。。而且精确的计数很明显。。。因为在您的查询中,他们会计算访问id


使用SUMtotals.visions,您应该会得到与UI中相同的结果,因为SUM不考虑totals.visions的空值,这些值对应于只有非交互式点击的会话。

此外,COUNTDISTINCT。。。当使用传统SQL时,可能存在仅包含非交互式点击的会话,这些会话在Google Analytics UI中不会被计算为会话,但它们由两个COUNTDISTINCT计算。。。而且精确的计数很明显。。。因为在您的查询中,他们会计算访问id


使用SUMtotals.visions,您应该得到与UI中相同的结果,因为SUM不考虑totals.visions的空值,对应于只有非交互式点击的会话。

您在查询中包括产品列表视图。 如中所述,您需要确保没有产品具有isImpression=TRUE,因为这意味着它是一个产品列表视图

此查询对包含所有iProduct为null或false的任何操作\u type='2'的所有会话求和:

SELECT
  SUM(totals.visits) AS sessions
FROM
  `project.123456789.ga_sessions_20180101` AS t
WHERE
  (
  SELECT
    LOGICAL_OR(h.ecommerceaction.action_type='2')
  FROM
    t.hits AS h
  WHERE
    (SELECT LOGICAL_AND(isimpression IS NULL OR isimpression = FALSE) FROM h.product))

对于legacySQL,您可以修改文档中的示例。

在查询中包括产品列表视图。 如中所述,您需要确保没有产品具有isImpression=TRUE,因为这意味着它是一个产品列表视图

此查询对包含所有iProduct为null或false的任何操作\u type='2'的所有会话求和:

SELECT
  SUM(totals.visits) AS sessions
FROM
  `project.123456789.ga_sessions_20180101` AS t
WHERE
  (
  SELECT
    LOGICAL_OR(h.ecommerceaction.action_type='2')
  FROM
    t.hits AS h
  WHERE
    (SELECT LOGICAL_AND(isimpression IS NULL OR isimpression = FALSE) FROM h.product))

对于legacySQL,您可以修改文档中的示例。

请注意,COUNTDISTINCT。。。在使用传统SQL时为近似值。首选使用标准SQL,或者使用EXACT_COUNT_DISTINCT与遗留SQL。是的,我们发现EXACT_COUNT_DISTINCT在度量值中指向它后,得到的值在0.3%以内。谢谢你的确认!在检索不使用的列时也要小心,这会使查询更昂贵。我建议遵循Elliott的建议,标准SQL比传统SQL强大得多。@ElliottBrossard:promote to answer-添加了一些链接作为答案,但我不确定是否还有其他原因造成这种差异。。。在使用传统SQL时为近似值。首选使用标准SQL,或者使用EXACT_COUNT_DISTINCT与遗留SQL。是的,我们发现EXACT_COUNT_DISTINCT在度量值中指向它后,得到的值在0.3%以内。谢谢你的确认!在检索不使用的列时也要小心,这会使查询更昂贵。我建议遵循Elliott的建议,标准SQL比传统SQL强大得多。@ElliottBrossard:promote to answer-添加了一些链接作为答案,但我不确定是否还有其他原因导致差异。这个答案最接近界面。我认为这是因为总计列是UI实际访问的预先计算的指标。我不明白为什么这些值不同于手工求和,但这是一个不同的问题。谢谢这个答案最接近接口。我认为这是因为总计列是UI实际访问的预先计算的指标。我不明白为什么这些值不同于手工求和,但这是一个不同的问题。谢谢