View a markdown version of this page

修复 CDN 会话管理和跟踪问题 MediaTailor - AWS Elemental MediaTailor

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

修复 CDN 会话管理和跟踪问题 MediaTailor

AWS Elemental MediaTailor 内容分发网络 (CDN) 会话管理对于适当的广告个性化和跟踪至关重要。如果您遇到与会话相关的错误或请求中的行为不一致:

  1. 检查会话 ID 的一致性:

    • 确认您的播放器在单个播放会话的所有请求中都保持相同的会话 ID

    • 检查 CDN 日志以确认会话 IDs 已正确转发

    • 确保 IDs 在查询参数中对会话进行了正确的 URL 编码

    • 使用 CloudWatch 日志验证请求间的会话 ID 一致性(参见下面的验证步骤)

  2. 验证会话初始化:

    • 确认第一个清单请求成功创建了会话

    • 检查会话参数转发是否正确(例如,aws.sessionId

    • 使用调试日志验证会话初始化(参见下面的调试日志设置)

  3. 启用调试日志以进行详细的会话故障排除:

    • 对于服务器端报告:?aws.logMode=DEBUG添加到您的播放请求中:

      GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/<asset-id>?aws.logMode=DEBUG
    • 对于客户端报告:包含"logMode": "DEBUG"在会话初始化请求正文中

    • 重要:DEBUG值区分大小写

    • 最多允许 10 个活动调试会话同时进行

  4. 使用 CloudWatch 日志查询来验证会话行为:

    • 验证调试会话是否处于活动状态:

      fields @timestamp, @message | filter sessionId = "your-session-id-here" | filter eventType = "SESSION_INITIALIZED" # client-side reporting or mediaTailorPath like "/v1/master" # server-side reporting HLS or mediaTailorPath like "/v1/dash" # server-side reporting DASH
    • 查看会话的所有活动:

      fields @timestamp, @message, eventType, mediaTailorPath | filter sessionId = "your-session-id-here" | sort @timestamp asc
    • 检查会话的清单生成:

      fields @timestamp, responseBody, @message | filter mediaTailorPath like "/v1/master/" and eventType = "GENERATED_MANIFEST" and sessionId = "your-session-id-here"
  5. 通过 CDN 转发测试会话参数:

    • 直接针对会话参数测试清单请求 MediaTailor(绕过 CDN)

    • 比较使用 CDN 和不使用 CDN 的会话行为,以确定转发问题

    • 验证 CDN 查询参数转发配置包括会话相关参数

    • 检查 CDN 是否未缓存本应特定于会话的响应

常见的会话错误消息:

  • ConflictException(HTTP 409)-同一会话的多个同步播放列表请求。解决方案:确保您的玩家按照 HLS 规范逐个请求播放列表

  • NotFoundException(HTTP 404)-会话不可用或配置不存在。解决方案:检查您的配置有效性并重新初始化会话

  • BadRequestException(HTTP 400)-会话 ID 无效或请求格式不正确。解决方案:验证请求格式和会话 ID 的有效性

其他疑难解答资源:

成功标准:解决后,会话应正确初始化, IDs 在请求之间保持会话的一致性,调试日志应显示正确SESSION_INITIALIZED的事件和清单生成而不会出现错误。