다운로드한 콘텐츠 기능은 사용자가 오프라인 상태인 동안에 미디어 소비를 추적하는 기능을 제공합니다. 예를 들어 사용자가 모바일 디바이스에 앱을 다운로드하여 설치한 다음 앱을 사용하여 콘텐츠를 디바이스의 로컬 저장소에 다운로드합니다. 다운로드한 데이터를 추적하기 위해 Adobe는 다운로드한 콘텐츠 기능을 개발했습니다. 이 기능을 사용하면 사용자가 디바이스의 저장소에서 콘텐츠를 재생할 때 디바이스의 연결 상태에 관계없이 추적 데이터가 디바이스에 저장됩니다. 사용자가 재생 세션을 마치고 디바이스가 온라인 상태이면 저장된 추적 정보는 단일 페이로드 내의 Media Collection API 백 엔드로 전송됩니다. 그런 다음 저장된 추적 정보가 Media Collection API에서 평소대로 처리 및 보고됩니다.
다음 두 가지 방법을 대조합니다.
온라인
이 실시간 접근 방식을 사용하면 미디어 플레이어가 각 플레이어 이벤트에 대한 추적 데이터를 전송하고, 10초마다(광고의 경우 1초마다) 네트워크 ping을 백 엔드에 한 번에 하나씩 전송합니다.
오프라인 (다운로드한 콘텐츠 기능)
일괄 처리 방법을 사용하면 동일한 세션 이벤트를 생성해야 하지만, 이러한 세션 이벤트는 단일 세션으로 백 엔드에 전송될 때까지 디바이스에 저장됩니다(아래 예 참조).
각 접근 방식은 다음과 같은 장점과 단점이 있습니다.
콘텐츠 추적은 iOS 및 Android 모바일 디바이스에서 지원됩니다.
다운로드한 콘텐츠 기능은 (표준) 온라인 Media Collection API의 오프라인 버전이므로, 플레이어에서 일괄 처리하여 백 엔드로 전송하는 이벤트 데이터는 온라인 호출 시 사용하는 것과 동일한 이벤트 스키마를 사용해야 합니다. 이들 스키마에 대한 자세한 내용은 다음을 참조하십시오.
sessionStart
여야 합니다.media.downloaded: true
를 sessionStart
이벤트의 표준 메타데이터 매개변수(params
키)에 포함해야 합니다. 다운로드한 데이터를 보낼 때 이 매개변수가 없거나 거짓으로 설정되어 있으면 이 API는 400 응답 코드(잘못된 요청)를 반환합니다. 이 매개변수는 백 엔드에 다운로드한 콘텐츠와 라이브 콘텐츠를 구별합니다. media.downloaded: true
가 활동 상태 세션에 설정되어 있는 경우 API에서 똑같이 400 응답 코드가 발생합니다.다운로드한 콘텐츠 시나리오에 대한 Analytics 시작/닫기 호출을 계산할 때 백 엔드는 ts.
라는 추가 Analytics 필드를 설정합니다. 이들은 받은 첫 번째 이벤트와 마지막 이벤트(시작 및 완료)에 대한 타임스탬프입니다. 이 메커니즘을 사용하면 완료된 미디어 세션을 올바른 시점에 배치할 수 있습니다. 즉, 사용자가 며칠 동안 온라인 상태가 되지 않더라도 콘텐츠를 실제로 확인할 때 미디어 세션이 발생했다고 보고합니다. 타임스탬프 선택 사항 보고서 세트를 작성하여 Adobe Analytics 측에서 이 메커니즘을 사용 가능하도록 설정해야 합니다. 타임스탬프 선택 사항 보고서 세트를 사용하려면 타임스탬프 선택 사항을 참조하십시오.
POST /api/v1/sessions HTTP/1.1
{
eventType: "sessionStart",
playerTime: {
playhead: 0,
ts: 1529997923478},
params: { /* Standard metadata parameters as documented */ },
customMetadata: { /* Custom metadata parameters as documented */ },
qoeData: { /* QoE parameters as documented */ }
}
POST /api/v1/downloaded HTTP/1.1
[{
eventType: "sessionStart",
playerTime:{
playhead: 0,
ts: 1529997923478
},
params:{...},
customMetadata:{},
qoeData:{}
},
{eventType: "play", playerTime:
{playhead: 0, ts: 1529997928174}},
{eventType: "ping", playerTime:
{playhead: 10, ts: 1529997937503}},
{eventType: "ping", playerTime:
{playhead: 20, ts: 1529997947533}},
{eventType: "ping", playerTime:
{playhead: 30, ts: 1529997957545},},
{eventType: "sessionComplete", playerTime:
{playhead: 35, ts: 1529997960559}
}]
다운로드한 콘텐츠는 이전에 /api/v1/sessions
API로 전송될 수도 있습니다. 다운로드한 콘텐츠를 추적하는 이 방법은 이제 사용 중지되며 삭제될 예정입니다.
/api/v1/sessions
API는 세션 초기화 이벤트만 허용합니다.
새 API를 사용할 때 이전의 필수 media.downloaded
플래그는 더 이상 필요하지 않습니다.
새로운 다운로드 콘텐츠 구현을 위해 /api/v1/downloaded
API를 사용하고 이전 API에 의존하는 기존 구현을 업데이트하는 것이 좋습니다.
POST /api/v1/sessions HTTP/1.1
[{
eventType: "sessionStart",
playerTime:{
playhead: 0,
ts: 1529997923478
},
params:{
"media.downloaded": true,
...
},
customMetadata:{},
qoeData:{}
},
{eventType: "play", playerTime:
{playhead: 0, ts: 1529997928174}},
{eventType: "ping", playerTime:
{playhead: 10, ts: 1529997937503}},
{eventType: "ping", playerTime:
{playhead: 20, ts: 1529997947533}},
{eventType: "ping", playerTime:
{playhead: 30, ts: 1529997957545},},
{eventType: "sessionComplete", playerTime:
{playhead: 35, ts: 1529997960559}
}]
다운로드한 콘텐츠를 구성하는 방법에 대한 자세한 내용은 미디어 추적기 API 참조를 참조하십시오.