翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
関数クイックスタートガイド
このガイドでは、最初の 関数を作成し、それを再生設定にアタッチして、実行されたことを確認する手順を説明します。最終的には、各ビューワーのデバイスタイプ (ctv、、または desktop) を分類しmobile、すべての ADS リクエストで使用できるプレイヤーパラメータとして保存する作業関数が作成されます。
前提条件
開始する前に、既存の MediaTailor 再生設定があることを確認してください。アカウントをお持ちでない場合は、「MediaTailor の使用開始」を参照してください。
ステップ 1: 関数を作成する
このステップでは、ユーザーエージェント文字列に基づいてビューワーのデバイスタイプを分類し、その結果をプレイヤーパラメータに保存する関数を作成します。関数は、カスタム出力タイプ (外部 API コールなし) とJSONata 式リファレンス式を使用してユーザーエージェントを評価します。
-
MediaTailor コンソール (https://console.aws.amazon.com/mediatailor/
) を開きます。 -
ナビゲーションペインで、[Functions] (関数) を選択します。
-
[関数の作成] を選択してください。
-
ウィザードの作成モーダルで、最初から作成を選択し、続行を選択します。
-
関数タイプで、カスタム出力タイルを選択します。
-
関数の詳細で、次のように入力します。
-
関数 ID:
myFirstFunction -
[Description] (説明):
Classify device type from user agent
-
-
カスタム出力設定の出力セクションで、1 行を追加します。
-
[Key] (キー):
player_params.deviceType -
値:
{% $contains(session.user_agent, 'CTV') ? 'ctv' : $contains(session.user_agent, 'Mobile') ? 'mobile' : 'desktop' %}
-
-
[関数の作成] を選択してください。
成功通知は、関数が作成されたことを確認し、関数の詳細ページにリダイレクトされます。
結果の関数設定は次のとおりです。
{ "FunctionId": "myFirstFunction", "FunctionType": "CUSTOM_OUTPUT", "Description": "Classify device type from user agent", "CustomOutputConfiguration": { "Runtime": "JSONATA", "Output": { "player_params.deviceType": "{% $contains(session.user_agent, 'CTV') ? 'ctv' : $contains(session.user_agent, 'Mobile') ? 'mobile' : 'desktop' %}" } } }
ステップ 2: 関数を再生設定にアタッチする
関数を再生設定のライフサイクルフックにマッピングします。マッピングは、いつ関数を実行するかを MediaTailor に伝えます。
-
ナビゲーションペインで [Configurations] (設定) をクリックします。
-
更新する再生設定を選択します。
-
[編集] を選択します。
-
Functions 設定セクションを展開します。
-
セッション初期化フックで、ドロップダウン
myFirstFunctionから を選択します。 -
[保存] を選択します。
これにより、PRE_SESSION_INITIALIZATIONライフサイクルフックmyFirstFunctionにアタッチされます。結果の関数マッピングは次のとおりです。
{ "FunctionMapping": { "PRE_SESSION_INITIALIZATION": "myFirstFunction" } }
MediaTailor は、この再生設定のすべての新しいセッションの開始時に関数を 1 回実行します。
ステップ 3: セッションを開始し、関数が実行されたことを確認する
新しい再生セッションを開始して、 関数をトリガーします。再生設定のセッション初期化エンドポイントにセッション初期化リクエストを使用します。
MediaTailor は、関数の実行ごとに CloudWatch メトリクスを自動的に発行します。オプトインは必要ありません。セッションを開始したら、AWS/MediaTailor名前空間で次のメトリクスを確認して、関数が実行されたことを確認します。
-
PreSessionInitHook.Invocations— フックが発射されたことを確認します。 -
PreSessionInitHook.Errors— 関数が成功した場合は 0 になります。 -
Function.Invocations— 実行された個々の関数を確認します。このメトリクスには、FunctionId、FunctionType、およびHookTypeディメンションが含まれているため、myFirstFunction特定の にフィルタリングできます。
関数が失敗した場合、MediaTailor はデフォルトでエラーログイベントをマニフェストログに出力します (設定は必要ありません)。
-
PRE_SESSION_INIT_HOOK_ERROR—errorTypeと によるフックレベルの障害cause。 -
PRE_SESSION_INIT_FUNCTION_ERROR— 特定のfunctionIdエラーの詳細を含む関数レベルの障害。
次の例は、 関数式の構文エラーのPRE_SESSION_INIT_FUNCTION_ERRORイベントを示しています。
{ "eventTimestamp": "2024-01-01T12:00:00.076000000Z", "eventType": "PRE_SESSION_INIT_FUNCTION_ERROR", "eventDescription": "Function execution failed", "awsAccountId": "123456789012", "originId": "my-config", "sessionId": "session-123", "requestId": "req-abc", "eventId": "5dc6f040-0f72-4e8c-a64e-25eeef62708c", "functionId": "myFirstFunction", "functionType": "CUSTOM_OUTPUT", "executionTimeMs": 2, "errorType": "SYNTAX_ERROR", "cause": "Expected \")\" before end of expression", "input": {} }
eventId フィールドを使用して、同じ実行のフックと関数のエラーイベントを関連付けます。errorType フィールドは失敗のクラスを示します。エラータイプと修正の完全なリストトラブルシューティングとモニタリングについては、「」を参照してください。
注記
詳細なログ記録を成功させるには、マニフェストログ設定で PRE_SESSION_INIT_HOOK_SUMMARYおよび PRE_SESSION_INIT_FUNCTION_COMPLETEDイベントにオプトインします。概要イベントは、すべての実行のフック結果を表示します。完了したイベントには、各関数の入力、出力、HTTP リクエスト/レスポンスの詳細が表示されます。これらは、ログコストを最小限に抑えるためにデフォルトで無効になっています。詳細については、「トラブルシューティングとモニタリング」を参照してください。
舞台裏で何が起こるか
先ほど作成した 関数の完全なリクエストフローは次のとおりです。
-
プレイヤーは MediaTailor とのセッションを開始します。
-
MediaTailor は
PRE_SESSION_INITIALIZATIONライフサイクルフックを起動し、 を実行しますmyFirstFunction。 -
関数は
session.user_agentフィールドを評価し、ctv、、mobileまたは をdesktopに書き込みますplayer_params.deviceType。 -
MediaTailor はセッションを作成し、マニフェストをプレイヤーに返します。
-
プレイヤーは再生中に広告ブレークに遭遇します。
-
MediaTailor は
PRE_ADS_REQUESTライフサイクルフックを起動し、ADS リクエストを構築します。deviceTypeはプレイヤーパラメータに保存されるため、動的変数置換を使用して ADS リクエスト URL に含めることができます。 -
ADS はデバイスタイプを使用して、ターゲットを絞った広告クリエイティブを返します。
-
MediaTailor は広告をマニフェストにステッチし、プレイヤーに返します。
何らかの理由で関数が失敗した場合、MediaTailor は出力を破棄し、関数がアタッチされていないかのように続行します。ビューワーには、デバイスタイプのターゲティングなしで広告が表示されます。
推奨されるトピック
これで、再生設定に作業関数がアタッチされました。ここから:
-
各ライフサイクルフックで使用できる入力フィールドと出力名前空間については、「」を参照してくださいライフサイクルフック。
-
さまざまな関数タイプとそれらを連鎖させる方法については、「」を参照してください関数のタイプと構成。
-
完全な作業例については、「」を参照してください関数の例。