開始使用直播專用的 SGAI

使用 Google 動態廣告插播 (DAI) 廣告連播放送 API。

伺服器導向廣告插播 (SGAI) 會提供廣告連播資訊清單,方便在用戶端裝置上拼接。如果您已在 Google Ad Manager 聯播網中啟用 Pod Serving DAI,即可使用 SGAI。如果尚未啟用 Pod Serving DAI,請與帳戶管理員聯絡。

使用 SGAI 時,您可以使用廣告連播放送 API 端點建立串流、擷取廣告中繼資料和廣告連播資訊清單。

如果您有資訊清單操控伺服器,可以根據偏好的規格產生廣告插播資訊清單網址,並在內容串流中插入攜帶廣告插播資訊清單資訊的廣告標記。

或者,您也可以使用串流資訊清單中廣告標記以外的其他機制,排定廣告插播時間點。在這些情況下,應用程式可以監聽其他事件,例如使用者與串流、應用程式本身或推播通知的互動。發生這些事件後,應用程式可以產生廣告插播資訊清單網址,並告知播放器開始載入廣告插播資訊清單。

必要條件

請務必備妥下列資訊再繼續操作:

  • Google Ad Manager 聯播網已啟用 DAI Pod 放送。
  • 類型為「廣告連播放送資訊清單」的直播活動。如要建立活動,請參閱「為動態廣告插播設定直播活動」。

依循建議

建議您先呼叫 Early Ad Break Notification (EABN) API,指定每個廣告插播的預期時間長度、指定目標資訊和其他參數,再產生廣告插播資訊清單網址

如果是製作和測試串流,請呼叫 EABN API,尤其是當您的廣告聯播網有任何程式輔助廣告活動時。詳情請參閱「程式輔助直接交易功能與指南」。

提出串流註冊要求

使用者在影片播放器應用程式中啟動內容串流時,您會使用指定目標參數提出串流註冊要求,在 Ad Manager 中建立串流工作階段。如要瞭解如何提出串流註冊要求,請參閱「方法:串流」。接著,您會收到要求傳回的回應資料

以下範例會發出串流註冊要求:

純文字 HTTP

  • 要求:
authority: dai.google.com
method: POST
path: /ssai/pods/api/v1/network/51636543/custom_asset/hls-podserving-manifest/stream
scheme: https
content-type: application/x-www-form-urlencoded

cust_params=customID%253D1543216789%2526anotherKey%253Dvalue1%252Cvalue2
  • 回應:
{
    "manifest_format": "hls",
    "media_verification_url": "https://dai.google.com/view/p/service/linear/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/loc/TUL/network/51636543/event/TFyZF0IoSpqvCLtLv8JdCw/media/",
    "metadata_url": "https://dai.google.com/linear/pods/hls/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/metadata",
    "polling_frequency": 10,
    "session_update_url": "https://dai.google.com/linear/v1/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/session",
    "stream_id": "24fd4e7c-95a0-42be-8874-00625139b9db:TUL"
}

Shell

  • 指令列:
curl \
-H "Host: dai.google.com" \
-H "content-type: application/x-www-form-urlencoded" \
  --data-binary "cust_params=channelID%253D1543216789%2526anotherKey%253Dvalue1%252Cvalue2" \
  --compressed "https://dai.google.com/ssai/pods/api/v1/network/51636543/custom_asset/hls-podserving-manifest/stream"
  • 輸出:
{
    "manifest_format": "hls",
    "media_verification_url": "https://dai.google.com/view/p/service/linear/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/loc/TUL/network/51636543/event/TFyZF0IoSpqvCLtLv8JdCw/media/",
    "metadata_url": "https://dai.google.com/linear/pods/hls/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/metadata",
    "pod_manifest_url": "https://dai.google.com/linear/pods/v1/hls/event/TFyZF0IoSpqvCLtLv8JdCw/pod/$pod-id$.m3u8?stream_id=24fd4e7c-95a0-42be-8874-00625139b9db%3ATUL",
    "polling_frequency": 10,
    "session_update_url": "https://dai.google.com/linear/v1/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/session",
    "stream_id": "24fd4e7c-95a0-42be-8874-00625139b9db:TUL"
}

JavaScript

  • 使用 Fetch API:
const response = await fetch("https://dai.google.com/ssai/pods/api/v1/network/51636543/custom_asset/hls-podserving-manifest/stream", {
  "headers": {
    "content-type": "application/x-www-form-urlencoded",
  },
  "body": "cust_params=channelID%3D1543216789%26anotherKey%3Dvalue1%2Cvalue2",
  "method": "POST",
});

  const stream = await response.json();
  console.log(stream);
  • 控制台記錄:
{
    "stream_id": "24fd4e7c-95a0-42be-8874-00625139b9db:TUL",
    "media_verification_url": "https://dai.google.com/view/p/service/linear/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/loc/TUL/network/51636543/event/TFyZF0IoSpqvCLtLv8JdCw/media/",
    "metadata_url": "https://dai.google.com/linear/pods/hls/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/metadata",
    "session_update_url": "https://dai.google.com/linear/v1/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/session",
    "polling_frequency": 10,
    "pod_manifest_url": "https://dai.google.com/linear/pods/v1/hls/event/TFyZF0IoSpqvCLtLv8JdCw/pod/$pod-id$.m3u8?stream_id=24fd4e7c-95a0-42be-8874-00625139b9db%3ATUL",
    "manifest_format": "hls"
}

輪詢廣告插播中繼資料

提出串流註冊要求後,請輪詢廣告中繼資料。如要輪詢,請在註冊步驟中,使用串流回應中的 polling_frequence 設定計時器,呼叫廣告中繼資料。針對每個輪詢,您可能會收到部分廣告清單和中繼資料。

產生廣告插播資訊清單網址

建構 Pod Serving API 的Pod 資源網址。接著,將網址傳遞至影片播放器,開始載入廣告插播。

以下範例說明廣告插播資訊清單網址的結構:

https://dai.google.com/linear/pods/v1/hls/network/51636543/custom_asset/pod_serving_hls_manifest_mp4/ad_break_id/ab101.m3u8?stream_id=24fd4e7c-95a0-42be-8874-00625139b9db:TUL&pd=120000

您可以根據從影片播放器或伺服器通知擷取的廣告插斷資訊,計算廣告插斷資訊清單網址參數。如要瞭解這些參數的規定,請參閱「方法:Pod 資訊清單」。

播放廣告連播資訊清單

在用戶端影片播放器應用程式中,使用主要影片播放器開始播放內容串流,並按照影片播放器的說明文件觀察播放和廣告時間表 (如適用)。

如果您產生廣告連播資訊清單網址,並將這些網址插入伺服器端的資訊清單,請觀察影片播放器即將出現的廣告插播事件,並確保在每次廣告插播播放期間訂閱 id3 事件。如要從用戶端排定廣告插播事件,請在建立時訂閱 ID3 事件。

回報曝光和廣告事件

影片播放器播放廣告插播時,如果遇到 id3 時間中繼資料,請監聽影片播放器觸發的廣告事件,並處理這些事件以傳送媒體驗證連線偵測