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-pixel
和 amp-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 屬性選取器來設定文件樣式。例如,以下程式碼會隱藏實驗 aExperiment
的 treatment1
群組的測試橫幅
body[amp-x-aExperiment='treatment1'] .test-banner { display: none; }
驗證
一個 AMP 文件最多只能有一個 amp-experiment
元素。請參閱 AMP 驗證器規格中的 amp-experiment 規則。
您已經讀過這份文件很多次,但它真的沒有涵蓋您的所有問題嗎?也許其他人也有同感:在 Stack Overflow 上與他們聯繫。
前往 Stack Overflow 發現錯誤或缺少功能?AMP 專案強烈鼓勵您的參與和貢獻!我們希望您能成為我們開放原始碼社群的持續參與者,但我們也歡迎針對您特別感興趣的問題提供一次性的貢獻。
前往 GitHub