Show Menu
TOPICS×

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.

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

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

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