A Adobe Experience Platform Launch está sendo reformulada como um conjunto de tecnologias de coleção de dados na Experience Platform. Como resultado, várias alterações de terminologia foram implementadas na documentação do produto. Consulte o seguinte documento para obter uma referência consolidada das alterações de terminologia.
No SDK de mídia independente, você pode 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 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];