本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
自定义输出
何时使用
CUSTOM_OUTPUT当你的函数逻辑纯粹是计算逻辑时使用。常见用例包括根据用户代理字符串对设备进行分类,使用 A/B 测试逻辑选择广告决策服务器网址,以及在玩家参数到达广告决策服务器之前对其进行重新格式化。
CUSTOM_OUTPUT函数是最快的类型,因为它们无需网络调用即可计算内存中的表达式。只要您无需联系外部服务即可实现目标,请选择此类型。
配置字段
一个CUSTOM_OUTPUT函数有两个字段:
-
运行时间-表达式语言。将其设置为
JSONATA。 -
输出-键值对的映射。每个键都是一个输出绑定名称(例如
player_params.device_type),每个值都是一个在运行时 MediaTailor 计算的表达式。
注意
用于{%...%}将 JSonata 表达式封装在字符串字段中。没有这些分隔符的值将被视为静态字符串。例如,"{%session.id%}"计算表达式,而 whil "session.id" e 是文字文本。
运行时行为
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'%}" } } }
有关此示例的完整演练,请参阅函数示例。