For years I have been teaching designers and developers how to create interactive eBooks. One of the questions I get most often is whether they can be tracked and how. This is often because organizations have standardized on running their eLearning solutions through a learning management system (LMS) and tracking usage through their platforms’ reporting tools.

With the increase in industry adoption of xAPI and cmi5, there are now many options for free or low-cost learning record store (LRS) platforms that have the ability to connect with the organization’s LMS. This infrastructure supports the collection of micro-level data on users’ interaction with content.

I was excited about the possibilities this afforded designers and developers, because we can now access data to help us paint the picture of how our learners use interactive eBooks. We can capture page views, link clicks, video launches, highlights, and quiz results, just to name a few.

Where should you start?

I highly recommend learning some xAPI basics first. The site is a good place to start with free, self-paced courses. Also, Torrance Learning periodically hosts a free, 12-week xAPI cohort where you can participate in the development of a project. There are also many articles now available on the subject, including this one by Andy Johnson, Jason Haag, and Steve Foreman, and this one by Anthony Altieri, both in Learning Solutions Magazine.

For a more specific example, I developed an interactive eBook that you can download free at You can use this file to view and replicate similar functionality.

Developing the interactive eBook with xAPI

First, you need the tools to build the interactive eBook. My favorite tools are the free, open-source tool Sigil and Apple’s free iBooks Author application. From there, incorporating xAPI statements is a fairly simple process of adding JavaScript to the eBook’s code and pointing those statements to the organization’s LRS. You need to be able to replicate some very basic HTML and JavaScript in your eBook files, as well as acquire and set up an LRS to collect the statements. There are many free and low-cost open-source LRS platforms available today. Additionally, some LMS vendors are making an LRS available as part of their product.

Step 1: Create the eBook in an EPUB format (in Sigil or another EPUB development tool).

Step 2: Open the EPUB in Sigil and use code view to add appropriate JavaScript where you want a specific action to trigger a statement.

Here is an example of the code used to show that a page has been viewed. You can copy and paste this, then edit as needed. 

var pageLaunchStatement = {
				actor: actor,
				verb: {
					id: "",
					display: {"en-US": "opened"}
				target: {
					id: "", 
					definition: {
						name: {"en-US": "Designing for Data Page"},
						description: {"en-US": "designing for data page"}

Figure 1 shows how the code looks in Sigil, and in Figure 2 you can see how the information appears in the LRS.

JavaScript showing how code documenting page view looks in Sigil

Figure 1: Code view in Sigil

JavaScript showing how code documenting page view looks in the LRS.

Figure 2: Statement details in LRS

Step 3: Add the JavaScript files for the xAPI wrapper and the common files to Sigil to define the LRS credentials.

In Figure 3, you’ll notice the JavaScript files used; tincan.js is a JavaScript file that defines the xAPI library of code. This file was developed by Rustici Software, but Advanced Distributed Learning (ADL) has a standardized version available on Github.

The common.js file is used to define the LRS credentials.

JavaScript files are added to the Misc folder in Sigil.

Figure 3: JavaScript files added to the Misc folder in Sigil 

Testing and deploying the eBook

Once you have created your interactive eBook and added your xAPI statements and JavaScript files, be sure to test it in various eReader applications. Verify that statements are being reported to your LRS. This should happen in real time.

Some well-known eReaders do block xAPI statements. These include the app version of Apple iBooks (the desktop version will report statements), Adobe Digital Editions, and Nook. However, there are several others that report without issue. These include Overdrive, Kobo, and iBooks (desktop). I recommend testing your eBook from a variety of eReaders, then making a recommendation to your users (providing a link to download the recommended app in case they don’t already have it).


I recommend creating reports from your LRS data to regularly evaluate user interactions with your eBook. Keep in mind that this is only one data point, and it should be used to provide context to other data you are collecting, such as performance data and/or user feedback.

Interactive eBooks are an exciting way to add value to your performance support and training documentation. Combine this approach with xAPI, and learn more about your audience so that you can continue to improve the quality of your products!

From the editor

Join Sarah Gilbert and other mobile eLearning design experts at DevLearn 2017 Conference & Expo, October 25 – 27 in Las Vegas, Nevada. Hundreds of sessions explore best practices for creating engaging mobile learning, designing outstanding learner experiences, and much more. Gilbert will present “xAPI Basics for Mobile Learning” on October 27.