1

您能否帮我制定一条规则,该规则可以排除已经在 Google 优化工具中进行过其他实验的用户?

最好的方法是什么?

我正在考虑使用第一方 cookie 变量或其他一些将用户标记为“已公开”的自定义变量,以便另一个实验不会影响他。

此外,我可以在 Optimize 的可视化编辑器中使用“运行自定义“JavaScript”来创建这样的 cookie。这会解决问题吗?

我也无法理解如何防止 2 个实验同时运行。这样看到实验 A 的用户就不会看到实验 B 或 C(免费版仅限 3 个实验)。是否有任何规则或配置可以帮助解决这个问题?

4

3 回答 3

2

只需要解决这个问题!@swapnil-jain 的方法似乎在表面上起作用,但不幸的是有一些问题。

当优化工具评估新用户是否应该选择加入实验列表时,它会_gaexp为所有选择加入的 cookie 创建一次,它不会创建它然后在选择加入之间更新它。

因此,它会查找_gaexpcookie,评估 Exp A ( does not contain <expBId>) 的选择加入并选择用户加入 Exp A。然后它评估 Exp B ( does not contain <expAId>) 的选择加入,并选择用户加入 Exp B。然后它创建一个cookie 读取类似的东西GAX1.3.<expAId>.<expDate>.<value>.<expBId>.<expDate>.<value>

现在的问题是,在他们第二次访问时,用户将被排除在任一实验的变体之外,因为他们现在符合受众定位条件。他们的 cookie 现在同时包含<expAId><expBId>

我在尝试_gaexp使用正则表达式定位 cookie 时遇到了类似的问题,因为在决定选择加入后,cookie 是为两个实验一次性创建的。

我当前的工作解决方案是创建一个名为rand100. 对于第一次使用的用户,它会生成一个随机数 0-100。如果该数字低于 50,则为 Exp A 评估它们,并存储包含该rand100值的 cookie。如果等于或大于 50,则将其评估为 Exp B。对于返回用户,检索 cookie,并rand100返回之前的值而不是新的值,因此他们仍然满足他们已经进行的实验的定位条件被选择加入。

一个 cookie 在选择加入评估之间共享,因为它在 Exp A eval 期间运行自定义 JavaScript,因此 cookie 可用于 Exp B eval。cookie 设置为 90 天后过期,这是优化跟踪的默认过期时间。

我以 100% 的流量运行这些实验,但从技术上讲,他们只看到 50% 的流量,因为rand100. 流量在 control/v1/control/v1 之间分配 25%/25%/25%/25%。

于 2020-06-16T18:30:39.480 回答
1

当我们创建任何实验时,谷歌会创建一个实验 ID,我们可以在详细信息部分找到它。此外,当为用户触发实验时,它会设置一个_gaexp包含该实验 ID(除了其他标识符)的 cookie。

所以,如果你想运行两个互斥的实验,你需要做的就是从实验中排除一个_gaexp包含其他 id 的用户。以下是步骤:

  • 在受众定位中,添加规则并选择First-party cookie
  • 创建一个变量并将其值设置为_gaexp
  • 选择该does not contain选项并在值中添加其他实验的 id
  • 节省

对另一个实验重复相同的步骤

于 2020-05-29T12:00:28.487 回答
0

这是我仍在使用 Google Experiments 的原因之一。它的 api 提供了更多的控制。话虽如此,您应该能够通过在用户浏览器中设置 cookie 来实现您正在寻找的结果。以下是我的看法:

  • 所有实验 cookie 具有相同的名称但不同的值,以避免创建多个 cookie。
  • 在新会话中,检查 cookie 是否存在
    • 存在 - 触发标签以初始化适当的实验。
    • 不存在 - 确定将用户放入哪个实验存储桶并触发标签以初始化适当的实验。

我知道 Optimizely 有一种算法可以对实验用户进行分组,每个用户都可以参与多个实验,但我不相信 Google Optimize 还具有这种功能。

于 2018-01-12T22:50:28.913 回答