AMP

amp-experiment

說明

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

 

必要的指令碼

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

用法

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

<amp-experiment> 提供定義可自訂變數的掛鉤,並根據設定將流量分配給每個變數。對於每個網頁瀏覽,變數配置也會暴露給 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 是保留關鍵字,不能使用。

分析

分配的變數可作為URL 替換變數使用:VARIANT(experiment)

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

對於沒有分配變數的實驗,此變數解析為字串文字 none

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

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

例如,URL https://example.com?variants=VARIANTS 會擴展為:

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

覆寫變數配置

可以通過 URL 片段強制實驗到一個變數。這在開發中很有用。

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

請注意,與正文屬性中使用的 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