Migrazione dall’SDK per contenuti multimediali indipendenti ad Adobe Launch - iOS
Configurazione
SDK per contenuti multimediali indipendenti
Nell’SDK per contenuti multimediali indipendenti, configura la configurazione di tracciamento nell’app
e trasmettila all’SDK quando crei il tracciatore.
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
-
In Experience Platform Launch, fai clic sulla scheda Extensions per la proprietà mobile
-
Nella scheda Catalog individua l’estensione Adobe Media Analytics for Audio and Video e fai clic su Install.
-
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
Nel Media SDK indipendente puoi creare manualmente l’oggetto ADBMediaHeartbeatConfig
e configurare
i parametri di tracciamento. Implementa l’interfaccia di delegato che esponegetQoSObject()
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 tracciatore, 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 tracciatore può essere creato utilizzando la seguente API.
Il tracciatore 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 per contenuti multimediali indipendenti, un oggetto delegato che implementa ilADBMediaHeartbeartDelegate
protocollo viene passato durante la creazione del tracciatore.
L’implementazione deve restituire il QoE e la testina di riproduzione più recente ogni volta che il
tracciatore chiama i metodi di interfaccia getQoSObject()
e getCurrentPlaybackTime()
.
Estensione Launch
L'implementazione deve aggiornare la testina di riproduzione corrente del lettore denominatoupdateCurrentPlayhead
metodo esposto dal tracciatore. Per un tracciamento accurato
devi chiamare questo metodo almeno una volta al secondo.
Riferimento API Media - Aggiornare la testina di riproduzione corrente
L’implementazione deve aggiornare le informazioni QoE chiamando ilupdateQoEObject
metodo esposto dal tracciatore. È necessario utilizzare questo metodo
ogni volta che si verifica una modifica nelle metriche di qualità.
Riferimento API Media - Aggiornare oggetto QoE
Trasmissione dei contenuti multimediali e dei metadati standard di annunci
SDK per contenuti multimediali indipendenti
-
Metadati contenuti multimediali 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];
-
Metadati annuncio 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];
Estensione Launch
-
Metadati contenuti multimediali 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];
-
Metadati annuncio 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];