Migración del SDK de medios independiente a Adobe Launch: Android
Configuración
SDK de medios independiente
En el SDK de medios independiente se establece la configuración de seguimiento en la aplicación
y se traslada al SDK cuando se crea el rastreador.
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);
Extensión de Launch
- En Experience Platform Launch, haga clic en la pestaña Extensiones
de su propiedad móvil. - En la pestaña Catálogo, busque la extensión Adobe Media Analytics para audio
y
vídeo y haga clic en Instalar. - En la página de configuración de la extensión, configure los parámetros de seguimiento. La extensión de medios utilizará los parámetros configurados para el seguimiento.
Creación de rastreadores
SDK de medios independiente
En el SDK de medios independiente, cree manualmente el objeto MediaHeartbeatConfig
y configure los parámetros de seguimiento. Implemente la interfaz delegada que exponga getQoSObject()
y getCurrentPlaybackTime()functions.
Cree una instancia de MediaHeartbeat
para realizar el seguimiento.
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);
}
Extensión de Launch
Referencia de API de medios: Crear un rastreador de medios
Antes de crear el rastreador, debe registrar la extensión multimedia
y las extensiones dependientes con el núcleo móvil.
// 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) {
...
}
Una vez registrada la extensión de medios, cree el rastreador con la siguiente API.
El rastreador selecciona automáticamente la configuración de la propiedad configurada de Launch.
Media.createTracker(new AdobeCallback<MediaTracker>() {
@Override
public void call(MediaTracker tracker) {
// Use the instance for tracking media.
}
});
Actualización de los valores de experiencia del cabezal de reproducción y de la calidad.
SDK de medios independiente
En el SDK de medios independiente, se pasa un objeto delegado que implementa
la interfaz de MediaHeartbeartDelegate
durante la creación del rastreador. La implementación
debe devolver el último QoE y cabezal de reproducción cada vez que el rastreador invoque
los métodos de interfazgetQoSObject()
y getCurrentPlaybackTime()
.
Extensión de Launch
La implementación debe actualizar el cabezal de reproducción actual invocando el métodoupdateCurrentPlayhead
expuesto por el rastreador. Para realizar un seguimiento preciso,
debe invocar este método al menos una vez por segundo.
Referencia de API de medios: Actualizar el reproductor actual
La implementación debe actualizar la información de QoE invocando el método updateQoEObject
expuesto por el rastreador. Esperamos que se llame a este método
siempre que se produzca un cambio en las métricas de calidad.
Referencia de la API de medios: Actualizar objeto de QoE
Transmisión de metadatos estándar/metadatos publicitarios
SDK de medios independiente
-
Metadatos de medios estándar:
code language-java 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);
-
Metadatos de anuncio estándar:
code language-java 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);
Extensión de Launch
-
Metadatos de medios estándar:
code language-java 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);
-
Metadatos de anuncio estándar:
code language-java 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);