View a markdown version of this page

範例 1:資料擴充 - AWS Elemental MediaTailor

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

範例 1:資料擴充

案例

串流服務想要在工作階段開始時從外部服務 (在此案例中為 LiveRamp) 擷取受眾身分資料,並將其存放在播放器參數中,以便稍後在工作階段中以廣告為目標。身分信封是由身分解析服務提供的加密識別符,可讓廣告系統跨裝置和平台識別檢視器,而不會公開個人資訊。

Configuration

擷取 LiveRamp 信封 (HTTP_REQUEST):

{ "FunctionId": "fetchLiveRamp", "FunctionType": "HTTP_REQUEST", "HttpRequestConfiguration": { "Runtime": "JSONATA", "MethodType": "GET", "Url": "{%'https://api.example-identity.com/v2/envelope?pid=12345&iv=' & player_params.hashedId%}", "Headers": { "Authorization": "{%'Bearer ramp-token-789'%}" }, "RequestTimeoutMilliseconds": 2000, "Output": { "player_params.envelope_id": "{%response.body.envelopes[0].value%}" } } }
注意

Bearer ramp-token-789 使用您自己的 API 登入資料取代 。請勿將敏感字符直接存放在生產中的函數組態中。考慮使用字符輪換策略。

RequestTimeoutMilliseconds 根據外部服務的預期回應時間來設定 。較低的值可減少延遲,但會增加逾時錯誤的機會。

函數映射

{ "FunctionMapping": { "PRE_SESSION_INITIALIZATION": "fetchLiveRamp" } }

函數執行時會發生什麼情況

  1. 檢視器會啟動播放工作階段。

  2. MediaTailor 會執行PRE_SESSION_INITIALIZATION生命週期掛鉤並執行 fetchLiveRamp

  3. 函數會使用 建置請求 URL,player_params.hashedId並呼叫 LiveRamp API。在 URL 中, pid 是合作夥伴 ID,而 iv是雜湊檢視器識別符。

  4. 輸出表達式會從回應陣列 (response.body.envelopes[0].value) 中的第一個信封擷取值,並將其寫入 player_params.envelope_id

提示

若要明確處理錯誤,請在存取回應資料response.statusCode之前檢查: {%response.statusCode = 200 ? response.body.envelopes[0].value : ''%}

如需詳細資訊,請參閱 HTTP_REQUESTPRE_SESSION_INITIALIZATION故障診斷和監控限制