防止Google Optimize中的2个实验重叠?

时间:2018-01-12 16:57:19

标签: javascript cookies google-analytics google-tag-manager google-optimize

您能否帮我解决一条规则,该规则可以排除那些已经在Google Optimize中接触过其他实验的用户?

最好的方法是什么?

我正在考虑使用第一方cookie变量或其他一些自定义变量来标记用户"暴露"所以另一个实验不会影响他。

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

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

3 个答案:

答案 0 :(得分:1)

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

因此,如果您要运行两个互斥的实验,则只要_gaexp包含other的ID,您需要做的就是从该用户中排除该用户。步骤如下:

  • 在受众群体定位中,添加一条规则,然后选择First-party cookie
  • 创建一个变量并将其值设置为_gaexp
  • 选择does not contain选项并在值中添加其他实验的ID
  • 保存

对其他实验重复相同的步骤

答案 1 :(得分:1)

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

Optimize评估是否应选择一个新用户加入实验列表时,会对所有选择加入一次创建_gaexp cookie,但不创建它,而是在选择之间进行更新。 ins。

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

现在的问题是,第二次访问时,用户将被排除,因为他们现在失败目标受众定位条件,因此无法看到任何一个实验的变体。他们的Cookie现在同时包含<expAId><expBId>

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

我当前的工作解决方案是创建一个名为rand100的自定义JavaScript规则。对于初次使用的用户,它将生成一个随机数0-100。如果该数字小于50,则会对它们进行Exp A评估,并存储包含rand100值的cookie。如果等于或大于50,则会对它们进行Exp B评估。对于回头用户,将检索cookie,并返回先前的rand100值(而不是新值),因此它们仍然满足以下条件:他们选择参加的实验。

一个cookie在参与评估之间共享,因为它在Exp A评估期间运行自定义JavaScript,因此该cookie可用于Exp B评估。 Cookie设置为在90天后过期,这是Optimize跟踪的默认过期时间。

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

答案 2 :(得分:0)

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

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

我知道Optimizely有一个算法可以让每个用户都参与多个实验,但是我认为Google Optimize还没有这种功能。