Genre

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

The genre variable is the content genre as defined by the producer (for example, "Drama", "Comedy", or "Drama,Action"). Comma-delimit multiple values when the content fits more than one genre. In reporting, the list variable splits each value into a separate line item, with each line item receiving equal metric weight.

NOTE
In the reporting pipeline, the genre value is exposed as xdm.mediaReporting.sessionDetails.genreList (a list field). The older xdm.mediaReporting.sessionDetails.genre path remains functional but genreList is recommended.
Property
Value
Context data variable
a.media.genre
XDM collection field
xdm.mediaCollection.sessionDetails.genre
Audience Manager trait
c_contextdata.a.media.genre
Required
No
Sent with
Session start, session close
Web SDK

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

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

Pass the genre string as a metadata key in the HashMap argument to trackSessionStart. Use MediaConstants.VideoMetadataKeys.GENRE.

code language-swift
var metadata: [String: String] = [:]
metadata[MediaConstants.VideoMetadataKeys.GENRE] = "Drama,Action"

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

Pass the genre string as a metadata key in the HashMap argument to trackSessionStart. Use MediaConstants.VideoMetadataKeys.GENRE.

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

tracker.trackSessionStart(mediaInfo, metadata)
Roku

Use createMediaSession to set genre inside sessionDetails:

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

Call the sessionStart endpoint with genre 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",
          "genre": "Drama,Action"
        },
        "playhead": 0
      }
    }
  }]
}

Legacy implementation types (Analytics-only)

Media SDK JS 3.x

Pass the genre in the contextData object using ADB.Media.VideoMetadataKeys.Genre:

code language-javascript
var contextData = {};
contextData[ADB.Media.VideoMetadataKeys.Genre] = "Drama,Action";

tracker.trackSessionStart(mediaInfo, contextData);
Chromecast

Use ADBMobile.media.VideoMetadataKeys.GENRE to set the genre 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.GENRE] = "Drama,Action";
mediaInfo[ADBMobile.media.MediaObjectKey.StandardMediaMetadata] = standardMetadata;
ADBMobile.media.trackSessionStart(mediaInfo, null);
Media Collection API

Include media.genre in the params object:

code language-json
{
  "playerTime": { "playhead": 0, "ts": 1699523820000 },
  "eventType": "sessionStart",
  "params": {
    "media.genre": "Drama,Action"
  }
}

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

recommendation-more-help
media-analytics-help