View a markdown version of this page

例 1: データエンリッチメント - AWS Elemental MediaTailor

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

例 1: データエンリッチメント

シナリオ

ストリーミングサービスは、セッションの開始時に外部サービス (この場合は LiveRamp) からオーディエンスアイデンティティデータを取得し、セッションの後半で広告ターゲティングのためにプレイヤーパラメータに保存したいと考えています。ID エンベロープは、アイデンティティ解決サービスによって提供される暗号化された識別子であり、広告システムが個人情報が公開されることなく、デバイスやプラットフォーム間でビューワーを認識できるようにします。

設定

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%}" } } }
注記

を独自の API 認証情報Bearer ramp-token-789に置き換えます。機密性の高いトークンを本番環境の関数設定に直接保存しないでください。トークンローテーション戦略の使用を検討してください。

外部サービスの予想される応答時間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_REQUEST」、「PRE_SESSION_INITIALIZATION」、「トラブルシューティングとモニタリング」、および「制限」を参照してください。