本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
函数生命周期挂钩
生命周期挂钩定义了在播放期间何时 MediaTailor 运行您的函数。本页是输入字段、输出命名空间以及管理每个挂接处数据流的规则的完整参考。
概述
MediaTailor 支持两个生命周期挂钩:
-
PRE_SESSION_INITIALIZATION当观看者开始新会话时触发一次。将其用于一次性设置工作,例如获取受众细分。此时,尚未发生广告中断,因此广告插播上下文不可用。 -
PRE_ADS_REQUEST在每个广告决策服务器 (ADS) 请求之前触发,即直播中的每个广告时段触发一次。使用它来使用定位数据自定义 ADS 请求、修改 ADS 网址或添加标头。
关键区别在于时机:PRE_SESSION_INITIALIZATION运行一次并设置在整个会话中持续存在的数据,同时重复PRE_ADS_REQUEST运行,并且可以根据特定的广告时段定制每个 ADS 请求。
输入字段参考
| 字段 | Type | 会话前初始化 | PRE_ADS_REQUEST |
|---|---|---|---|
session.id |
长整型 | ✓ | ✓ |
session.uuid |
字符串 | ✓ | ✓ |
session.client_ip |
字符串 | ✓ | ✓ |
session.user_agent |
字符串 | ✓ | ✓ |
session.referer* |
字符串 | ✓ | ✓ |
session.avail_duration_secs |
长整型 | ✗ | ✓ |
session.avail_duration_ms |
长整型 | ✗ | ✓ |
player_params.* |
字符串 | ✓ | ✓ |
event.id |
字符串 | ✓ | ✓ |
event.hook |
字符串 | ✓ | ✓ |
event.timestamp |
字符串 | ✓ | ✓ |
avail.index |
Int | ✗ | ✓ |
avail.random |
长整型 | ✗ | ✓ |
avail.source_content_time_epoch_ms |
长整型 | ✗ | ✓ |
scte.event_id |
Int | ✗ | ✓ |
scte.avail_num |
Int | ✗ | ✓ |
scte.segmentation_event_id |
Int | ✗ | ✓ |
scte.segmentation_type_id |
Int | ✗ | ✓ |
scte.segmentation_upid |
字符串 | ✗ | ✓ |
scte.segmentation_upid.assetId |
字符串 | ✗ | ✓ |
scte.segmentation_upid.cueData.key |
字符串 | ✗ | ✓ |
scte.segmentation_upid.cueData.value |
字符串 | ✗ | ✓ |
scte.unique_program_id |
Int | ✗ | ✓ |
scte.archive_allowed_flag |
布尔值 | ✗ | ✓ |
scte.delivery_not_restricted_flag |
布尔值 | ✗ | ✓ |
scte.device_restrictions |
Int | ✗ | ✓ |
scte.no_regional_blackout_flag |
布尔值 | ✗ | ✓ |
scte.segment_num |
Int | ✗ | ✓ |
scte.segments_expected |
Int | ✗ | ✓ |
scte.sub_segment_num |
Int | ✗ | ✓ |
scte.sub_segments_expected |
Int | ✗ | ✓ |
scte.avails_expected |
长整型 | ✗ | ✓ |
adsRequest.url |
字符串 | ✗ | ✓ |
adsRequest.method |
字符串 | ✗ | ✓ |
adsRequest.headers.<key> |
字符串 | ✗ | ✓ |
adsRequest.body |
字符串 | ✗ | ✓ |
* session.referer 仅当会话初始化请求中包含 Referer 标头时才会出现。用于$exists(session.referer)在访问之前进行检查。