Skip to content

Accessing custom data in HLS Interstitials Asset List #2950

Closed

Description

@hsahn-dev

Hello,

I am trying out HLS Interstitial ads using AWS MediaTailor.
(Reference: https://aws.amazon.com/ko/blogs/media/support-for-hls-interstitials-in-aws-elemental-mediatailor/)

When requesting the X-ASSET-LIST, the response from MediaTailor includes a custom JSON object called TRACKING that contains client-side ad tracking information, alongside the standard ASSETS array.

Example JSON Response:

{
    "ASSETS": [
        {
            "DURATION": 14,
            "URI": "https://segments.sample.mediatailor.aws.a2z.com/tm/.../asset.m3u8"
        },
        {
            "DURATION": 14,
            "URI": "https://segments.sample.mediatailor.aws.a2z.com/tm/.../asset.m3u8"
        }
    ],
    "TRACKING": {
        "avails": [
            {
                "adBreakTrackingEvents": [],
                "adMarkerDuration": null,
                "ads": [
                    {
                       "adId": "4649886",
                       ...
                    }
                ]
            }
        ]
        ...
    }
}

I noticed that the current implementation ignores extra JSON objects outside the standard specification. I am looking for a way to process this custom data (like the TRACKING object) for client-side ad beaconing.
Could you let me know if there are any plans to support accessing such custom data in the future? Or is there any recommended approach to handle this?
Thank you.

Activity

  1. marcbaechinger commented on Dec 17, 2025

    @marcbaechinger
    Contributor

    Thanks for your report.

    Yeah, I was expecting the community to start using this. I'm not a fan of this approach of leveraging the JSON file as an extra transport channel for arbitrary data as this JSON file may be very much on the critical path for a good user experience. However, I'm not relevant.

    Can you let me know how you access this data with AVPlayer? I think we should provide interoperability with the operating system of the spec owners, so if you can do that with AVPlayer we should deliver this as well.

    If you can provide a pointer to what you can do on other platforms, we will provide parity.

  2. hsahn-dev commented on Dec 19, 2025

    @hsahn-dev
    Author

    @marcbaechinger
    Thank you for considering this request.

    AVPlayer provides access to the full Asset List response, including custom top-level objects like TRACKING.
    The AVPlayerInterstitialEventMonitor is used to track interstitial events. Through this monitor, we can access the AVPlayerInterstitialEvent object, which exposes the raw JSON response via the assetListResponse property.
    Since assetListResponse is returned as a Dictionary, it allows access to all fields, including custom data.

    1. Monitor Setup: Create an AVPlayerInterstitialEventMonitor for the player.
    2. Notification: Observe the assetListResponseStatusDidChangeNotification.
    3. Access Data: When the notification fires, retrieve the event object. This object contains the assetListResponse property, which returns the parsed JSON as a Dictionary.

    Thanks again.

  3. marcbaechinger commented on Dec 30, 2025

    @marcbaechinger
    Contributor

    The commit above adds the raw JSON response to the Listener-API. Apps can receive the entire JSON response that way and use it for their purpose.

    I'm closing this issue. Please create a new issue if we can help any further in this regard.

  4. added a commit that references this issue on Feb 10, 2026
  5. locked and limited conversation to collaborators on Mar 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions