이 설명서는 SDK의 버전 2.x에 있는 추적 기능에 대해 설명합니다.
SDK의 1.x 버전을 구현하는 경우 SDK 다운로드에서 1.x 개발자 안내서를 다운로드할 수 있습니다.
초기 추적 설정
사용자가 재생 의도를 트리거하는 시기(사용자가 재생을 클릭하거나 자동 재생이 켜짐)를 식별하고 MediaObject
인스턴스를 만듭니다.
변수 이름 | 설명 | 필수 여부 |
---|---|---|
name |
비디오 이름 | 예 |
mediaid |
비디오 고유 식별자입니다 | 예 |
length |
비디오 길이 | 예 |
streamType |
스트림 유형(아래 StreamType 상수 참조) | 예 |
mediaType |
미디어 유형(아래 MediaType 상수 참조) | 예 |
StreamType
상수:
상수 이름 | 설명 |
---|---|
ADBMediaHeartbeatStreamTypeVOD |
Video on Demand에 대한 스트림 유형입니다 |
ADBMediaHeartbeatStreamTypeLIVE |
라이브 콘텐츠에 대한 스트림 유형입니다 |
ADBMediaHeartbeatStreamTypeLINEAR |
선형 콘텐츠에 대한 스트림 유형입니다 |
ADBMediaHeartbeatStreamTypeAOD |
Audio On Demand에 대한 스트림 유형입니다. |
ADBMediaHeartbeatStreamTypeAUDIOBOOK |
오디오북에 대한 스트림 유형입니다. |
ADBMediaHeartbeatStreamTypePODCAST |
팟캐스트에 대한 스트림 유형입니다. |
MediaType
상수:
상수 이름 | 설명 |
---|---|
ADBMediaTypeAudio |
오디오 스트림에 대한 미디어 유형입니다. |
ADBMediaTypeVideo |
비디오 스트림에 대한 미디어 유형입니다. |
MediaObject
를 작성하는 데 필요한 일반적인 형식:
ADBMediaObject *mediaObject =
[ADBMediaHeartbeat createMediaObjectWithName:<MEDIA_NAME>
mediaId:<MEDIA_ID>
length:<MEDIA_LENGTH>
streamType:<STREAM_TYPE>
mediaType: <MEDIA_TYPE>];
비디오 메타데이터 첨부
필요한 경우 컨텍스트 데이터 변수를 통해 표준 및/또는 사용자 지정 비디오 메타데이터 개체를 비디오 추적 세션에 첨부합니다.
표준 비디오 메타데이터
비디오 메타데이터 키
오디오 및 비디오 매개 변수에서 비디오 메타데이터에 대한 종합 목록을 참조하십시오.
표준 비디오 메타데이터 개체를 미디어 개체에 첨부하는 것은 선택 사항입니다.
사용자 지정 메타데이터
사용자 지정 변수에 대한 변수 개체를 만들고, 이 비디오의 데이터로 채웁니다. 예:
NSMutableDictionary *videoMetadata = [[NSMutableDictionary alloc] init];
[videoMetadata setObject:@"false" forKey:@"isUserLoggedIn"];
[videoMetadata setObject:@"Sample TV station" forKey:@"tvStation"];
재생을 시작하려는 의도 추적
미디어 세션 추적을 시작하려면 미디어 하트비트 인스턴스에서 trackSessionStart
를 호출합니다.
두 번째 값은 2단계에서 작성한 사용자 지정 비디오 메타데이터 개체 이름입니다.
- (void)onMainVideoLoaded:(NSNotification *)notification {
// [_mediaHeartbeat trackSessionStart:mediaObject data:nil];
[_mediaHeartbeat trackSessionStart:mediaObject data:videoMetadata];
}
재생 시작이 아니라 trackSessionStart
는 사용자의 재생 의도를 추적합니다. 이 API는 비디오 데이터/메타데이터를 로드하고, QoS 지표(trackSessionStart
와 trackPlay
사이의 기간)를 시작할 시간을 예상하는 데 사용됩니다.
사용자 지정 비디오 메타데이터를 사용하지 않는 경우 위의 iOS 예에서 주석 처리된 행에 표시된 대로 trackSessionStart
의 data
인수에 대해 빈 개체를 보내면 됩니다.
실제 재생 시작 추적
비디오 플레이어에서 비디오의 첫 번째 프레임이 화면에서 렌더링되는 비디오 재생 시작에 대한 이벤트를 식별하고, trackPlay
()를 호출합니다.
- (void)onVideoPlay:(NSNotification *)notification {
[_mediaHeartbeat trackPlay];
}
재생 완료 추적
비디오 플레이어에서 사용자가 콘텐츠의 끝까지 시청한 비디오 재생 완료에 대한 이벤트를 식별하고, trackComplete
()를 호출합니다.
- (void)onVideoComplete:(NSNotification *)notification {
[_mediaHeartbeat trackComplete];
}
세션의 끝 추적
비디오 플레이어에서 사용자가 비디오를 닫거나 비디오가 완료 및 업로드된 비디오 재생 업로드/종료에 대한 이벤트를 식별하고, trackSessionEnd
()를 호출합니다.
- void)onMainVideoUnloaded:(NSNotification *)notification {
[_mediaHeartbeat trackSessionEnd];
}
trackSessionEnd
는 비디오 추적 세션의 끝을 표시합니다. 세션을 끝까지 성공적으로 시청한 경우, 즉, 사용자가 끝까지 콘텐츠를 시청한 경우 trackComplete
가 trackSessionEnd
전에 호출되는지 확인합니다. 새 비디오 추적 세션에 필요한 track*
를 제외하고, 다른 모든 trackSessionEnd
API 호출은 trackSessionStart
이후 무시됩니다.
가능한 모든 일시 중지 시나리오 추적
비디오 플레이어에서 비디오 일시 중지에 대한 이벤트를 식별하고 trackPause
를 호출합니다.
- (void)onVideoPause:(NSNotification *)notification {
[_mediaHeartbeat trackPause];
}
시나리오 일시 정지
비디오 플레이어에서 일시 정지할 시나리오를 식별하고 trackPause
가 제대로 호출되는지 확인하십시오. 다음 시나리오에서는 모두 앱 호출 trackPause()
가 필요합니다.
플레이어에서 비디오 재생 및/또는 일시 정지에서 비디오 재개에 대한 이벤트를 식별하고 trackPlay
를 호출합니다.
- (void)onVideoPlay:(NSNotification *)notification {
[_mediaHeartbeat trackPlay];
}
이 이벤트 소스는 4단계에서 사용한 이벤트 소스와 같을 수 있습니다. 비디오 재생이 다시 시작될 때 각 trackPause()
API 호출이 다음 trackPlay()
API 호출과 연결되는지 확인하십시오.
코어 재생 추적에 대한 자세한 내용은 다음을 참조하십시오.