我想知道是否可以使用 Google Optimize 和 Google Tag Manager 设置多个服务器端实验。我们关注了https://stackoverflow.com/a/52157837/12936081,它似乎与从数据层发送的值一起工作得很好,但考虑到 Analytics 变量名称(expId 和 expVar),感觉我们只能这样做在任何给定时间进行一次实验。
1 回答
而不是发送一个单独的expId
和expVar
与谷歌分析 - 通用分析Pageview
,exp
而是设置为包含两者,并通过 分开多个实验!
。
将其与引用的 SO 问题和官方文档中的信息相结合,我们必须.
分离实验 ID 和实验变体,并-
在多变量测试中分离任何变体。
例如,如果您提交实验 ID A(在现实生活中更长),变体索引为 1(第一个非对照变体),实验 ID B 在第一部分提交变体 0(对照),变体 2 (第二个非控制变体)对于第二部分,您设置exp
为A.1!B.0-2
.
设置数据层
如果您正在创建测试服务器端,则无需求助于 GTM 中的任何 JavaScript。只需dataLayer
使用exp
变量集设置 ,然后创建一个引用dataLayer
GTM 中的变量的变量。我发现即使 GTM 和 Google Analytics(分析)网页浏览命中异步运行,我也必须尽早设置数据,以便 GA 接收它。您可以在任何地方为此添加单独的脚本标记,或者如果易于修改,则将其添加到 GTM 片段本身。<head>
就我而言,我只是使用 Cloudflare Worker 将其注入到末尾HTMLRewriter
,因为我的测试是在边缘实现的。
<script>var dataLayer=dataLayer||[];dataLayer.push({"exp":"A.1!B.0-2"})</script>
我是如何确定的
我通过临时添加客户端 Google Optimize JavaScript,并启动两个并发实验,然后查看正在发送的网络请求,找到了这种格式。我已经在开发实例上对此进行了简要测试,并且数据似乎进来了。