本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
自定义输出
何时使用
CUSTOM_OUTPUT当你的函数逻辑纯粹是计算时使用。常见用例包括根据用户代理字符串对设备进行分类、使用 A/B 测试逻辑选择广告决策服务器网址,以及在玩家参数到达广告决策服务器之前对其进行重新格式化。
CUSTOM_OUTPUT函数是最快的类型,因为它们无需网络调用即可计算内存中的表达式。只要您无需联系外部服务即可实现目标,请选择此类型。
配置字段
一个CUSTOM_OUTPUT函数有两个字段:
-
运行时 -表达式语言。将此设置为
JSONATA。 -
输出 — 键值对的映射。每个键都是一个输出绑定名称(例如
player_params.device_type),每个值都是在运行时 MediaTailor 计算的表达式。
注意
用于{%...%}将 Jsonata 表达式包装在字符串字段中。没有这些分隔符的值被视为静态字符串。例如,"{%session.id%}"计算表达式,而"session.id"是文字文本。
运行时行为
当 MediaTailor 执行一个CUSTOM_OUTPUT函数时,它会根据当前会话状态评估输出块中的每个表达式。所有表达式都看到相同的输入快照。评估结果成为函数的输出。
如果任何表达式无法计算,则 MediaTailor 丢弃整个函数的输出,并像没有附加函数一样继续操作。该函数不会部分提交结果。
示例: A/B 流量分割
以下函数将每个广告插播时间随机分配给两个广告决策服务器网址之一。它是为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'%}" } } }
有关此示例的完整演练,请参阅函数示例。