The following instructions provide guidance for implementation using 2.x SDKs.
If you are implementing a 1.x version of the SDK, you can download the Developers Guide here: Download SDKs.
Identify when the chapter start event occurs and create the ChapterObject
instance by using the chapter information.
ChapterObject
chapter tracking reference:
These variables are only required if you are planning to track chapters.
Variable Name | Description | Required |
---|---|---|
name |
Chapter name | Yes |
position |
Chapter position | Yes |
length |
Chapter length | Yes |
startTime |
Chapter start time | Yes |
Chapter object:
id chapterObject =
[ADBMediaHeartbeat createChapterObjectWithName:[CHAPTER_NAME]
position:[POSITION]
length:[LENGTH]
startTime:[START_TIME]];
If you include custom metadata for the chapter, create the context data variables for the metadata:
NSMutableDictionary *chapterDictionary = [[NSMutableDictionary alloc] init];
[chapterDictionary setObject:@"Sample segment type" forKey:@"segmentType"];
[chapterDictionary setObject:@"Sample segment name" forKey:@"segmentName"];
[chapterDictionary setObject:@"Sample segment info" forKey:@"segmentInfo"];
To begin tracking the chapter playback, call the ChapterStart
event in the MediaHeartbeat
instance:
- (void)onChapterStart:(NSNotification *)notification {
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventChapterStart
mediaObject:chapterObject
data:chapterDictionary];
}
When playback reaches the chapter end boundary, as defined by your custom code, call the ChapterComplete
event in the MediaHeartbeat
instance:
- (void)onChapterComplete:(NSNotification *)notification {
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventChapterComplete
mediaObject:nil
data:nil];
}
If chapter playback did not complete because the user chose to skip the chapter (for example, if the user seeks out of the chapter boundary), call the ChapterSkip
event in the MediaHeartbeat instance:
- (void)onChapterSkip:(NSNotification *)notification {
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventChapterSkip
mediaObject:nil
data:nil];
}
If there are any additional chapters, repeat steps 1 through 5.