Migrazione dall’SDK di Media autonomo ad Adobe Launch - iOS

Configurazione

SDK per contenuti multimediali indipendenti

Nell’SDK di Media autonomo, configuri la configurazione di tracciamento nell’app,
e passalo all'SDK quando crei il tracker.

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

Estensione Launch

  1. In Experience Platform Launch, fai clic sulla scheda Extensions per la proprietà mobile

  2. Nella scheda Catalog , individua l’estensione Adobe Medium Analytics for Audio and Video e fai clic su Install.

  3. Nella pagina delle impostazioni dell'estensione, configura i parametri di tracciamento.
    L’estensione Media utilizza i parametri configurati per il tracciamento.

Configurare l’estensione Media Analytics

Creazione del tracciamento

SDK per contenuti multimediali indipendenti

Nell’SDK di Media autonomo puoi creare manualmente l’oggetto ADBMediaHeartbeatConfig
e configura i parametri di tracciamento. Implementa l’interfaccia di delegato che espone il
getQoSObject() e getCurrentPlaybackTime()functions.

Crea un'istanza MediaHeartbeat per il tracciamento:

@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];

Estensione Launch

Riferimento API Media - Creare il tracciamento Media

Prima di creare il tracker, registra l'estensione multimediale e le estensioni dipendenti con il core 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;
}

Una volta registrata l'estensione media, il tracker può essere creato utilizzando la seguente API.
Il tracker seleziona automaticamente la configurazione dalla proprietà di avvio configurata.

[ACPMedia createTracker:^(ACPMediaTracker * _Nullable mediaTracker) {
    // Use the instance for tracking media.
}];

Aggiornamento della testina di riproduzione e dei valori di qualità dell’esperienza.

SDK per contenuti multimediali indipendenti

Nell’SDK di Media standalone, un oggetto delegato che implementa il
Il protocollo ADBMediaHeartbeartDelegate viene passato durante la creazione del tracker.
L'implementazione deve restituire l'ultimo QoE e playhead ogni volta che il
il tracker chiama l'interfaccia getQoSObject() e getCurrentPlaybackTime()
metodi.

Estensione Launch

L'implementazione deve aggiornare l'attuale playhead del lettore denominato
Metodo updateCurrentPlayhead esposto dal tracker. Tracciamento accurato
dovresti chiamare questo metodo almeno una volta al secondo.

Riferimento API Media - Aggiorna la sequenza di riproduzione corrente

L'implementazione deve aggiornare le informazioni QoE chiamando il
Metodo updateQoEObject esposto dal tracker. Dovresti chiamare questo metodo
ogni volta che si verifica una modifica nelle metriche di qualità.

Riferimento API Media - Aggiorna oggetto QoE

Trasmissione dei contenuti multimediali e dei metadati standard di annunci

SDK per contenuti multimediali indipendenti

  • Metadati contenuti multimediali standard:

    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];
    
  • Metadati annuncio standard:

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

Estensione Launch

  • Metadati contenuti multimediali standard:

    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];
    
  • Metadati annuncio standard:

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

In questa pagina