Con il suo rebranding, Adobe Experience Platform Launch viene riproposto come una suite di tecnologie per la raccolta dati all’interno di Experience Platform. Di conseguenza, sono state introdotte diverse modifiche terminologiche nella documentazione del prodotto. Consulta questo documento come riferimento consolidato delle modifiche terminologiche.
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];
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
Nel Media SDK indipendente puoi creare manualmente l’oggetto ADBMediaHeartbeatConfig
e configurare
i parametri di tracciamento. Implementa l’interfaccia di delegato che espone
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];
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.
}];
Nell’SDK per contenuti multimediali indipendenti, un oggetto delegato che implementa il
ADBMediaHeartbeartDelegate
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()
.
L'implementazione deve aggiornare la testina di riproduzione corrente del lettore denominato
updateCurrentPlayhead
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 il
updateQoEObject
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
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];
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];