Show Menu
TOPICS×

Track chapters and segments on Android

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.

Implement chapter tracking

  1. 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:
    MediaObject chapterDataInfo = MediaHeartbeat.createChapterObject(<CHAPTER_NAME>, <POSITION>, <LENGTH>, <START_TIME>);
  2. If you include custom metadata for the chapter, create the context data variables for the metadata:
    HashMap<String, String> chapterMetadata = new HashMap<String,String>(); chapterMetadata.put("segmentType", "Sample Segment Type"); chapterMetadata.put("segmentName", "Sample Segment Name"); chapterMetadata.put("segmentInfo", "Sample Segment Info");
  3. To begin tracking the chapter playback, call the
    ChapterStart
    event in the
    MediaHeartbeat
    instance:
    public void onChapterStart(Observable observable, Object data) { _heartbeat.trackEvent(MediaHeartbeat.Event.ChapterStart, chapterDataInfo, chapterMetadata); }
  4. When playback reaches the chapter end boundary, as defined by your custom code, call the
    ChapterComplete
    event in the
    MediaHeartbeat
    instance:
    public void onChapterComplete(Observable observable, Object data) { _heartbeat.trackEvent(MediaHeartbeat.Event.ChapterComplete, null, null); }
  5. 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:
    public void onChapterSkip(Observable observable, Object data) { _heartbeat.trackEvent(MediaHeartbeat.Event.ChapterSkip, null, null); }
  6. If there are any additional chapters, repeat steps 1 through 5.