Skip to content

Reporting schema for CMCD v2 #440

@nicolaslevy

Description

@nicolaslevy

As discussed at the DASH-IF meeting in Berlin, a new reporting schema is proposed for publication so that the MPD contains the necessary information for a client to configure the three CMCD v2 modes (Request, Response, and Event mode).

From the feedback received, this new schema should consider:

  • Define X amount CMCD v2 targets
  • For all modes, filter keys to send
  • For Request mode, filter by cdn (location)
  • Work with CDNs that support v1
  • For Event mode, filter events
  • Support for Annex I for Response and Event mode (i.e. to send authentication tokens)
  • Override capabilities of upper level definitions (version, content id and session id)
  • If session id is not defined the client should create a random uuid4
  • Configuration for batching intervals in Response and Event mode, for both, time and size.
  • A way to do sub-sampling (a probability number or something similar for the client to decide if send or not data). For this we added a "sample" option sample=N, where N is an integer between 0 and 100 inclusive and represents the percentage probability that that target should be used for the playback session (sid). The default is 100 if this parameter is omitted. So sample=20 would mean that 20% of sessions would use that target. It could be implemented by the player if Math.random()*100 <= N.

Below is an example of what this element could look like, this is an early draft that almost capture all those items:

<ClientDataReporting
  schemeIdUri="urn:dashif:cta-5004:2025">
  <CMCDParameters 
    version=2
    contentID="content-id-1"
    sessionID="session-id-1" > 
    <!--TODO: Support Annex I for sid if not defined random uuid4()-->
    <ReportingTargets>
      <RequestTarget 
        version=1
        serviceLocations="cdn-a"
        mode="query"
        keys="br sid cid"
        requestFilter="mpd segment steering" />
      <RequestTarget
        serviceLocations="cdn-b"
        mode="query"
        keys="br sid cid"
        requestFilter="mpd segment" />
      <ResponseTarget 
        mode="json"
        jsonBatchLimit="30 4"
        contentID="content-id-override"
        sessionID="session-id-override"
        keys="sid ot rc msd cid"
        url="http://content-steering.com/collector"
        requestFilter="mpd segment" />
      <EventTarget 
        url="http://user-analytics.com/cmcd-data-collector"
        timeInterval=10
        mode="header"
        keys="sid e mds sta cid"
        events="ps e t" />
      <EventTarget 
        url="http://thirdparty.com/v2endpoint"
        timeInterval=60
        mode="json"
        sample=20
        jsonBatchLimit="30 4" 
        keys="sid bl cid"
        events="t" >
        <!--TODO: 
           - cmcd spec add considerations for large batching intervals 
           - batchLimit 2 params: size and time
           - Update Annex I to new Dash 6th ed. 
         -->
            <EssentialProperty schemeIdUri="urn:mpeg:dash:urlparam:2014">
              <up:UrlQueryInfo xmlns:up="urn:mpeg:dash:schema:urlparam:2014"
                queryTemplate="token=$query:tokencmcd$"
                useMPDUrlQuery="true">
              </up:UrlQueryInfo>
            </EssentialProperty>
        </EventTarget>
    </ReportingTargets>
  </CMCDParameters>
</ClientDataReporting>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions