我正在尝试使用Google Analytics BigQuery数据导出计算特定屏幕的应用屏幕视图数量。我的方法是使用屏幕视图hits.type
来计算点击次数。例如,要计算我们应用程序的Web版本上的页面视图数量,我会计算hits.type = 'PAGE'
的点击次数。但我无法看到如何在应用上执行此操作,因为没有“SCREENVIEW”hits.type
值。
这是来自Google hits.type
)totals.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")
)
但这会返回过高的数字。
答案 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)