在非 AMP 網站上使用 Web Story Player 建立 Web Story 體驗
重要事項:本文件不適用於您目前選取的格式:電子郵件!
什麼是 Web Story Player?
Web Story Player 是讓使用者在您的網站上透過 Web Story 獲得豐富使用者體驗的最佳方式。您可以將其視為影片播放器:您的裝置中只有單一影片當然沒問題,但如果將它放在網路上線的影片播放器中,就能解鎖許多功能和優點:額外的控制項 (例如字幕)、與數百萬部其他影片並存,可以在原始影片結尾提供相關內容,進而提高探索性等等。
您可以將 Web Story Player 視為類似的概念。如果只連結到單一故事,您可能會錯失其他故事平台 (例如 Instagram、Snapchat) 中常見,且故事使用者習以為常的許多功能和體驗。請參閱下表,其中列出一些範例。
單一故事 | Web Story Player | |
更豐富的使用者體驗 | ||
向下滑動即可結束故事並返回您的網站 | ❌ | ✅ |
滑動至下一個/上一個故事 | ❌ | ✅ |
相同網站的進入點 | ❌ | ✅ |
可自訂的能力 | ||
自訂事件 (例如在故事之間導覽) | ❌ | ✅ |
額外的使用者介面控制項 | ❌ | ✅ |
為故事新增出處 | ❌ | ✅ |
以程式輔助方式擷取更多故事 | ❌ | ✅ |
自訂行為 (例如循環包裝) | ❌ | ✅ |
常見的實作方式
您可以使用 Web Story Player 在自己的平台上建立多種體驗,從輪播、獨立卡片到直接將故事嵌入網頁中。我們已開發一份詳細的 UX 指南,其中包含適用於這些範例的最佳做法。我們建議最常見的模式是輪播。我們將概述建立這類體驗的最佳做法,但您應可自由實驗並實作最適合您使用案例的方式。我們將在未來幾週內分享更廣泛的 UX 模式清單。
輪播 (UX 詳細資訊)
故事輪播會並排顯示多個故事。通常包含故事預覽,例如縮圖和標題。按一下後,就會開啟故事。使用者接著可以瀏覽故事或在故事之間滑動。
本範例中的重要事項
- 在桌面上
- 在行動裝置上
- 支援滑動以在故事之間導覽
- 「捲動背景頁面」功能已停用,以便將該手勢用於滑動關閉
- 進入點卡片的大小比桌面版小
- 沒有背景卡片 (因為行動版沒有懸停功能)
- 啟用向下滑動以關閉故事
- 在兩種螢幕尺寸上
如要查看建構此輪播所需的完整程式碼,請參閱codepen 專案。
將故事新增至播放器
將故事新增至播放器的方式主要有三種。
- 將故事宣告為播放器 HTML 內的錨點標記。
- 使用擷取行為從端點擷取更多故事。
- 使用 add() API 新增一個或多個故事。
如果您只想在播放器中顯示一組靜態故事,最佳選項是 (1)。但如果您想要動態新增故事,可以使用選項 (2) 或 (3)。
顯示故事
顯示故事並將其新增至播放器的最簡單方法,是直接在 <amp-story-player>
元素所在的 HTML 中,將故事宣告為 <a>
標記。請參閱指南「顯示 Web Story」章節中的程式碼範例。
從端點擷取更多故事
使用者在 Web Story Player 中瀏覽故事時,您可以建立「無限捲動」體驗。如要這麼做,請加入擷取動作,並在 JSON 設定中指定端點。當使用者接近最後載入的故事時,播放器會自動擷取更多故事。您可以設定後端個人化系統,並使用 fetch
動作來提供為使用者自訂的故事。
使用 add() API 新增故事
您可以使用 add() API 手動新增一個或多個故事。
可自訂的使用者介面
播放器解鎖了許多功能,可讓您自訂系統顯示的使用者介面。除了控制項之外,您也可以為播放器內的故事新增出處,讓使用者知道他們目前正在與哪個發布者互動。
為建立者/發布者新增出處
故事頂端的建立者標題
故事出處會顯示實體或發布者的名稱和標誌。按一下後,會將使用者導覽至實體的網址或發布者的標準網域。
如要在故事中顯示出處,請使用播放器的 display
和 attribution
選項。請參閱JSON 設定。
資料將來自故事文件中 <amp-story>
的中繼資料屬性,如說明所述
- 標誌:
entity-logo-src
屬性 (如果提供),否則為publisher-logo-src
屬性。 - 文字字串:
entity
屬性 (如果提供),否則為publisher
屬性。 - 按一下出處後,會將使用者導覽至網址。這會來自
entity-url
屬性 (如果提供),否則會使用故事的標準網域。
如要進一步瞭解這些屬性,請參閱amp-story 的中繼資料指南。
修改及新增現有控制項
其中包括用於建立燈箱式體驗的「關閉」按鈕,以及用於在桌面上導覽故事的「跳至下一個」按鈕。您也可以新增自己的自訂控制項,並監聽其事件以執行自訂動作。請參閱以下範例,以瞭解您可以執行的操作。
如要設定控制項,請指定具有 type=”application/json”
屬性的 JSON 設定,做為 <amp-story-player>
元素的子項。
在設定中,指定「controls」陣列。「controls」結構如下所述。
設定最終看起來會像這樣
<amp-story-player>
<script type="application/json">
{
"controls": [
{
"name": "close",
"position": "start"
},
{
"name": "skip-to-next"
}
]
}
</script>
<a href="./story1.html"> ... </a>
<a href="./story2.html"> ... </a>
</amp-story-player>
範例 1 - 起始位置的關閉按鈕
由於預設設定 (在包含自訂 UI 設定 JSON 時) 會將所有按鈕設定在右側,因此我們只需將關閉按鈕移至起始位置即可。
<amp-story-player>
<script type="application/json">
{
"controls": [
{
"name": "close",
"position": "start"
}
],
}
</script>
...
範例 2 - 在桌面上顯示跳至下一個故事
在桌面上,您現在可以顯示一個按鈕,可從目前的故事導覽至下一個故事。一旦使用者到達播放器中故事的結尾,也會自動停用此按鈕。
<amp-story-player>
<script type="application/json">
{
"controls": [
{
"name": "skip-to-next"
}
],
}
</script>
...
</amp-story-player>
範例 3 - 變更關閉按鈕的圖示
<amp-story-player>
<script type="application/json">
{
"controls": [
{
"name": "close",
"backgroundImageUrl": "data:image\/svg+xml;charset=utf-8,<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.77778 9.33333H4V4H9.33333V5.77778H5.77778V9.33333ZM4 14.6667H5.77778V18.2222H9.33333V20H4V14.6667ZM18.2222 18.2222H14.6667V20H20V14.6667H18.2222V18.2222ZM14.6667 5.77778V4H20V9.33333H18.2222V5.77778H14.6667Z\" fill=\"white\"\/><\/svg>",
"position": "start"
}
]
}
</script>
...
</amp-story-player>
修改行為
您可以透過許多選項自訂播放器的行為。請詳閱以下章節,以瞭解您可以執行的操作。
循環包裝
如果您希望使用者在看完最後一個故事後返回第一個故事,可以啟用循環包裝選項。
在背景倒轉故事
如果您想要倒轉使用者已在播放器中看過的故事,可以使用 rewind() API
。
程式輔助導覽
您可以使用程式輔助方式在播放器內的故事和頁面之間導覽。如果您想要在播放器外部建立自己的導覽按鈕,或者如果您想要根據事件切換頁面,例如,這會很有用。如要這麼做,請使用 go() 和 show() API 及其變體。
最佳化效能和 SEO
播放器在背景中執行許多作業,以確保在任何給定時刻只使用所需的資源。話雖如此,您可以在您的端執行一些操作,以確保您的網站在使用播放器時效能良好。
適用於首頁上方的播放器
如果您希望將故事嵌入在首頁上方 (網頁的上半部;無需向下捲動頁面即可看見),我們建議等到使用者互動後再載入和播放第一個故事。如要這麼做,請按照下列步驟執行
- 使用 JSON 設定停用自動播放。
- 新增使用者互動,以開始播放故事。
- 在偵測到使用者互動時,使用播放器 API 呼叫 play()。
適用於首頁下方的播放器
首頁下方的播放器會自動針對效能進行最佳化,並且只會預先載入第一個故事,直到偵測到捲動為止。一旦播放器在可視區域中顯示,故事就會開始播放。