クライアント側の広告追跡 - AWS Elemental MediaTailor

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

クライアント側の広告追跡

以下を使用 AWS Elemental MediaTailor クライアント側の追跡 ではAPI、広告ブレーク中にプレイヤーコントロールをストリーミングワークフローに組み込むことができます。クライアント側の追跡では、プレイヤーまたはクライアントは、インプレッションや四分位広告ビーコンなどの追跡イベントを広告決定サーバー (ADS) やその他の広告検証エンティティに発行します。インプレッションと四分位数の広告ビーコンの詳細については、「」を参照してくださいクライアント側ビーコン。ADS およびその他の広告検証エンティティの詳細については、「」を参照してくださいクライアント側の広告追跡統合

クライアント側の追跡では、次のような機能が有効になります。

MediaTailor クライアント側の追跡 を使用するとAPI、クライアント側の追跡に加えて機能を有効にするメタデータを再生デバイスに送信できます。

クライアント側の追跡の有効化

セッションごとにクライアント側の追跡を有効にします。プレイヤーは、 MediaTailor 設定のセッション初期化プレフィックスエンドポイントHTTPPOSTに を作成します。オプションで、プレイヤーは、広告呼び出し、マニフェストのオリジンの呼び出し、セッションレベルでの機能の呼び出しまたは無効化 MediaTailor時に が MediaTailor 使用する追加のメタデータを送信できます。

次の例は、JSONメタデータの構造を示しています。

{ "adsParams": { # 'adsParams' is case sensitive "param1": "value1", # key is not case sensitive "param2": "value2", # Values can contain spaces. For example, 'value 2' is an allowed value. }, "origin_access_token":"abc123", # this is an example of a query parameter designated for the origin "overlayAvails":"on" # 'overlayAvails' is case sensitive. This is an example of a feature that is enabled at the session level. }

MediaTailor コンソールまたは APIを使用して、これらのパラメータを参照URLするようにADSリクエストテンプレートを設定します。次の例では、 player_params.param1は のプレイヤーパラメータでparam1player_params.param2は のプレイヤーパラメータですparam2

https://my.ads.com/path?param1=[player_params.param1]&param2=[player_params.param2]

広告サーバーパラメータ

JSON 構造の最上位レベルは adsParams JSON オブジェクトです。このオブジェクト内には、すべてのセッションリクエストで広告サーバーを読み取って送信 MediaTailor できるキーと値のペアがあります。 は次の広告サーバー MediaTailor をサポートします。

  • Google 広告マネージャー

  • SpringServe

  • FreeWheel

  • パブリカ

オリジンインタラクションクエリパラメータ

、、 などadParams、JSON構造の最上位レベル内の予約されたキーavailSuppressionと値のペアはoverlayAvails、クエリパラメータのURL形式でオリジンリクエストに追加されません。がオリジンに対して MediaTailor 行うすべてのセッションマニフェストリクエストには、これらのクエリパラメータが含まれます。オリジンは、無関係なクエリパラメータを無視します。例えば、 MediaTailor はキーと値のペアを使用して、アクセストークンをオリジンに送信できます。

セッション設定機能

session-initialization JSON構造を使用して、、、 などの機能を有効overlayAvails、無効にavailSuppression、または上書き MediaTailorしますadSignaling。セッションの初期化中に渡された機能設定は、設定レベルで MediaTailor の設定よりも優先されます。

注記

セッションの初期化 MediaTailor 時に に送信されるメタデータはイミュータブルであり、セッション中はメタデータを追加できません。セッション中に変化するデータを転送するには、SCTE-35 マーカーを使用します。詳細については、「セッション変数の使用」を参照してください。

例 : のクライアント側の広告追跡の実行 HLS
POST mediatailorURL/v1/session/hashed-account-id/origin-id/asset-id.m3u8 { "adsParams": { "deviceType": "ipad" # This value does not change during the session. "uid": "abdgfdyei-2283004-ueu" } }
例 : のクライアント側の広告追跡の実行 DASH
POST mediatailorURL/v1/session/hashed-account-id/origin-id/asset-id.mpd { "adsParams": { "deviceType": "androidmobile", "uid": "xjhhddli-9189901-uic" } }

正常なレスポンスは、レスポンス本文HTTP200を持つ です。本文には、 manifestUrltrackingUrlキーを持つJSONオブジェクトが含まれています。値は、プレイヤーURLsが再生と広告イベントの追跡の両方の目的で使用できる相対値です。

{ "manifestUrl": "/v1/dashmaster/hashed-account-id/origin-id/asset-id.m3u8?aws.sessionId=session-id", "trackingUrl": "/v1/tracking/hashed-account-id/origin-id/session-id" }

クライアント側の追跡スキーマの詳細については、「」を参照してくださいクライアント側の広告追跡スキーマとプロパティ

クライアント側追跡のベストプラクティス

このセクションでは、ライブワークフローとVODワークフローの両方について、 でクライアント側の追跡 MediaTailor を行うためのベストプラクティスの概要を説明します。

ライブワークフロー

最新の広告追跡メタデータを常に取得DASHするためにHLS、 のすべてのターゲット期間、または の最小更新期間に一致する間隔で追跡エンドポイントをポーリングします。この間隔を一致させることは、クリエイティブにインタラクティブコンポーネントまたはオーバーレイコンポーネントがあるワークフローでは特に重要です。

注記

一部のプレイヤーはイベントリスナーをサポートしており、ポーリングの代替として使用できます。例えば、 MediaTailor 広告 ID デコレーション機能はセッションごとに有効にする必要があります。詳細については、「広告 ID デコレーション」を参照してください。この機能を使用すると、avail の各広告に日付範囲 (HLS) またはイベント要素 (DASH) 識別子が設定されます。プレイヤーは、これらのマニフェストタグをセッション MediaTailor の追跡エンドポイントを呼び出すプロンプトとして使用できます。

VOD ワークフロー

セッションの初期化が成功し、 がメディアを含む最初のマニフェストを受信した後 MediaTailor、追跡エンドポイントを呼び出す必要があるのは 1 回だけです。

VOD ワークフローのコールフロー。セッションが初期化され、メディアを含む最初のマニフェスト MediaTailor を受信したら、クライアント側の追跡エンドポイントを呼び出します。

を使用した広告ビーコンのページング GetTracking

GetTracking エンドポイントを使用して、プレイヤーに返される広告の数を絞り込みます。例えば、マニフェストウィンドウが広く、多くの時間にわたる場合、返される広告ビーコンの数はプレイヤーのパフォーマンスに影響を与える可能性があります。

GetTracking は、返されたビーコンのリストをページングすることで、返されたビーコンの数を絞り込むために使用できるNextToken値を返します。NextToken 値をサイクルスルーして、広告ビーコンの StartTimeInSecondsフィールドの目的の値を見つけることができます。

  • への最初の呼び出しではGetTracking、マニフェストウィンドウに含まれる可能性のあるすべての広告が返されます。これには、それぞれの NextTokenおよび の値が含まれます。

  • GetTracking リクエストに が含まれていない場合NextToken、マニフェストウィンドウ内のすべての広告が返されます。

  • GetTracking リクエストに が含まれているNextTokenが、返す新しいビーコンがない場合、 は元のリクエストで送信NextTokenしたのと同じ値を MediaTailor に返します。

  • 広告に対応するビーコンがなくなった場合、 はレスポンスから広告GetTrackingを削除します。

  • からのトークンは 24 時間後にGetTracking期限切れになります。NextToken 値が 24 時間以上経過している場合、 への次の呼び出しは null 値 GetTrackingを返しますNextToken

プレイヤー GetTracking からの の一般化された呼び出しシーケンス

クライアントプレイヤーからのGetTrackingリクエストは、トークンに関連する NextTokenおよび 広告とビーコンを含むリクエスト本文POSTを持つ です。

https://YouMediaTailorUrl/v1/tracking { "NextToken": "value" . . . }

GetTracking で を使用するための一般的な順序NextTokenは次のとおりです。

  1. を最初に呼び出しますGetTracking

    すべての広告とビーコン、および後続の呼び出しNextTokenの最初の が返されます。

  2. の値が null の場合、 NextTokenはすべての広告ビーコン MediaTailor を返します。

  3. の有効期限が切れている場合、 NextTokenはHTTPリターンコード 400 のエラーメッセージ MediaTailor を返します。

    に新しい呼び出しGetTrackingを行い、有効な を取得しますNextToken

  4. レスポンス全体をスキャンして、目的の範囲内にある広告ビーコンStartTimeInSecondsの を見つけます。

  5. 目的の NextTokenに関連付けられた の値GetTrackingを使用して、 に新しい呼び出しを行いますStartTimeInSeconds

  6. 必要に応じて、再生する広告が正確にわかるまで、返された広告をもう一度繰り返します。

拡張例

この例では、 GetTrackingの を使用して、プレイヤーNextTokenに返される広告ビーコンの数を制限する方法を示します。

MediaTailor はGetTrackingリクエストを受け取ります。この図に示すように、レスポンスには ID 9935407 の広告と、StartTimeInSeconds値 52.286 秒と 48.332 秒の 2 つのビーコンが含まれています。

GetTracking API エンドポイントで処理するための複数の広告ビーコンを含む 1 つの広告の例

MediaTailor は、NextToken次のように でJSONレスポンスを送信します。

{ "NextToken": JF57ITe48t1441mv7TmLKuZLroxDzfIslp6BiSNL1IJmzPVMDN0lqrBYycgMbKEb "avails": [ { "ads": [ { "adId": "9935407", "adVerifications": [], "companionAds": [], "creativeId": "", "creativeSequence": "", "duration": "PT15S", "durationInSeconds": 15, "extensions": [], "mediaFiles": { "mediaFilesList": [], "mezzanine": "" }, "startTime": "PT30S", "StartTimeInSeconds": 45, "trackingEvents": [ { "beaconUrls": [ "http://adserver.com/tracking?event=Impression " ], "duration": "PT0S", "durationInSeconds": 0, "eventId": "9935414", "eventType": "secondQuartile", "startTime": "PT52.286S", "StartTimeInSeconds": 52.286 }, { "beaconUrls": [ "http://adserver.com/tracking?event=firstQuartile" ], "duration": "PT0S", "durationInSeconds": 0, "eventId": "9935412", "eventType": "firstQuartile", "startTime": "PT48.332S", "StartTimeInSeconds": 48.332 } ], "vastAdId": "" } ], "startTime": "PT46.47S", "StartTimeInSeconds": 46.47 } ] }

次のGetTrackingリクエストでは、 はNextToken値 JF57ITe48t1441mv7TmLKuZLroxDzfIslp6BiSNL1IJmzPVMDN0lqrBYycgM MediaTailor に対応しますbKEb。

MediaTailor は、前の呼び出しの で設定された StartTimeInSeconds に一致する広告とビーコンで応答NextTokenします。

これで、ID 9235407 の以前の広告に加えて、ID 9935407 の別の広告がレスポンスに含まれていると仮定します。広告 ID 9235407 のビーコンには、次の図に示すように StartTimeInSeconds132.41 と 70.339 があります。

GetTracking API エンドポイントで処理するための複数の広告の例。それぞれに複数の広告ビーコンがあります。

MediaTailor はセッション内のすべてのビーコンを反復処理して、ID 9235407 の広告からビーコン 3 とビーコン 4 である 52.286 秒StartTimeInSecondsを超えるビーコンを選択します。

{ "NextToken": ZkfknvbfsdgfbsDFRdffg12EdffecFRvhjyjfhdfhnjtsg5SDGN "avails": [ { "ads": [ { "adId": "9235407", "adVerifications": [], "companionAds": [], "creativeId": "", "creativeSequence": "", "duration": "PT15.816S", "durationInSeconds": 19.716, "extensions": [], "mediaFiles": { "mediaFilesList": [], "mezzanine": "" }, "startTime": "PT2M0S", "StartTimeInSeconds": 120.0, "trackingEvents": [ { "beaconUrls": [ "http://adserver.com/tracking?event=complete" ], "duration": "PT0S", "durationInSeconds": 0, "eventId": "8935414", "eventType": "firstQuartile", "startTime": "PT1M10.330S", "StartTimeInSeconds": 70.339 }, { "beaconUrls": [ "http://adserver.com/tracking?event=thirdQuartile" ], "duration": "PT0S", "durationInSeconds": 0, "eventId": "8935412", "eventType": "secondQuartile", "startTime": "PT2M12.41S", "StartTimeInSeconds": 132.41 } ], "vastAdId": "" }, ], "startTime": "PT36.47S", "StartTimeInSeconds": 36.47 } ] }