Google analytics 使用Google Big Query构建基本漏斗

Google analytics 使用Google Big Query构建基本漏斗,google-analytics,google-bigquery,Google Analytics,Google Bigquery,我注意到有很多使用Google BigQuery的Google Analytics用户,但是文档非常有限。是否可以帮助生成一个简单的漏斗,显示访问/pageA然后/pageB然后/pageC的用户 我见过很多不同的方法——我不清楚正确的方法是什么 检查这里: 或者,如果您想手动执行此操作: 选择所有会话登录起始页记录最小点击数 在点击次数大于起始页匹配会话ID中的点击次数的下一页上使用“选择所有会话”左连接 重复步骤2,直到漏斗完成 按要聚合的页面名称对分组的所有会话进行计数 请点击此处: 或者

我注意到有很多使用Google BigQuery的Google Analytics用户,但是文档非常有限。是否可以帮助生成一个简单的漏斗,显示访问/pageA然后/pageB然后/pageC的用户

我见过很多不同的方法——我不清楚正确的方法是什么

检查这里:

或者,如果您想手动执行此操作:

选择所有会话登录起始页记录最小点击数 在点击次数大于起始页匹配会话ID中的点击次数的下一页上使用“选择所有会话”左连接 重复步骤2,直到漏斗完成 按要聚合的页面名称对分组的所有会话进行计数 请点击此处:

或者,如果您想手动执行此操作:

选择所有会话登录起始页记录最小点击数 在点击次数大于起始页匹配会话ID中的点击次数的下一页上使用“选择所有会话”左连接 重复步骤2,直到漏斗完成 按要聚合的页面名称对分组的所有会话进行计数
您可以先将用户的点击数与数组_concat_agg连接起来,然后根据新的用户范围表进行计算。当然,这在很大程度上取决于你选择的时间范围

例如,这里有来自谷歌的虚拟数据:

标准SQL 以阿拉格为例 选择 全视, -在多个会话上连接数组 按访问开始时间ASC userHits排序的数组\u CONCAT\u AGGhits 从…起 `google.com:analytics-bigquery.LondonCycleHelmet.ga_sessions_20130910` 按1分组 ,以 选择 全视, -使用集合命中数组的unnest和offset组合获取适当的运行索引 数组选择作为结构索引+1作为命中数,页面从UNNESTuserHits开始,偏移量作为索引作为命中数 来自阿拉格 从旅程中选择* 当您运行此程序时,您可以看到新的原材料。在第一步中,我连接点击,在第二步中,我为页面创建适当的索引,并将所有内容放回点击数组中

您可以使用交叉连接和比较页面的步骤和顺序来构建用户旅程:

标准SQL 以阿拉格为例 选择 全视, 访问会议, -在多个会话上连接数组 按访问开始时间ASC userHits排序的数组\u CONCAT\u AGGhits 从…起 `google.com:analytics-bigquery.LondonCycleHelmet.ga_sessions_20130910` 按1分组 ,以 选择 全视, 会议, -使用集合命中数组的unnest和offset组合获取适当的运行索引 数组选择作为结构索引+1作为hitNumber,页面从UNNESTuserHits开始,偏移量作为索引,其中type='page'作为命中 来自阿拉格 -漏斗:首页:/,登录:/login.html,篮子:/basket.html,确认:/confirm.html 选择 所有会议, 第1号诱惑者, -检查是否有任何页面是主页 如果j中的LOGICAL_或Page.pagePath='/',1,0点击step1_home,则选择SUM, -自身交叉连接命中数组:所有页面与所有页面的组合:这两个页面中的任何组合?登录前回家?:如果对任何给定金额都是,则加1 如果LOGICAL_ORa.page.pagePath='/'和b.page.pagePath='/login.html'和a.hitNumber请在使用前测试它-我没有;但它应该指向正确的方向。

您可以先将用户的点击数与array_concat_agg连接起来,然后根据新的用户范围表进行计算。当然,这在很大程度上取决于你选择的时间范围

例如,这里有来自谷歌的虚拟数据:

标准SQL 以阿拉格为例 选择 全视, -在多个会话上连接数组 按访问开始时间ASC userHits排序的数组\u CONCAT\u AGGhits 从…起 `google.com:analytics-bigquery.LondonCycleHelmet.ga_sessions_20130910` 按1分组 ,以 选择 全视, -使用集合命中数组的unnest和offset组合获取适当的运行索引 数组选择为ST UTC索引+1作为命中数,页面从UNNESTuserHits开始,偏移量作为索引作为命中数 来自阿拉格 从旅程中选择* 当您运行此程序时,您可以看到新的原材料。在第一步中,我连接点击,在第二步中,我为页面创建适当的索引,并将所有内容放回点击数组中

您可以使用交叉连接和比较页面的步骤和顺序来构建用户旅程:

标准SQL 以阿拉格为例 选择 全视, 访问会议, -在多个会话上连接数组 按访问开始时间ASC userHits排序的数组\u CONCAT\u AGGhits 从…起 `google.com:analytics-bigquery.LondonCycleHelmet.ga_sessions_20130910` 按1分组 ,以 选择 全视, 会议, -使用集合命中数组的unnest和offset组合获取适当的运行索引 数组选择作为结构索引+1作为hitNumber,页面从UNNESTuserHits开始,偏移量作为索引,其中type='page'作为命中 来自阿拉格 -漏斗:首页:/,登录:/login.html,篮子:/basket.html,确认:/confirm.html 选择 所有会议, 第1号诱惑者, -检查是否有任何页面是主页 如果j中的LOGICAL_或Page.pagePath='/',1,0点击step1_home,则选择SUM, -自身交叉连接命中数组:所有页面与所有页面的组合:这两个页面中的任何组合?登录前回家?:如果对任何给定金额都是,则加1 如果LOGICAL_ORa.page.pagePath='/'和b.page.pagePath='/login.html'和a.hitNumber请在使用前测试它-我没有;但它应该指向正确的方向。

是的-所有这些似乎都集中在基于会话的漏斗上-不是真正基于用户的漏斗你可以通过visitorid或自定义用户定义轻松计数。是的-所有这些似乎都集中在基于会话的漏斗上-不是真正基于用户的漏斗你可以通过visitorid或自定义用户轻松计数定义。看起来很棒马丁-谢谢。我会试着理解它一点并测试它。好的,如果你有任何问题,请告诉我-速度慢了,我找到了一个更简单的方法来做-但我想探索你的解决方案,看看它是否更好更准确只是它的代码要多得多understand@MobileBloke请你把更简单的解决方案贴出来作为回答好吗?只是为了让每个人都能使用它。100%的人会这样做——如果更好的话。我不得不跳到另一个问题上,所以我把这个标记正确了。看起来很棒,马丁-谢谢。我会试着理解它一点并测试它。好的,如果你有任何问题,请告诉我-速度慢了,我找到了一个更简单的方法来做-但我想探索你的解决方案,看看它是否更好更准确只是它的代码要多得多understand@MobileBloke请你把更简单的解决方案贴出来作为回答好吗?只是为了让每个人都能使用它。100%的人会这样做——如果更好的话。我不得不跳转到另一个问题上,因此我已将此标记为正确。