Migration du SDK Media autonome vers Adobe Launch : Android

NOTE
Adobe Experience Platform Launch est désormais une suite de technologies destinées à la collecte de données dans Experience Platform. Plusieurs modifications terminologiques ont par conséquent été apportées à la documentation du produit. Reportez-vous au document suivant pour consulter une référence consolidée des modifications terminologiques.

Configuration

SDK Media autonome

Dans le SDK Media autonome, vous configurez le suivi dans l’application avant de le transmettre
au SDK lorsque vous créez le dispositif de suivi.

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);

Extension de Launch

  1. Dans Experience Platform Launch, cliquez sur l’onglet Extensions pour votre
    propriété mobile.
  2. Dans l’onglet Catalogue, recherchez l’extension Adobe Media Analytics for Audio
    and Video, puis cliquez sur Installer.
  3. Dans la page des paramètres d’extension, configurez les paramètres de suivi.
    L’extension Media utilisera les paramètres configurés pour le suivi.

Utilisation des extensions mobiles

Création du dispositif de suivi

SDK Media autonome

Dans le SDK Media autonome, vous créez manuellement l’objet MediaHeartbeatConfig
et vous configurez les paramètres de suivi. Implémentez l’interface déléguée exposant
getQoSObject() et getCurrentPlaybackTime()functions.
Créez une instance MediaHeartbeat pour le suivi.

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);
}

Extension de Launch

Référence de l’API Media : création d’un outil de suivi des médias

Avant de créer le dispositif de suivi, vous devez enregistrer l’extension média et
les extensions dépendantes avec le noyau mobile.

// 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) {
    ...
}

Une fois que vous avez enregistré l’extension média, créez le dispositif de suivi à l’aide de l’API suivante.
Le dispositif sélectionne automatiquement la configuration à partir de la propriété configurée dans Launch.

Media.createTracker(new AdobeCallback<MediaTracker>() {
    @Override
    public void call(MediaTracker tracker) {
        // Use the instance for tracking media.
    }
});

Mise à jour des valeurs Playhead (curseur de lecture) et Quality of Experience (qualité de l’expérience).

SDK Media autonome

Dans le SDK Media autonome, vous transmettez un objet délégué qui implémente
l’interface MediaHeartbeartDelegate lors de la création du dispositif de suivi. L’implémentation
doit renvoyer la dernière qualité de l’expérience et le dernier curseur de lecture chaque fois que le dispositif appelle les
méthodes d’interface getQoSObject() et getCurrentPlaybackTime().

Extension de Launch

L’implémentation doit mettre à jour le curseur de lecture actuel du lecteur en appelant la
méthode updateCurrentPlayhead exposée par le dispositif de suivi. Pour un suivi précis,
vous devez appeler cette méthode au moins une fois par seconde.

Référence de l’API Media : mise à jour du lecteur actuel

L’implémentation doit mettre à jour les informations relatives à la qualité de l’expérience en appelant la
méthode updateQoEObject exposée par le dispositif de suivi. Cette méthode est censée être appelée chaque à fois qu’il y a un changement dans les mesures de qualité.

Référence de l’API Media : mise à jour de l’objet QoE (qualité de l’expérience)

Transmission de métadonnées publicitaires / médias standard

SDK Media autonome

  • Métadonnées médias standard :

    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);
    
  • Métadonnées de publicité standard :

    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);
    

Extension de Launch

  • Métadonnées médias standard :

    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);
    
  • Métadonnées de publicité standard :

    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);
    
recommendation-more-help
c8eee520-cef5-4f8c-a38a-d4952cfae4eb