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];
No Experience Platform Launch, clique na guia Extensões para sua propriedade móvel
Na guia Catálogo, localize a extensão Adobe Media Analytics para áudio e vídeo e clique em Instalar.
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
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];
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.
}];
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()
.
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
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];
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];