本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
示例 1:数据扩充
场景
流媒体服务希望在会话开始时从外部服务(在本例中为 LiveRamp)获取受众身份数据,并将其存储在玩家参数中,以便在会话后期进行广告定位。身份信封是由身份解析服务提供的加密标识符,允许广告系统在不泄露个人信息的情况下跨设备和平台识别观众。
配置
获取 LiveRamp 信封 (HTTP_REQUEST):
{ "FunctionId": "fetchLiveRamp", "FunctionType": "HTTP_REQUEST", "HttpRequestConfiguration": { "Runtime": "JSONATA", "MethodType": "GET", "Url": "{%'https://api.example-identity.com/v2/envelope?pid=12345&iv=' & player_params.hashedId%}", "Headers": { "Authorization": "{%'Bearer ramp-token-789'%}" }, "RequestTimeoutMilliseconds": 2000, "Output": { "player_params.envelope_id": "{%response.body.envelopes[0].value%}" } } }
注意
Bearer ramp-token-789替换为你自己的 API 凭证。不要将敏感令牌直接存储在生产环境中的函数配置中。考虑使用代币轮换策略。
RequestTimeoutMilliseconds根据外部服务的预期响应时间进行设置。较低的值可以减少延迟,但会增加出现超时错误的机会。
函数映射
{ "FunctionMapping": { "PRE_SESSION_INITIALIZATION": "fetchLiveRamp" } }
函数运行时会发生什么
观看者开始播放会话。
MediaTailor 运行
PRE_SESSION_INITIALIZATION生命周期挂钩并运行fetchLiveRamp。该函数使用构建请求网址
player_params.hashedId并调用 LiveRamp API。在网址中,pid是合作伙伴 ID,是经过哈希iv处理的查看者标识符。输出表达式从响应数组 (
response.body.envelopes[0].value) 的第一个信封中提取值并将其写入player_params.envelope_id。
提示
要明确处理错误,请在访问响应数据response.statusCode之前进行检查:{%response.statusCode = 200 ?
response.body.envelopes[0].value : ''%}
有关更多信息,请参阅HTTP_REQUEST、会话前初始化、故障排除和监控和限制。