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 是保留關鍵字,不能使用。

分析

已配置的變異版本可用作 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

請注意,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