在 iOS 中跟踪广告 track-ads-on-ios
以下说明为使用 2.x SDK 的实施提供了指南。
IMPORTANT
如果您实施的是 1.x 版本的 SDK,可以在此处下载 1.x 开发人员指南:下载 SDK。
广告跟踪常量
常量名称
描述
ADBMediaHeartbeatEventAdBreakStart
用于跟踪 AdBreak 开始事件的常量
ADBMediaHeartbeatEventAdBreakComplete
用于跟踪 AdBreak 结束事件的常量
ADBMediaHeartbeatEventAdStart
用于跟踪广告开始事件的常量
ADBMediaHeartbeatEventAdComplete
用于跟踪广告结束事件的常量
ADBMediaHeartbeatEventAdSkip
用于跟踪广告跳过事件的常量
实施步骤
-
识别广告时间(包括前置广告)边界开始的时间,然后使用广告时间信息创建
AdBreakObject
。AdBreakObject
引用:table 0-row-3 1-row-3 2-row-3 3-row-3 3-align-center 7-align-center 11-align-center 15-align-center 变量名称 描述 必需 name
广告时间的名称,例如前置广告、中置广告或后置广告。 是 position
内容中广告时间的位置编号,从 1 开始编号。 是 startTime
广告时间开始的播放头值。 是 广告时间对象创建:
code language-none id adBreakObject = [ADBMediaHeartbeat createAdBreakObjectWithName:[ADBREAK_NAME] position:[POSITION] startTime:[START_TIME]];
-
在
MediaHeartbeat
实例中使用AdBreakStart
调用trackEvent()
,以开始跟踪广告时间:code language-none - (void)onAdBreakStart:(NSNotification *)notification { [_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdBreakStart mediaObject:adBreakObject data:nil]; }
-
识别广告的开始时间,然后使用广告信息创建
AdObject
实例。AdObject
引用:table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 3-align-center 7-align-center 11-align-center 15-align-center 19-align-center 变量名称 描述 必需 name
广告的友好名称. 是 adId
广告的唯一标识符。 是 position
广告时间中广告的位置编号,从 1 开始编号。 是 length
广告长度 是 广告对象创建:
code language-none id adObject = [ADBMediaHeartbeat createAdObjectWithName:[AD_NAME] adId:[AD_ID] position:[POSITION] length:[LENGTH]];
-
(可选)通过上下文数据变量将标准和/或广告元数据附加到媒体跟踪会话。
-
自定义广告元数据 – 对于自定义元数据,请为自定义数据变量创建变量对象,然后使用当前广告的数据进行填充:
code language-none NSMutableDictionary *adDictionary = [[NSMutableDictionary alloc] init]; [adDictionary setObject:@"Sample affiliate" forKey:@"affiliate"]; [adDictionary setObject:@"Sample campaign" forKey:@"campaign"]; [adDictionary setObject:@"Sample creative" forKey:@"creative"];
-
在
MediaHeartbeat
实例中使用AdStart
事件调用trackEvent()
,以开始跟踪广告播放。在事件调用中添加对自定义元数据变量(或空对象)的引用,以将其作为第三个参数:
code language-none - (void)onAdStart:(NSNotification *)notification { [_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdStart mediaObject:adObject data:adDictionary]; }
-
当广告播放到达广告结尾时,使用
AdComplete
事件调用trackEvent()
。code language-none - (void)onAdComplete:(NSNotification *)notification { [_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdComplete mediaObject:nil data:nil]; }
-
如果由于用户选择跳过广告而使广告播放未能完成,则跟踪
AdSkip
事件。code language-none - (void)onAdSkip:(NSNotification *)notification { [_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdSkip mediaObject:nil data:nil]; }
-
如果同一个
AdBreak
中存在任何其他广告,请重复执行步骤 3 至 7。 -
当广告时间结束时,使用
AdBreakComplete
事件进行跟踪:code language-none - (void)onAdBreakComplete:(NSNotification *)notification { [_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdBreakComplete mediaObject:nil data:nil]; }
有关更多信息,请参阅跟踪场景包含前置广告的 VOD 播放。
recommendation-more-help
c8eee520-cef5-4f8c-a38a-d4952cfae4eb