如何在 Google AMP 中跟踪多个 Google 优化实验?

How do I track multiple Google Optimize experiments in Google AMP?

amp-experiment docs 演示了在 AMP 中跟踪多个实验。但是,如何正确配置 amp-analytics

在 Google 优化团队的 reporting section of the docs, it mentions a VARIANTS placeholder that will be replaced with a serialized list of experiment and variant names. This answer 中,似乎表明它可以像这样添加到 <amp-analytics> 中的请求中:

<amp-analytics type="googleanalytics">
  <script type="application/json">
    {
      "vars": {
        "account": "..."
      },
      "requests": {
        "experiment": "${pageview}&exp=VARIANTS"
      },
      "triggers": {
        "pageview": {
          "on": "visible",
          "request": "experiment"
        }
      }
    }
  </script>
</amp-analytics>

不过,当我尝试此操作时,Google Optimize 没有记录任何访问。似乎要求 experiment 请求包括 xid/xvar(用于实验 ID/variant)而不是:

<amp-analytics type="googleanalytics">
  <script type="application/json">
    {
      ...
      "requests": {
        "experiment": "${pageview}&xid=${xid}&xvar=${xvar}"  <-- modified
      },
      "triggers": {
        "pageview": {
          "on": "visible",
          "request": "experiment",
          "vars": {                                          <-- added
            "xid": "skdjEjia23_1ksjd",                       <-- 
            "xvar": "VARIANT(my-experiment-name)"            <-- 
          }                                                  <-- 
        }
      }
    }
  </script>
</amp-analytics>

这很好用,但是我一次只能 运行 一个实验,因为 xid/xvar 被硬编码到一个特定的实验。

有什么想法可以 运行 多个实验吗?

好的,我明白了。我从 Google Optimize forum 中的 Google 优化团队得到了答复。

VARIANTS 变量被序列化实验 names 和变体所取代,但是 Google Analytics 显然需要的是实验 IDs 和变体。因此,正确的解决方案是这样配置 <amp-analytics>

<amp-analytics type="googleanalytics">
  <script type="application/json">
    {
      "vars": {
        "account": "..."
      },
      "requests": {
        "experiment": "${pageview}&exp=a1b2c3.VARIANT(my-first-experiment)!d4e5f6.VARIANT(my-second-experiment)"
      },
      "triggers": {
        "pageview": {
          "on": "visible",
          "request": "experiment",
        }
      }
    }
  </script>
</amp-analytics>

请注意,a1b2c3d4e5f6 是实验 ID,而不是名称。它们后面的 .VARIANT(...) 部分表示为这些实验选择的变体的索引。不知道为什么首先使用 ID 和 VARIANT() 回调中的名称 ‍♂️