AMP

amp-experiment

說明

用於在 AMP 頁面上進行使用者體驗實驗。

 

必要指令碼

<script async custom-element="amp-experiment" src="https://cdn.ampproject.org/v0/amp-experiment-0.1.js"></script>

用法

使用 amp-experiment 元件來進行使用者體驗實驗,例如 A/B 測試和多變量測試,並收集相應的資料。

<amp-experiment> 提供 Hook 來定義可自訂的變異版本,並根據設定將流量配置給每個變異版本。對於每個頁面瀏覽,變異版本配置也會公開給 amp-pixelamp-analytics,以便收集必要的資料,以執行跨變異版本的統計比較。

支援使用者黏性變異版本指派,為同一用戶端提供一致的使用者體驗。此功能仰賴 AMP 的用戶端 ID 功能,以提供跨頁面瀏覽一致的隨機值。請注意,在某些司法管轄區,使用具有此行為的功能可能需要更新您的隱私權政策,或徵求使用者同意。(如果這與您相關,請參閱下方的 consentNotificationId。)

多個實驗可以與各自的變異版本集平行在同一個 AMP 文件上執行。在使用者黏性模式中,配置在不同實驗之間是正交的,這表示來自不同實驗的 2 個變異版本(使用者群組)之間不會有相關性。

設定

實驗的設定是在 JSON 物件中指定。

<amp-experiment>
  <script type="application/json">
    {
      "aExperiment": {
        "sticky": true,
        "consentNotificationId": "consent-notif",
        "variants": {
          "treatment1": 12.5,
          "treatment2": 12.5,
          "treatment3": 25.0
        }
      },
      "bExperiment": {...}
    }
  </script>
</amp-experiment>

在頂層,JSON 是一個實驗設定的對應,依實驗名稱作為索引鍵。在每個實驗中,可用設定如下表所述

名稱 是否為必填欄位? 說明
sticky 否,預設值 = true 實驗指派是否對使用者具有黏性。
consentNotificationId 否,預設值 = undefined 在可以進行黏性實驗之前,要關閉的 amp-user-notification 的元素 ID。為了不封鎖頁面呈現,如果在本造訪之前未提供同意聲明,將會略過指定此欄位的實驗。也就是說,只有在使用者同意的情況下返回造訪才能觸發這類實驗。此設定僅在 sticky=true 時相關。
variants 名稱對百分比的對應,其中百分比是一個浮點數,大於 0 且小於 100,表示將配置給變異版本的流量比例。變異版本不必加總到 100%。在這種情況下,將有一部分的流量配置給名為 none 的變異版本,這是一個保留關鍵字,表示未配置任何變異版本。
進階設定
cidScope 否,預設值 = amp-experiment使用者黏性實驗的CID 範圍。只有在您想要重複使用現有的 CID 時才有用。此設定僅在 sticky=true 時相關。
group 否,預設值 = {experimentName} 具有相同群組名稱的實驗將共用相同的 CID 空間。只有在多個實驗想要具有相關的使用者分組時才有用。此設定僅在 sticky=true 時相關。

實驗名稱和變異版本名稱中使用的字元僅限於 [a-z,A-Z,0-9,-,_]none 是保留關鍵字,不能使用。

分析

配置的變異版本可作為網址替換變數使用:VARIANT(experiment)

<amp-pixel
  src="https://example.com?xname=aExperiment&xvar=VARIANT(aExperiment)"
></amp-pixel>

對於未配置任何變異版本的實驗,此變數會解析為字串常值 none

變數 VARIANTS 會傳回以以下格式序列化的所有變異版本

{experiment1}.{variant}!{experiment2}.{variant}...

例如,網址 https://example.com?variants=VARIANTS 會展開為

https://example.com?variants=aExperiment.treatmentA!bExperiment.treatmentB

覆寫變異版本配置

可以透過網址片段將實驗強制設定為變異版本。這在開發中很有用。

https://example.com/amparticle#amp-x-experiment=treatment

請注意,與 body 屬性中使用相同的 amp-x- 字首。

樣式

設定變異版本樣式

對於每個實驗,配置的變異版本會公開為文件 body 元素的屬性。

<body amp-x-aExperiment="treatment1" amp-x-bExperiment="treatment3"></body>

請注意,實驗名稱會加上 amp-x- 字首,以避免命名衝突。未配置任何變異版本的實驗會被忽略。

使用 CSS 屬性選取器來設定文件樣式。例如,以下程式碼會隱藏實驗 aExperimenttreatment1 群組的測試橫幅

body[amp-x-aExperiment='treatment1'] .test-banner {
  display: none;
}

驗證

一個 AMP 文件最多只能有一個 amp-experiment 元素。請參閱 AMP 驗證器規格中的 amp-experiment 規則

需要更多協助嗎?

您已經讀過這份文件很多次,但它真的沒有涵蓋您的所有問題嗎?也許其他人也有同感:在 Stack Overflow 上與他們聯繫。

前往 Stack Overflow
發現錯誤或缺少功能?

AMP 專案強烈鼓勵您的參與和貢獻!我們希望您能成為我們開放原始碼社群的持續參與者,但我們也歡迎針對您特別感興趣的問題提供一次性的貢獻。

前往 GitHub