从谷歌分析

时间:2016-08-25 11:26:23

标签: google-analytics google-bigquery

我一直在尝试使用bigquery计算每个页面的会话,其中数据从GA导出到bigquery。可以找到数据的模式here

我尝试过以下查询

SELECT
    hits.page.pagePath AS page,
    COUNT(totals.visits) AS sessions
FROM
    [xxxxxxx.ga_sessions_20160801]
WHERE
    REGEXP_MATCH(hits.page.pagePath, r'(orderComplete|checkout)')
    AND hits.type = 'PAGE'
GROUP BY 
    page
ORDER BY
    sessions DESC

我将查询结果与从GA中获得的数字进行了比较,结果却截然不同。我预计上面的查询会为每个页面提供总会话数,但它会为每个页面提供总计pageviews。换句话说,上述查询的结果与每页的pageviews完全匹配,而不是每页的sessions

我也尝试了以下查询

SELECT
    hits.page.pagePath AS page,
    COUNT(hits.isEntrance) AS sessions
FROM
    [xxxxxxx.ga_sessions_20160801]
WHERE
    REGEXP_MATCH(hits.page.pagePath, r'(orderComplete|checkout)')
    AND hits.type = 'PAGE'
GROUP BY 
    page
ORDER BY
    sessions DESC

这次的结果非常接近实际,但与我从GA获得的数字不完全相同。对于某些页面,这次bigquery结果略低于GA的结果。

在我的情况下GA中没有抽样,否则结果是可以接受的,因为错误在0.5%到4%之间

我正在使用原始数据而不对GA配置文件进行任何过滤,并将相同的数据导出到bigquery。

  

问题:当我们按页面计算会话时,会话是如何计算的?

当我没有按hits.page.pagePath对结果进行分组时,我从GA获得的结果与来自bigquery的结果没有不匹配

2 个答案:

答案 0 :(得分:0)

如果您使用COUNT(totals.visits),该怎么办? COUNT(1)的结果将根据您是否使用重复字段而有所不同。可能是一些深入答案的相关问题:BigQuery flattens when using field with same name as repeated field

除此之外,标准SQL(取消选中"使用旧版SQL""显示选项")在计数方面的语义较少,尽管它需要您更明确地使用{ {3}}在这种情况下。

答案 1 :(得分:0)

要计算会话数,我使用COUNT(totals.visits)代替org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean。这似乎给了我与GA中看到的相同 - 或非常非常接近的数字。