This page covers data collection for the Mute player state. See Streams impacted by mute, Mute counts, and Mute total duration for the corresponding reporting metrics.
The mute player state tracks when the viewer mutes and unmutes audio. Fire a state-start event when the viewer mutes and a state-end event when the viewer unmutes. The backend computes three metrics from these events: streams impacted, count of state entries, and total time in state.
a.media.states.mute.set, a.media.states.mute.count, a.media.states.mute.timec_contextdata.a.media.states.mute.set, c_contextdata.a.media.states.mute.count, c_contextdata.a.media.states.mute.timeWeb SDK
Use sendEvent to send a media.statesUpdate event with the state added to statesStart:
alloy("sendEvent", {
xdm: {
eventType: "media.statesUpdate",
mediaCollection: {
statesStart: [{ name: "mute" }],
sessionID: "{sid}",
playhead: 60
}
}
});
When the viewer unmutes, send another event with the state in statesEnd:
alloy("sendEvent", {
xdm: {
eventType: "media.statesUpdate",
mediaCollection: {
statesEnd: [{ name: "mute" }],
sessionID: "{sid}",
playhead: 90
}
}
});
Mobile SDK
Use tracker.trackPlayerStateStart() and tracker.trackPlayerStateEnd() with the MediaConstants.PlayerState.MUTE constant.
iOS (Swift)
let stateObject = Media.createStateObjectWith(stateName: MediaConstants.PlayerState.MUTE)
tracker.trackPlayerStateStart(info: stateObject)
tracker.trackPlayerStateEnd(info: stateObject)
Android (Kotlin)
val stateObject = Media.createStateObject(MediaConstants.PlayerState.MUTE)
tracker.trackPlayerStateStart(stateObject)
tracker.trackPlayerStateEnd(stateObject)
Roku (BrightScript)
Use sendMediaEvent to send a media.statesUpdate event with the state added to statesStart:
m.aepSdk.sendMediaEvent({
"xdm": {
"eventType": "media.statesUpdate",
"mediaCollection": {
"statesStart": [{ "name": "mute" }],
"playhead": 60
}
}
})
When the viewer unmutes, send another event with the state in statesEnd:
m.aepSdk.sendMediaEvent({
"xdm": {
"eventType": "media.statesUpdate",
"mediaCollection": {
"statesEnd": [{ "name": "mute" }],
"playhead": 90
}
}
})
Media Edge API
Call the statesUpdate endpoint with mute in statesStart (or statesEnd when the viewer unmutes):
{
"events": [{
"xdm": {
"eventType": "media.statesUpdate",
"mediaCollection": {
"statesStart": [{ "name": "mute" }],
"sessionID": "{sid}",
"playhead": 60
}
}
}]
}
Media SDK
Use ADB.Media.createStateObject and the ADB.Media.PlayerState.Mute constant:
var stateObject = ADB.Media.createStateObject(ADB.Media.PlayerState.Mute);
tracker.trackPlayerStateStart(stateObject);
tracker.trackPlayerStateEnd(stateObject);
Media Collection API
Send a stateStart POST request when the viewer mutes, and a stateEnd POST when they unmute:
{
"playerTime": { "playhead": 60, "ts": 1699523820000 },
"eventType": "stateStart",
"params": {
"media.state.name": "mute"
}
}
See the Media Collection API events reference for the full request structure.