AMP

啟用實驗性功能

AMP 實驗性元件是已發布但尚未準備好廣泛使用的功能,因此它們受到實驗性狀態的保護。

開發人員和使用者可以選擇加入以在使用這些功能完全發布之前使用它們。但應謹慎使用,因為它們可能包含錯誤或產生意想不到的副作用。

有些實驗可能永遠不會作為 AMP 專案的功能發布,這是有風險的。

以下是目前處於實驗性狀態且準備好讓開發人員測試以獲得第一批使用者回饋的元件列表

選擇加入 AMP Beta 測試頻道

AMP Beta 測試頻道是一種讓瀏覽器選擇使用較新版本 AMP JS 函式庫的方法。

AMP Beta 測試頻道版本可能較不穩定,並且可能包含並非所有使用者都可使用的功能。如果您想協助測試新版本的 AMP、回報錯誤或建構需要尚未向所有人開放的新功能的文件,請選擇加入此選項。

選擇加入 Beta 測試頻道非常適合

  • 測試和體驗尚未向所有使用者開放的新功能。
  • 在品質保證 (QA) 中使用,以確保您的網站與下一版本的 AMP 相容。

如果您發現僅在 Beta 測試頻道版本的 AMP 中發生的問題,請提交問題並描述問題。請務必包含可重現問題的頁面網址。

若要讓您的瀏覽器選擇加入 AMP Beta 測試頻道,請前往 AMP 實驗頁面並啟用「AMP Beta Channel (AMP Beta 測試頻道)」實驗。若要接收有關 AMP 重要/重大變更的通知,請訂閱 amphtml-announce 電子郵件論壇。

啟用實驗性元件

從 cdn.ampproject.org 提供

對於從 https://*.cdn.ampproject.org 提供的內容,請前往 Google AMP Cache 子網域上的 /experiments.html,並透過切換來啟用 (或停用) 任何實驗性元件。

例如,若要為來源網域為 www.example.com 的快取 AMP 頁面啟用實驗,請前往 www-example-com.cdn.ampproject.org/experiments.html

實驗選擇加入會儲存到 localStorage,並且僅在從目前網域提供的 AMP 頁面上啟用實驗。

從其他網域提供

對於從非 CDN 網域提供的內容,可以使用開發人員工具主控台中的以下程式碼來切換實驗:

AMP.toggleExperiment('experiment')

任何包含實驗性功能的 AMP 檔案都將無法通過 AMP 驗證。請移除這些實驗性元件以用於可正式發布的 AMP 文件。

為特定文件啟用實驗

文件可以選擇加入某些實驗。若要執行此操作,請在 HTML 文件的 head 中、在您的 AMP 腳本 (https://cdn.ampproject.org/v0.js) 之前放置一個名為 amp-experiments-opt-in 的 meta 標籤。其內容值是以逗號分隔的要選擇加入的實驗 ID 字串。

<head>
  ...
  <meta name="amp-experiments-opt-in" content="experiment-a,experiment-b">
  <!-- The meta tag needs to be placed before the AMP runtime script.-->
  <script async src="https://cdn.ampproject.org/v0.js"></script>
  ...
</head>

這樣做會為文件的所有訪客啟用指定的實驗。但是,並非所有實驗都允許文件層級的選擇加入。如需允許文件層級選擇加入的實驗完整列表,請參閱專案 prod-config.json 檔案中的 allow-doc-opt-in 屬性。請注意,文件選擇加入可能會被使用者選擇退出覆寫。

Origin Trials (來源試用)

Origin Trials (來源試用) 讓開發人員可以在正式環境中使用實驗性功能並提供重要的回饋。

傳統上,處於實驗模式的功能可以在開發中使用,但不能推送到正式環境。透過 Origin Trials (來源試用),感興趣的開發人員可以選擇加入以在正式環境中測試實驗性功能,並抱持以下期望:

  • 測試時間有限。
  • 此功能在 Origin Trials (來源試用) 之後可能會進行一些變更。

Origin Trials (來源試用) 提供在全新功能完全上線之前實作並從中受益的機會。此功能將存在於開發人員的網站上,而不是受到實驗的保護,並且回饋可以直接影響功能的發展方向。

啟用 Origin Trial (來源試用)

在每個使用 Origin Trial (來源試用) 實驗的頁面的 <head> 標籤內包含以下 <meta> 標籤

<meta name="amp-experiment-token" content="{copy your token here}">

"amp-experiment-token" 是字串常值 "amp-experiment-token"。而不是權杖本身 (權杖本身放在 content 屬性中),也不是實驗的名稱。