포커스

이 페이지에서는​ 포커스 있음 ​플레이어 상태에 대한 데이터 수집을 다룹니다. 해당 보고 지표에 대해서는 초점의 영향을 받은 스트림, 초점 카운트초점 총 기간을 참조하십시오.

플레이어가 시청자의 주의를 끌 때 포커스 중인 플레이어 상태가 추적됩니다. 플레이어가 포커스를 얻으면(일반적으로 플레이어 탭이나 창이 활성화될 때) 상태 시작 이벤트를 실행하고 플레이어가 포커스를 잃으면 상태 종료 이벤트를 실행합니다. 백엔드는 이러한 이벤트에서 영향을 받은 스트림, 상태 항목의 수 및 총 상태 시간 등 세 가지 지표를 계산합니다.

속성
컨텍스트 데이터 변수
a.media.states.infocus.set, a.media.states.infocus.count, a.media.states.infocus.time
XDM 컬렉션 필드
xdm.mediaCollection.statesStart[]xdm.mediaCollection.statesEnd[]​(name: "inFocus"이(가) 있는 항목)
Audience Manager 트레이트
c_contextdata.a.media.states.infocus.set, c_contextdata.a.media.states.infocus.count, c_contextdata.a.media.states.infocus.time
필수
아니요
전송 시점
상태 시작, 상태 끝

권장 구현 유형

웹 SDK

sendEvent을(를) 사용하여 상태가 statesStart에 추가된 media.statesUpdate 이벤트를 보냅니다.

code language-javascript
alloy("sendEvent", {
  xdm: {
    eventType: "media.statesUpdate",
    mediaCollection: {
      statesStart: [{ name: "inFocus" }],
      sessionID: "{sid}",
      playhead: 60
    }
  }
});

플레이어가 포커스를 잃으면 상태가 statesEnd인 다른 이벤트를 보냅니다.

code language-javascript
alloy("sendEvent", {
  xdm: {
    eventType: "media.statesUpdate",
    mediaCollection: {
      statesEnd: [{ name: "inFocus" }],
      sessionID: "{sid}",
      playhead: 90
    }
  }
});
iOS

MediaConstants.PlayerState.IN_FOCUS 상수와 함께 tracker.trackPlayerStateStart()tracker.trackPlayerStateEnd()을(를) 사용합니다.

code language-swift
let stateObject = Media.createStateObjectWith(stateName: MediaConstants.PlayerState.IN_FOCUS)

tracker.trackPlayerStateStart(info: stateObject)
tracker.trackPlayerStateEnd(info: stateObject)
Android

MediaConstants.PlayerState.IN_FOCUS 상수와 함께 tracker.trackPlayerStateStart()tracker.trackPlayerStateEnd()을(를) 사용합니다.

code language-kotlin
val stateObject = Media.createStateObject(MediaConstants.PlayerState.IN_FOCUS)

tracker.trackPlayerStateStart(stateObject)
tracker.trackPlayerStateEnd(stateObject)
Roku

sendMediaEvent을(를) 사용하여 상태가 statesStart에 추가된 media.statesUpdate 이벤트를 보냅니다.

code language-brightscript
m.aepSdk.sendMediaEvent({
    "xdm": {
        "eventType": "media.statesUpdate",
        "mediaCollection": {
            "statesStart": [{ "name": "inFocus" }],
            "playhead": 60
        }
    }
})

플레이어가 포커스를 잃으면 상태가 statesEnd인 다른 이벤트를 보냅니다.

code language-brightscript
m.aepSdk.sendMediaEvent({
    "xdm": {
        "eventType": "media.statesUpdate",
        "mediaCollection": {
            "statesEnd": [{ "name": "inFocus" }],
            "playhead": 90
        }
    }
})
미디어 Edge API

statesStart(또는 플레이어가 포커스를 잃으면 statesEnd)에서 inFocus(으)로 statesUpdate 끝점을 호출합니다.

code language-json
{
  "events": [{
    "xdm": {
      "eventType": "media.statesUpdate",
      "mediaCollection": {
        "statesStart": [{ "name": "inFocus" }],
        "sessionID": "{sid}",
        "playhead": 60
      }
    }
  }]
}

이전 구현 유형(Analytics 전용)

Media SDK JS 3.x

ADB.Media.createStateObjectADB.Media.PlayerState.InFocus 상수 사용:

code language-javascript
var stateObject = ADB.Media.createStateObject(ADB.Media.PlayerState.InFocus);

tracker.trackPlayerStateStart(stateObject);
tracker.trackPlayerStateEnd(stateObject);
Chromecast

Chromecast에는 PlayerState 상수가 없으므로 "inFocus" 문자열과 함께 ADBMobile.media.createStateObject을(를) 직접 사용하십시오.

code language-javascript
var stateObject = ADBMobile.media.createStateObject("inFocus");
ADBMobile.media.trackEvent(ADBMobile.media.Event.StateStart, stateObject);
// When the player loses focus:
ADBMobile.media.trackEvent(ADBMobile.media.Event.StateEnd, stateObject);
미디어 컬렉션 API

플레이어가 포커스를 얻으면 stateStart POST 요청을 보내고 포커스를 잃으면 stateEnd POST를 보냅니다.

code language-json
{
  "playerTime": { "playhead": 60, "ts": 1699523820000 },
  "eventType": "stateStart",
  "params": {
    "media.state.name": "inFocus"
  }
}

전체 요청 구조에 대해서는 Media Collection API 이벤트 참조를 참조하십시오.

recommendation-more-help
media-analytics-help