スタンドアロンの Media SDK では、アプリケーションでトラッキング設定をおこない、トラッカーを作成する際に SDK に渡します。
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];
Experience Platform Launch で、モバイルプロパティの「拡張機能」タブをクリックします。
「カタログ」タブでオーディオおよびビデオ用 Adobe Media Analytics 拡張機能を探し、「インストール」をクリックします。
拡張機能の設定ページで、トラッキングパラメーターを設定します。メディア拡張機能では、設定済みのパラメーターをトラッキングに使用します。
スタンドアロンのメディア SDK では、ADBMediaHeartbeatConfig
オブジェクトを手動で作成し、トラッキングパラメーターを設定します。getQoSObject()
および getCurrentPlaybackTime()functions.
を公開する delegate インターフェイスを実装します
トラッキング用の MediaHeartbeat インスタンスの作成:
@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];
メディア API リファレンス - メディアトラッカーの作成
トラッカーを作成する前に、メディア拡張機能と依存する拡張機能をモバイルコアに登録します。
// 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;
}
メディア拡張機能が登録されると、次の API を使用してトラッカーを作成できます。
トラッカーは、設定済みの Launch プロパティから設定を自動的に取得します。
[ACPMedia createTracker:^(ACPMediaTracker * _Nullable mediaTracker) {
// Use the instance for tracking media.
}];
スタンドアロンの Media SDK では、トラッカーの作成中に ADBMediaHeartbeartDelegate
プロトコルを実装する delegate オブジェクトを渡します。トラッカーが getQoSObject()
および getCurrentPlaybackTime()
インターフェイスメソッドを呼び出すたびに、実装は最新の QoE と再生ヘッドを返す必要があります。
実装では、トラッカーによって公開された updateCurrentPlayhead
メソッドを呼び出すことにより、現在のプレーヤーの再生ヘッドを更新する必要があります。正確な追跡をおこなうには、このメソッドを少なくとも 1 秒に 1 回呼び出す必要があります。
実装では、トラッカーによって公開された updateQoEObject
メソッドを呼び出して QoE 情報を更新する必要があります。品質指標に変更がある場合は常に、このメソッドを呼び出す必要があります。
メディア API リファレンス - QoE オブジェクトの更新
標準メディアメタデータ:
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];
標準の広告メタデータ:
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];
標準メディアメタデータ:
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];
標準の広告メタデータ:
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];