使用 Google Optimize 和 GTM 进行的多个服务器端实验

Daw*_*zak 7 google-analytics google-tag-manager google-optimize

我想知道是否可以使用 Google Optimize 和 Google Tag Manager 设置多个服务器端实验。我们关注了/sf/answers/3651048621/,它似乎对从数据层发送的值工作得很好,但考虑到 Analytics 变量名称(expId 和 expVar),感觉我们只能这样做在任何给定时间进行一次实验。

jon*_*_wu 4

不要发送单独的expIdexpVar与 Google Analytics - Universal Analytics Pageviewexp而是设置为包含两者,并通过 分隔多个实验!

将其与参考 SO 问题和官方文档中找到的信息结合起来,我们必须将.实验 ID 和实验变体分开,并-在多变量测试中分离任何变体。

例如,如果您在第一部分中提交变体索引为 1(第一个非对照变体)的实验 ID A(现实生活中更长),以及变体 0(对照)和变体 2 的实验 ID B (第二个非控制变体)对于第二部分,您将设置expA.1!B.0-2.

设置数据层

如果您要创建测试服务器端,则无需在 GTM 中求助于任何 JavaScript。只需设置变量dataLayerexp,然后创建一个从 GTM 中引用该变量的变量即可dataLayer。我发现,即使 GTM 和 Google Analytics Pageview 是异步运行的,我也必须尽早设置数据,以便 GA 能够接收到它。您可以在任何地方为此添加单独的脚本标记,或者将其添加到 GTM 代码段本身(如果易于修改)。<head>就我而言,我只是使用 Cloudflare Worker将其注入到末尾HTMLRewriter,因为我的测试是在边缘实现的。

<script>var dataLayer=dataLayer||[];dataLayer.push({"exp":"A.1!B.0-2"})</script>
Run Code Online (Sandbox Code Playgroud)

我是如何确定这一点的

我通过临时添加客户端 Google Optimize JavaScript,并启动两个并发实验,然后查看正在发送的网络请求,发现了这种格式。我已经在开发实例上对此进行了简要测试,并且数据似乎已输入。