Show Menu
화제×

라이브 주 컨텐츠

시나리오

이 시나리오에는 라이브 스트림에 참여한 후 40초 동안 광고가 재생되지 않은 라이브 자산이 한 개 있습니다.
트리거
하트비트 메서드
네트워크 호출
참고  
사용자가 재생 클릭
trackSessionStart
Analytics 컨텐츠 시작, 하트비트 컨텐츠 시작
재생 ​을 클릭하는 사용자 또는 자동 재생 이벤트일 수 있습니다.
미디어 플레이어의 첫 번째 프레임입니다.
trackPlay
하트비트 컨텐츠 재생
이 메서드는 타이머를 트리거합니다. 재생이 계속되는 한 10초마다 하트비트가 전송됩니다.
컨텐츠가 재생됩니다.
컨텐츠 하트비트
세션이 끝남.
trackSessionEnd
SessionEnd 는 보고 있는 세션의 종료를 의미합니다. 이 API는 사용자가 미디어를 끝까지 시청하지 않은 경우에도 호출해야 합니다.

매개 변수

Adobe Analytics 컨텐츠 시작 호출 시 표시되는 같은 값의 대부분이 하트비트 컨텐츠 시작 호출 시에도 표시됩니다. 또한 Adobe에서 Adobe Analytics의 여러 미디어 보고서를 채울 때 사용하는 다른 여러 매개 변수도 표시됩니다. 여기서 그러한 모든 내용을 다루지는 않으며, 실제로 중요한 내용만 다룹니다.

하트비트 컨텐츠 시작

매개 변수
참고
s:sc:rsid
<Adobe 보고서 세트 ID>
s:sc:tracking_serve
<Analytics 추적 서버 URL>
s:user:mid
s:user:mid
Adobe Analytics 컨텐츠 시작 호출 시 mid 값과 일치해야 함
s:event:type
"start"
s:asset:type
"main"
s:asset:mediao_id
<미디어 이름>
s:stream:type
live
s:meta:*
옵션
미디어에서 설정된 사용자 지정 메타데이터

컨텐츠 하트비트

미디어 재생 중에 10초마다(기본 컨텐츠의 경우) 또는 매초마다(광고의 경우) 하나 이상의 하트비트(또는 Ping)를 전송하는 타이머가 있습니다. 이러한 하트비트에 재생, 광고, 버퍼링 및 기타 많은 정보가 포함됩니다. 각 하트비트의 정확한 컨텐츠는 이 문서의 범위를 벗어나며, 유효성을 확인하기 위해 중요한 사항은 재생이 계속되는 동안 하트비트가 일관되게 트리거된다는 것입니다.
컨텐츠 하트비트에서 다음 몇 가지 특정 사항을 찾습니다.
매개 변수
참고
s:event:type
"play"
l:event:playhead
<playhead position> 예: 50, 60, 70
플레이헤드의 현재 위치를 반영해야 합니다.

하트비트 컨텐츠 완료

라이브 스트림이 완료되지 않았으므로 이 시나리오에는 완료 호출이 없습니다.

플레이헤드 값 설정

라이브 스트림의 경우 플레이헤드를 프로그래밍이 시작될 때부터 오프셋으로 설정해야 하므로 보고 시 분석가는 사용자가 24시간 보기 내에서 라이브 스트림에 참여하고 나가는 시점을 결정할 수 있습니다.

시작 시

라이브 미디어의 경우 사용자가 스트림 재생을 시작할 때 l:event:playhead 를 현재 오프셋으로(초 단위) 설정해야 합니다. 이것은 플레이헤드를 "0"으로 설정한 VOD와 대조적입니다.
예를 들어 라이브 스트리밍 이벤트는 자정에 시작해서 24시간 동안 실행된다고 가정합니다( a.media.length=86400 ; l:asset:length=86400 ). 그런 다음 사용자가 오후 12시에 해당 라이브 스트림 재생을 시작한다고 가정합니다. 이 시나리오에서는 l:event:playhead 를 43200으로(12시간을 스트림으로) 설정해야 합니다.

일시 중지 시

사용자가 재생을 일시 중지할 때 재생 시작 시 적용된 것과 동일한 "라이브 플레이헤드" 논리를 적용해야 합니다. 사용자가 라이브 스트림을 재생으로 돌아가면 l:event:playhead 값을 사용자가 라이브 스트림을 일시 중지한 위치가 아니라 새 오프셋 플레이헤드 위치로 설정해야 합니다.

샘플 코드

Android

다음은 예상 API 호출 순서입니다.
// Set up mediaObject 
MediaObject mediaInfo = MediaHeartbeat.createMediaObject( 
  Configuration.MEDIA_NAME,  
  Configuration.MEDIA_ID,  
  Configuration.MEDIA_LENGTH,  
  MediaHeartbeat.StreamType.LIVE 
); 

HashMap<String, String> mediaMetadata = new HashMap<String, String>(); 
mediaMetadata.put(CUSTOM_VAL_1, CUSTOM_KEY_1); 
mediaMetadata.put(CUSTOM_VAL_2, CUSTOM_KEY_2); 

// 1. Call trackSessionStart() when the user clicks Play or if autoplay is used,  
//    i.e., there is an intent to start playback.  
_mediaHeartbeat.trackSessionStart(mediaInfo, mediaMetadata); 

...... 
...... 

// 2. Call trackPlay() when the playback actually starts, i.e., when the first  
//    frame of main content is rendered on the screen. 
_mediaHeartbeat.trackPlay(); 

....... 
....... 

// 3. Call trackSessionEnd() when user ends the playback session.  
//    Since the user does not watch live media to completion, there  
//    is no need to call trackComplete().  
_mediaHeartbeat.trackSessionEnd(); 
....... 
....... 

iOS

다음은 예상 API 호출 순서입니다.
// Set up mediaObject 
ADBMediaObject *mediaObject =  
[ADBMediaHeartbeat createMediaObjectWithName:MEDIA_NAME  
                   length:MEDIA_LENGTH  
                   streamType:ADBMediaHeartbeatStreamTypeLIVE]; 
 
NSMutableDictionary *mediaContextData = [[NSMutableDictionary alloc] init]; 
[mediaContextData setObject:CUSTOM_VAL_1 forKey:CUSTOM_KEY_1]; 
[mediaContextData setObject:CUSTOM_VAL_2 forKey:CUSTOM_KEY_2]; 
 
// 1. Call trackSessionStart when the user clicks Play or if autoplay is used,  
//    i.e., there is an intent to start playback. 
[_mediaHeartbeat trackSessionStart:mediaObject data:mediaContextData]; 
...... 
...... 
 
// 2. Call trackPlay when the playback actually starts, i.e., when the first  
//    frame of the main content is rendered on the screen. 
[_mediaHeartbeat trackPlay]; 
....... 
....... 
 
// 3. Call trackSessionEnd when user ends the playback session. Since the user  
//    does not watch live media to completion, there is no need to call  
//    trackComplete. 
[_mediaHeartbeat trackSessionEnd]; 
........ 
........ 

JavaScript

다음은 예상 API 호출 순서입니다.
// Set up mediaObject 
var mediaInfo =  
MediaHeartbeat.createMediaObject(Configuration.MEDIA_NAME,  
                                 Configuration.MEDIA_ID,  
                                 Configuration.MEDIA_LENGTH,  
                                 MediaHeartbeat.StreamType.VOD); 

var mediaMetadata = { 
  CUSTOM_KEY_1 : CUSTOM_VAL_1,  
  CUSTOM_KEY_2 : CUSTOM_VAL_2,  
  CUSTOM_KEY_3 : CUSTOM_VAL_3 
}; 

// 1. Call trackSessionStart() when Play is clicked or if autoplay  
//    is used, i.e., there's an intent to start playback. 
this._mediaHeartbeat.trackSessionStart(mediaInfo, mediaMetadata); 

...... 
...... 

// 2. Call trackPlay() when the playback actually starts, i.e., when the  
//    first frame of media is rendered on the screen. 
this._mediaHeartbeat.trackPlay(); 

....... 
....... 

// 3. Call trackSessionEnd() when user ends the playback session.  
//    Since user does not watch live media to completion, there is  
//    no need to call trackComplete(). 
this._mediaHeartbeat.trackSessionEnd(); 

........ 
........