Adobe Experience Platform Launch 已經過品牌重塑,現在是 Experience Platform 中的一套資料收集技術。 因此,所有產品文件中出現了幾項術語變更。 如需術語變更的彙整參考資料,請參閱以下文件。
在獨立 Media SDK 中,您可在應用程式中設定追蹤,並在建立追蹤器時
將其傳遞至 SDK。
MediaHeartbeatConfig config = new MediaHeartbeatConfig();
config.trackingServer = "namespace.hb.omtrdc.net";
config.channel = "sample-channel";
config.appVersion = "v2.0.0";
config.ovp = "video-provider";
config.playerName = "native-player";
config.ssl = true;
config.debugLogging = true;
MediaHeartbeat tracker = new MediaHeartbeat(... , config);
在獨立 Media SDK中,您可手動建立 MediaHeartbeatConfig
物件
並設定追蹤參數。實作委派介面公開
getQoSObject()
和 getCurrentPlaybackTime()functions.
建立 MediaHeartbeat
例項以供追蹤。
MediaHeartbeatConfig config = new MediaHeartbeatConfig();
config.trackingServer = "namespace.hb.omtrdc.net";
config.channel = "sample-channel";
config.appVersion = "v2.0";
config.ovp = "video-provider";
config.playerName = "native-player";
config.ssl = true;
config.debugLogging = true;
MediaHeartbeatDelegate delegate = new MediaHeartbeatDelegate() {
@Override
public MediaObject getQoSObject() {
// When called should return the latest qos values.
return MediaHeartbeat.createQoSObject(<bitrate>,
<startupTime>,
<fps>,
<droppedFrames>);
}
@Override
public Double getCurrentPlaybackTime() {
// When called should return the current player time in seconds.
return <currentPlaybackTime>;
}
MediaHeartbeat tracker = new MediaHeartbeat(delegate, config);
}
建立追蹤器前,您應先透過行動核心註冊媒體擴充功能與相依擴充功能。
// Register the extension once during app launch
try {
// Media needs Identity and Analytics extension
// to function properly
Identity.registerExtension();
Analytics.registerExtension();
// Initialize media extension.
Media.registerExtension();
MobileCore.start(new AdobeCallback () {
@Override
public void call(Object o) {
// Launch mobile property to pick extension settings.
MobileCore.configureWithAppID("LAUNCH_MOBILE_PROPERTY");
}
});
} catch (InvalidInitException ex) {
...
}
註冊媒體擴充功能後,請使用以下 API 建立追蹤器。
追蹤器會自動從已設定的啟動屬性中挑選設定。
Media.createTracker(new AdobeCallback<MediaTracker>() {
@Override
public void call(MediaTracker tracker) {
// Use the instance for tracking media.
}
});
在獨立 Media SDK 中,實作 MediaHeartbeartDelegate
介面的委派物件會在建立追蹤器時傳遞。當追蹤器呼叫 getQoSObject()
和 getCurrentPlaybackTime()
介面方法時,實作應傳回最新的 QoE 和播放點。
實作應呼叫追蹤器公開的 updateCurrentPlayhead
方法,
以更新目前播放器播放點。您應每秒至少呼叫一次此方法以精確追蹤。
實作應呼叫追蹤器公開的 updateQoEObject
方法,
以更新 QoE 資訊。我們預期當品質量度發生變更時,
會呼叫此方法。
標準媒體中繼資料:
MediaObject mediaInfo =
MediaHeartbeat.createMediaObject("media-name",
"media-id",
60D,
MediaHeartbeat.StreamType.VOD,
MediaHeartbeat.MediaType.Video);
// Standard metadata keys provided by adobe.
Map <String, String> standardVideoMetadata =
new HashMap<String, String>();
standardVideoMetadata.put(MediaHeartbeat.VideoMetadataKeys.EPISODE,
"Sample Episode");
standardVideoMetadata.put(MediaHeartbeat.VideoMetadataKeys.SHOW,
"Sample Show");
standardVideoMetadata.put(MediaHeartbeat.VideoMetadataKeys.SEASON,
"Sample Season");
mediaInfo.setValue(MediaHeartbeat.MediaObjectKey.StandardMediaMetadata,
standardVideoMetadata);
// Custom metadata keys
HashMap<String, String> mediaMetadata = new HashMap<String, String>();
mediaMetadata.put("isUserLoggedIn", "false");
mediaMetadata.put("tvStation", "Sample TV Station");
tracker.trackSessionStart(mediaInfo, mediaMetadata);
標準廣告中繼資料:
MediaObject adInfo =
MediaHeartbeat.createAdObject("ad-name",
"ad-id",
1L,
15D);
// Standard metadata keys provided by adobe.
Map <String, String> standardAdMetadata =
new HashMap<String, String>();
standardAdMetadata.put(MediaHeartbeat.AdMetadataKeys.ADVERTISER,
"Sample Advertiser");
standardAdMetadata.put(MediaHeartbeat.AdMetadataKeys.CAMPAIGN_ID,
"Sample Campaign");
adInfo.setValue(MediaHeartbeat.MediaObjectKey.StandardAdMetadata,
standardAdMetadata);
HashMap<String, String> adMetadata =
new HashMap<String, String>();
adMetadata.put("affiliate",
"Sample affiliate");
tracker.trackEvent(MediaHeartbeat.Event.AdStart,
adObject,
adMetadata);
標準媒體中繼資料:
HashMap<String, Object> mediaObject =
Media.createMediaObject("media-name",
"media-id",
60D,
MediaConstants.StreamType.VOD,
Media.MediaType.Video);
HashMap<String, String> mediaMetadata =
new HashMap<String, String>();
// Standard metadata keys provided by adobe.
mediaMetadata.put(MediaConstants.VideoMetadataKeys.EPISODE,
"Sample Episode");
mediaMetadata.put(MediaConstants.VideoMetadataKeys.SHOW,
"Sample Show");
// Custom metadata keys
mediaMetadata.put("isUserLoggedIn", "false");
mediaMetadata.put("tvStation", "Sample TV Station");
tracker.trackSessionStart(mediaInfo, mediaMetadata);
標準廣告中繼資料:
HashMap<String, Object> adObject =
Media.createAdObject("ad-name",
"ad-id",
1L,
15D);
HashMap<String, String> adMetadata =
new HashMap<String, String>();
// Standard metadata keys provided by adobe.
adMetadata.put(MediaConstants.AdMetadataKeys.ADVERTISER,
"Sample Advertiser");
adMetadata.put(MediaConstants.AdMetadataKeys.CAMPAIGN_ID,
"Sample Campaign");
// Custom metadata keys
adMetadata.put("affiliate",
"Sample affiliate");
_tracker.trackEvent(Media.Event.AdStart,
adObject,
adMetadata);