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