Migración del SDK de medios independiente a Adobe Launch: iOS

NOTE
Adobe Experience Platform Launch se ha convertido en un conjunto de tecnologías de recopilación de datos en Experience Platform. Como resultado, se han implementado varios cambios terminológicos en la documentación del producto. Consulte el siguiente documento para obtener una referencia consolidada de los cambios terminológicos.

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.

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

Extensión de Launch

  1. En Experience Platform Launch, haga clic en la pestaña Extensiones de su propiedad móvil

  2. En la pestaña Catálogo, busque la extensión Adobe Media Analytics para audio y vídeo y haga clic en Instalar.

  3. 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.

Configurar la extensión de Media Analytics

Creación de rastreadores

SDK de medios independiente

En el SDK de medios independiente, cree manualmente el objeto ADBMediaHeartbeatConfig
y configure los parámetros de seguimiento. Implementar la interfaz delegada que expone
los getQoSObject() y getCurrentPlaybackTime()functions.

Cree una instancia de MediaHeartbeat para el seguimiento:

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

Extensión de Launch

Referencia de API de medios: Crear un rastreador de medios

Antes de crear el rastreador, registre la extensión multimedia y las extensiones dependientes con el núcleo móvil.

// 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 vez registrada la extensión de medios, se puede crear el rastreador con la siguiente API.
El rastreador selecciona automáticamente la configuración de la propiedad configurada de Launch.

[ACPMedia createTracker:^(ACPMediaTracker * _Nullable mediaTracker) {
    // 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
el protocolo ADBMediaHeartbeartDelegate 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 interfaz
getQoSObject() y getCurrentPlaybackTime().

Extensión de Launch

La implementación debe actualizar el cabezal de reproducción actual mediante el método denominado
updateCurrentPlayhead expuesto por el rastreador. Para realizar un seguimiento preciso,
debe invocar este método al menos una vez por segundo.

Referencia de la API de medios: Actualizar el cabezal de reproducción actual

La implementación debe actualizar la información de QoE invocando el método
updateQoEObject expuesto por el rastreador. Debe invocar este método siempre que haya 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-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];
    
  • Metadatos de anuncio estándar:

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

Extensión de Launch

  • Metadatos de medios estándar:

    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];
    
  • Metadatos de anuncio estándar:

    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