Show Menu
TÓPICOS×

Migração do SDK do Media independente para o Adobe Launch - Android

Configuração

SDK do Media independente

No SDK do Media independente, é possível configurar o rastreamento no aplicativo e transmiti-lo para o SDK ao criar o 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);

Extensão do Launch

  1. No Experience Platform Launch, clique na guia Extensões para sua propriedade móvel.
  2. Na guia Catálogo, localize a extensão Adobe Media Analytics para áudio e vídeo e clique em Instalar.
  3. Na página de configurações da extensão, defina os parâmetros de rastreamento. A extensão do Media usa os parâmetros configurados para rastreamento.

Criação do rastreador

SDK do Media independente

No SDK do Media independente, crie manualmente o objeto MediaHeartbeatConfig e configure os parâmetros de rastreamento. Implemente a interface delegada expondo getQoSObject() e getCurrentPlaybackTime()functions. Crie uma instância MediaHeartbeat para rastreamento.
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);
}

Extensão do Launch

Antes de criar o rastreador, registre a extensão de mídia e as extensões dependentes no núcleo móvel.
// 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) {
    ...
}

Depois de registrar a extensão de mídia, crie o rastreador usando a seguinte API. O rastreador escolhe automaticamente a configuração da propriedade de inicialização configurada.
Media.createTracker(new AdobeCallback<MediaTracker>() {
    @Override
    public void call(MediaTracker tracker) {
        // Use the instance for tracking media.
    }
});

Atualização dos valores Indicador de reprodução e Qualidade da experiência.

SDK do Media independente

No SDK do Media independente, transmita um objeto delegado que implementa a interface MediaHeartbeartDelegate durante a criação do rastreador. A implementação deve retornar a QoE e o indicador de reprodução mais recentes sempre que o rastreador chamar os métodos de interface getQoSObject() e getCurrentPlaybackTime() .

Extensão do Launch

A implementação deve atualizar o indicador de reprodução atual, chamando o método updateCurrentPlayhead exposto pelo rastreador. Para um rastreamento preciso, você deve chamar esse método pelo menos uma vez por segundo.
A implementação deve atualizar as informações da QoE, chamando o método updateQoEObject exposto pelo rastreador. Esperamos que esse método seja chamado sempre que houver uma mudança nas métricas de qualidade.

Transmissão de metadados de mídia/anúncio padrão

SDK do Media independente

  • Metadados de mídia padrão:
    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);
    
    
  • Metadados de anúncio padrão:
    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);
    
    

Extensão do Launch

  • Metadados de mídia padrão:
    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);
    
    
  • Metadados de anúncio padrão:
    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);