使用Google Analytics BigQuery导出计算应用屏幕视图

时间:2018-01-26 10:13:45

标签: google-analytics google-bigquery

我正在尝试使用Google Analytics BigQuery数据导出计算特定屏幕的应用屏幕视图数量。我的方法是使用屏幕视图hits.type来计算点击次数。例如,要计算我们应用程序的Web版本上的页面视图数量,我会计算hits.type = 'PAGE'的点击次数。但我无法看到如何在应用上执行此操作,因为没有“SCREENVIEW”hits.type值。

这是来自Google hits.typetotals.screenviews的说明:

  

击中的类型。其中一个:“PAGE”,“TRANSACTION”,“ITEM”,“EVENT”,   “社会”,“APPVIEW”,“EXCEPTION”。

还有另一种方法可以解决这个问题吗?

我尝试使用SELECT hits.appInfo.screenName, SUM(totals.screenviews) AS screenViews FROM (TABLE_DATE_RANGE([tableid.ga_sessions_], TIMESTAMP('2018-01-12'), TIMESTAMP('2018-01-12') )) GROUP BY hits.appInfo.screenName 指标:

 R> my_table %>% 
       spark_write_table(., 
             path="mytable",
             mode="append",
             partition_by=c("col1", "col2")
        )

但这会返回过高的数字。

2 个答案:

答案 0 :(得分:2)

旧版SQL会自动删除您的数据,从而解释为什么SUM(totals.screenviews)最终会更高(基本上此字段会重复)。

我建议在Standard SQL中解决这个问题,这样会更容易,更快捷。看看这是否适合你:

#standardSQL
SELECT
  name,
  SUM(views) views
FROM(
  SELECT 
    ARRAY(SELECT AS STRUCT appInfo.screenName name, COUNT(1) views FROM UNNEST(hits) WHERE type = 'APPVIEW' GROUP BY 1) data
  FROM `projectId.datasetId.ga_sessions_*`
  WHERE TRUE
    AND EXISTS(SELECT 1 FROM UNNEST(hits) WHERE type = 'APPVIEW')
    AND _TABLE_SUFFIX BETWEEN('20180112') AND ('20180112')
), UNNEST(data)
GROUP BY 1
ORDER BY 2 DESC

答案 1 :(得分:0)

hit.type是'APPVIEW',因为它不计算事件。

#standardSQL SELECT hit.appInfo.screenName name, count(hit.appInfo.screenName) view FROM project_id.dataset_id.ga_sessions_*, UNNEST(hits) hit WHERE type = 'APPVIEW' GROUP BY name)