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

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.

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

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.

Configurar a extensão do Media Analytics

Criação do rastreador

SDK do Media independente

No SDK do Media independente, crie manualmente o objeto ADBMediaHeartbeatConfig
e configure os parâmetros de rastreamento. Implemente a interface delegada que expõe o getQoSObject() e o getCurrentPlaybackTime()functions.

Crie uma instância de MediaHeartbeat para rastreamento:

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

Extensão do Launch

Referência da API do Media - Criar Media Tracker

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

Após registrar a extensão de mídia, o rastreador pode ser criado usando a seguinte API.
O rastreador escolhe automaticamente a configuração da propriedade de inicialização configurada.

[ACPMedia createTracker:^(ACPMediaTracker * _Nullable mediaTracker) {
    // 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, um objeto delegado que implementa o
protocolo ADBMediaHeartbeartDelegate é transmitido 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.

Referência da API do Media - Atualizar indicador de reprodução atual

A implementação deve atualizar as informações da QoE, chamando o
método updateQoEObject exposto pelo rastreador. Você deve chamar esse método
sempre que houver uma alteração nas métricas de qualidade.

Referência da API do Media - Atualizar objeto de QoE

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

SDK do Media independente

  • Metadados de mídia padrão:

    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];
    
  • Metadados de anúncio padrão:

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

Extensão do Launch

  • Metadados de mídia padrão:

    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];
    
  • Metadados de anúncio padrão:

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

Nesta página

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now