Migration du SDK Media autonome vers Adobe Launch : iOS

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.

ADBMediaHeartbeatConfig *config =
  [[ADBMediaHeartbeatConfig alloc] init];

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 = YES;
config.debugLogging = YES;

ADBMediaHeartbeat* tracker =
  [[ADBMediaHeartbeat alloc] initWithDelegate:self config: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.

Configuration de l’extension Media Analytics

Création du dispositif de suivi

SDK Media autonome

Dans le SDK Media autonome, vous créez manuellement l’objet ADBMediaHeartbeatConfig
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 :

@interface PlayerDelegate : NSObject<ADBMediaHeartbeatDelegate>
@end

@implementation PlayerDelegate {
}

- (NSTimeInterval) getCurrentPlaybackTime {
    // When called should return the current player time in seconds.
    return playhead_;
}

- (nonnull ADBMediaObject*) getQoSObject {
    // When called should return the latest qos values.
    return qosObject_;
}
@end

ADBMediaHeartbeatConfig *config = [[ADBMediaHeartbeatConfig alloc] init];

config.trackingServer = @"namespace.hb.omtrdc.net";
config.channel = @"sample-channel";
config.appVersion = @"app-version";
config.ovp = @"video-provider";
config.playerName = @"native-player";
config.ssl = YES;
config.debugLogging = YES;
ADBMediaHeartbeatDelegate* delegate = [[PlayerDelegate alloc] init];

ADBMediaHeartbeat* tracker =
  [[ADBMediaHeartbeat alloc] initWithDelegate:delegate config: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, enregistrez l’extension média et les extensions dépendantes avec le noyau mobile.

// Register the extension once during app launch
#import <ACPCore.h>
#import <ACPAnalytics.h>
#import <ACPMedia.h>
#import <ACPIdentity.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [ACPCore setLogLevel:ACPMobileLogLevelDebug];
    [ACPCore configureWithAppId:@"your-launch-app-id"];
    [ACPMedia registerExtension];
    [ACPAnalytics registerExtension];
    [ACPIdentity registerExtension];
    [ACPCore start:nil];
    return YES;
}

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

[ACPMedia createTracker:^(ACPMediaTracker * _Nullable mediaTracker) {
    // 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, un objet délégué qui implémente le protocole
ADBMediaHeartbeartDelegate est transmis 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 curseur de lecture 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. Vous devez appeler cette méthode
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-objective-c
    ADBMediaObject *mediaObject =
      [ADBMediaHeartbeat createMediaObjectWithName:@"media-name"
                         mediaId:@"media-id"
                         length:60
                         streamType:ADBMediaHeartbeatStreamTypeVod
                         mediaType:ADBMediaTypeVideo];
    
    // Standard metadata keys provided by adobe.
    NSMutableDictionary *standardMetadata = [[NSMutableDictionary alloc] init];
    [standardMetadata setObject:@"Sample show" forKey:ADBVideoMetadataKeySHOW];
    [standardMetadata setObject:@"Sample season" forKey:ADBVideoMetadataKeySEASON];
    [mediaObject setValue:standardMetadata forKey:ADBMediaObjectKeyStandardMediaMetadata];
    
    //Attaching custom metadata
    NSMutableDictionary *videoMetadata = [[NSMutableDictionary alloc] init];
    [mediaMetadata setObject:@"false" forKey:@"isUserLoggedIn"];
    [mediaMetadata setObject:@"Sample TV station" forKey:@"tvStation"];
    
    [tracker trackSessionStart:mediaObject data:mediaMetadata];
    
  • Métadonnées de publicité standard :

    code language-objective-c
    ADBMediaObject* adObject =
      [ADBMediaHeartbeat createAdObjectWithName:[adData objectForKey:@"name"]
                         adId:[adData objectForKey:@"id"]
                         position:[[adData objectForKey:@"position"] doubleValue]
                         length:[[adData objectForKey:@"length"] doubleValue]];
    
    // Standard metadata keys provided by adobe.
    NSMutableDictionary *standardMetadata =
      [[NSMutableDictionary alloc] init];
    [standardMetadata setObject:@"Sample Advertiser"
                      forKey:ADBAdMetadataKeyADVERTISER];
    [standardMetadata setObject:@"Sample Campaign"
                      forKey:ADBAdMetadataKeyCAMPAIGN_ID];
    [adObject setValue:standardMetadata
                      forKey:ADBMediaObjectKeyStandardAdMetadata];
    
    //Attaching custom metadata
    NSMutableDictionary *adDictionary = [[NSMutableDictionary alloc] init];
    [adDictionary setObject:@"Sample affiliate" forKey:@"affiliate"];
    
    [tracker trackEvent:ADBMediaHeartbeatEventAdStart
             mediaObject:adObject
             data:adDictionary];
    

Extension de Launch

  • Métadonnées médias standard :

    code language-objective-c
    NSDictionary *mediaObject =
      [ACPMedia createMediaObjectWithName:@"media-name"
                mediaId:@"media-id"
                length:60
                streamType:ACPMediaStreamTypeVod
                mediaType:ACPMediaTypeVideo];
    
    NSMutableDictionary *mediaMetadata =
      [[NSMutableDictionary alloc] init];
    
    // Standard metadata keys provided by adobe.
    [mediaMetadata setObject:@"Sample show" forKey:ACPVideoMetadataKeyShow];
    [mediaMetadata setObject:@"Sample season" forKey:ACPVideoMetadataKeySeason];
    
    // Custom metadata keys
    [mediaMetadata setObject:@"false" forKey:@"isUserLoggedIn"];
    [mediaMetadata setObject:@"Sample TV station" forKey:@"tvStation"];
    [_tracker trackSessionStart:mediaObject data:mediaMetadata];
    
  • Métadonnées de publicité standard :

    code language-objective-c
    NSDictionary* adObject =
      [ACPMedia createAdObjectWithName:@"ad-name"
                adId:@"ad-id"
                position:1
                length:15];
    
    NSMutableDictionary* adMetadata =
      [[NSMutableDictionary alloc] init];
    
    // Standard metadata keys provided by adobe.
    [adMetadata setObject:@"Sample Advertiser" forKey:ACPAdMetadataKeyAdvertiser];
    [adMetadata setObject:@"Sample Campaign" forKey:ACPAdMetadataKeyCampaignId];
    
    // Custom metadata keys
    [adMetadata setObject:@"Sample affiliate" forKey:@"affiliate"];
    
    [tracker trackEvent:ACPMediaEventAdStart mediaObject:adObject data:adMetadata];
    
recommendation-more-help
c8eee520-cef5-4f8c-a38a-d4952cfae4eb