

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

# CUSTOM\_OUTPUT
<a name="monetization-functions-types-custom-output"></a>

## どのようなときに使うか
<a name="monetization-functions-types-custom-output-when"></a>

関数ロジックが純粋に計算`CUSTOM_OUTPUT`的である場合に使用します。一般的なユースケースには、ユーザーエージェント文字列に基づくデバイスの分類、A/B テストロジックを使用した広告決定サーバー URLs の選択、広告決定サーバーに到達する前のプレイヤーパラメータの再フォーマットなどがあります。

`CUSTOM_OUTPUT` 関数は、ネットワーク呼び出しなしでメモリ内の式を評価するため、最速のタイプです。外部サービスに連絡せずに目標を達成できる場合は、常にこのタイプを選択します。

## 設定フィールド
<a name="monetization-functions-types-custom-output-fields"></a>

`CUSTOM_OUTPUT` 関数には 2 つのフィールドがあります。
+ **ランタイム** — 式言語。これを に設定します`JSONATA`。
+ **出力** — キーと値のペアのマップ。各キーは出力バインディング名 ( など`player_params.device_type`) で、各値は MediaTailor が実行時に評価する式です。

**注記**  
`{%...%}` を使用して、JSONata 式を文字列フィールドにラップします。これらの区切り文字のない値は、静的文字列として扱われます。たとえば、 は式`"{%session.id%}"`を評価し、 `"session.id"`はリテラルテキストです。

## ランタイム動作
<a name="monetization-functions-types-custom-output-behavior"></a>

MediaTailor が`CUSTOM_OUTPUT`関数を実行すると、出力ブロック内のすべての式を現在のセッション状態に対して評価します。すべての式に同じ入力スナップショットが表示されます。評価された結果は関数の出力になります。

いずれかの式が評価に失敗した場合、MediaTailor は関数の出力全体を破棄し、関数がアタッチされていないかのように続行します。関数は結果を部分的にコミットしません。

## 例: A/B トラフィック分割
<a name="monetization-functions-types-custom-output-example"></a>

次の 関数は、各広告ブレークを 2 つの広告決定サーバー URLs。`PRE_ADS_REQUEST` ライフサイクルフック用に設計されています。

```
{
    "FunctionId": "abTestAdsUrl",
    "FunctionType": "CUSTOM_OUTPUT",
    "CustomOutputConfiguration": {
        "Runtime": "JSONATA",
        "Output": {
            "adsRequest.url": "{%$random() < 0.5 ? 'https://ads.example.com/v1' : 'https://ads.example.com/v2'%}"
        }
    }
}
```

この例の完全なチュートリアルについては、「」を参照してください[関数の例](monetization-functions-examples.md)。