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

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

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

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

クライアント側の追跡のためにプレイヤーパラメータとセッションデータを ADS に渡す方法については、MediaTailor プレイヤー変数「」および「」を参照してくださいMediaTailor セッション変数

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

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

クライアント側のレポートワークフロー

次の図は、セッションの初期化から広告の再生とビーコンまでのクライアント側のレポートワークフロー全体を示しています。

MediaTailor クライアント側のレポートシーケンス図は、セッションの初期化から広告の再生とビーコンまでのワークフロー全体におけるビデオプレーヤー、MediaTailor、広告決定サーバー、コンテンツオリジン、広告検証サービス間のインタラクションを示しています。

クライアント側のレポートワークフローには、次のステップが含まれます。

  1. セッションの初期化 - ビデオプレーヤーは、、オリジントークンadsParams、セッション機能などの JSON メタデータを使用して MediaTailor セッションエンドポイントに POST リクエストを送信します。MediaTailor はセッションtrackingUrlに対して manifestUrlと で応答します。

  2. マニフェストリクエストと広告決定 - プレイヤーは MediaTailor にパーソナライズされたマニフェストをリクエストします。MediaTailor は、オリジンから元のコンテンツマニフェストをリクエストし、プレイヤーパラメータを使用して広告決定サーバー (ADS) に広告リクエストを行い、広告メタデータを含む VAST レスポンスを受信し、広告マーカーを含むパーソナライズされたマニフェストをプレイヤーに配信します。

  3. 追跡データの取得 - プレイヤーは追跡 URL を定期的にポーリングします (HLS のターゲット期間または DASH の最小更新期間に一致)。MediaTailor は、表示、広告、追跡イベント、ビーコン URLs、広告検証データを含む JSON 追跡メタデータを返します。

  4. 広告の再生とビーコン - 広告ブレーク中に、プレイヤーは追跡メタデータを解析し、広告のレンダリング開始時にインプレッションビーコンを発射し、適切なタイミングで四分位ビーコン (開始、firstQuartile、中間、thirdQuartile、完了) を発射し、必要に応じて広告検証 JavaScript をロードして実行し、表示可能性/検証イベントをサードパーティーの検証サービスに送信します。

  5. 継続的なポーリング - プレイヤーはセッション全体で追跡 URL のポーリングを継続し、今後の広告ブレークと動的コンテンツの更新されたメタデータを受け取ります。

このワークフローにより、広告カウントダウンタイマー、クリックスルー機能、コンパニオン広告、スキップ可能な広告、プライバシーコンプライアンスのための VAST アイコン表示などの高度な機能が可能になります。

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

セッションごとにクライアント側の追跡を有効にします。プレイヤーは MediaTailor 設定のセッション初期化プレフィックスエンドポイントPOSTに HTTP を作成します。オプションで、プレイヤーは 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 を使用して、これらのパラメータを参照するように ADS リクエストテンプレート URL を設定します。次の例では、 player_params.param1は のプレイヤーパラメータでparam1player_params.param2は のプレイヤーパラメータですparam2

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

広告サーバーパラメータ

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

  • Google 広告マネージャー

  • SpringServe

  • FreeWheel

  • Publica

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

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

セッション設定機能

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

注記

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

例 : 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" } }

レポートモードパラメータ

リクエスト本文に reportingModeパラメータを含めることで、セッションを初期化するときにレポートモードを指定できます。このパラメータは、MediaTailor がセッションのクライアント側またはサーバー側の広告追跡を実行するかどうかを制御します。

  • client - プレイヤーは広告追跡を実行し、ビーコンを広告サーバーに送信します。これは、 が指定されていない場合のデフォルトモードreportingModeです。

  • server - MediaTailor はサーバー側の広告追跡を実行し、ビーコンを広告サーバーに直接送信します。

例 サーバー側のレポートモードによるセッションの初期化
POST mediatailorURL/v1/session/hashed-account-id/origin-id/asset-id.m3u8 { "adsParams": { "deviceType": "ipad", "uid": "abdgfdyei-2283004-ueu" }, "reportingMode": "server" }
例 クライアント側のレポートモードによるセッションの初期化 (明示的)
POST mediatailorURL/v1/session/hashed-account-id/origin-id/asset-id.mpd { "adsParams": { "deviceType": "androidmobile", "uid": "xjhhddli-9189901-uic" }, "reportingMode": "client" }
注記

reportingMode パラメータはセッションの初期化時に設定され、セッション中に変更することはできません。reportingMode を指定しない場合、MediaTailor は下位互換性を維持するためにデフォルトでクライアント側のレポートになります。

正常なレスポンスは、レスポンス本文200を持つ HTTP です。本文には、 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 でクライアント側を追跡するためのベストプラクティスの概要を説明します。

ライブワークフロー

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

注記

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

VOD ワークフロー

セッションの初期化に成功し、MediaTailor がメディアを含む最初のマニフェストを受け取ったら、追跡エンドポイントを一度呼び出すだけで済みます。

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

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

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

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

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

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

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

  • 広告に対応するビーコンがなくなると、 はレスポンスから広告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 の場合、MediaTailor NextTokenはすべての広告ビーコンを返します。

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

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

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

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

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

拡張例

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

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

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リクエストでは、MediaTailor は JF57ITe48t1441mv7TmLKuZLroxDzfIslp6BiSNL1IJmzPVMDN0lqrBYycgMbKEb NextTokenという値で応答します。

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

ID 9235407 の以前の広告に加えて、ID 9935407 の別の広告がレスポンスに含まれているとします。広告 ID 9235407 のビーコンには、StartTimeInSecondss 132.41 と 70.339 があります。

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 } ] }