Content rating

This page covers data collection for the Content rating variable. See Content rating for the corresponding reporting dimension.

The content rating variable is the audience rating as defined by TV Parental Guidelines ("TVY", "TVG", "TVPG", "TVMA") or any regional rating system you use. Use it to compare engagement and ad load across rating tiers.

Property
Value
Context data variable
a.media.rating
XDM collection field
xdm.mediaCollection.sessionDetails.rating
Audience Manager trait
c_contextdata.a.media.rating
Required
No
Sent with
Session start, session close
Web SDK

Set rating inside xdm.mediaCollection.sessionDetails when calling sendEvent:

code language-javascript
alloy("sendEvent", {
  xdm: {
    eventType: "media.sessionStart",
    mediaCollection: {
      sessionDetails: {
        rating: "TVPG"
      },
      playhead: 0
    }
  }
});
iOS

Pass the rating as a metadata key in the HashMap argument to trackSessionStart. Use MediaConstants.VideoMetadataKeys.RATING.

code language-swift
var metadata: [String: String] = [:]
metadata[MediaConstants.VideoMetadataKeys.RATING] = "TVPG"

tracker.trackSessionStart(info: mediaObject, metadata: metadata)
Android

Pass the rating as a metadata key in the HashMap argument to trackSessionStart. Use MediaConstants.VideoMetadataKeys.RATING.

code language-kotlin
val metadata = HashMap<String, String>()
metadata[MediaConstants.VideoMetadataKeys.RATING] = "TVPG"

tracker.trackSessionStart(mediaInfo, metadata)
Roku

Use createMediaSession to set rating inside sessionDetails:

code language-brightscript
m.aepSdk.createMediaSession({
    "xdm": {
        "eventType": "media.sessionStart",
        "mediaCollection": {
            "sessionDetails": {
                "rating": "TVPG"
            },
            "playhead": 0
        }
    }
})
Media Edge API

Call the sessionStart endpoint with rating inside xdm.mediaCollection.sessionDetails:

code language-json
{
  "events": [{
    "xdm": {
      "eventType": "media.sessionStart",
      "mediaCollection": {
        "sessionDetails": {
          "name": "video-123",
          "length": 128,
          "contentType": "vod",
          "playerName": "HTML5 Player",
          "channel": "Sports",
          "rating": "TVPG"
        },
        "playhead": 0
      }
    }
  }]
}

Legacy implementation types (Analytics-only)

Media SDK JS 3.x

Pass the rating in the contextData object using ADB.Media.VideoMetadataKeys.Rating:

code language-javascript
var contextData = {};
contextData[ADB.Media.VideoMetadataKeys.Rating] = "TVPG";

tracker.trackSessionStart(mediaInfo, contextData);
Chromecast

Use ADBMobile.media.VideoMetadataKeys.RATING to set the content rating in the StandardMediaMetadata property of the media object before calling trackSessionStart:

code language-javascript
var mediaInfo = ADBMobile.media.createMediaObject("My Video", "video-123", 128,
  ADBMobile.media.StreamType.VOD, ADBMobile.media.MediaType.Video);
var standardMetadata = {};
standardMetadata[ADBMobile.media.VideoMetadataKeys.RATING] = "TVPG";
mediaInfo[ADBMobile.media.MediaObjectKey.StandardMediaMetadata] = standardMetadata;
ADBMobile.media.trackSessionStart(mediaInfo, null);
Media Collection API

Include media.rating in the params object:

code language-json
{
  "playerTime": { "playhead": 0, "ts": 1699523820000 },
  "eventType": "sessionStart",
  "params": {
    "media.rating": "TVPG"
  }
}

See the Media Collection API sessions reference for the full request structure.

recommendation-more-help
media-analytics-help