다운로드한 컨텐츠 기능은 사용자가 오프라인 상태인 동안에 미디어 소비를 추적하는 기능을 제공합니다. 예를 들어 사용자가 모바일 장치에 앱을 다운로드하여 설치한 다음 앱을 사용하여 컨텐츠를 장치의 로컬 저장소에 다운로드합니다. 다운로드한 데이터를 추적하기 위해 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 참조를 참조하십시오.