Root

As an xAPI conformant LRS, Watershed can receive data from any xAPI conformant Activity Provider. Many Watershed cards are flexible and you can configure Watershed to display useful visualizations and metrics from almost any xAPI data set. To help you get the most out of your data, we’re working with a number of product vendors to ensure that the data they send is optimized to produce the best possible results in Watershed. We want to help you to configure Watershed cards in the best way possible to display that data. 

Root worked with us to implement xAPI tracking in a custom course. The tracking data features a high level of detail including overall completion and success, responses to questions, module views and durations, file downloads, and video interactions such as play and pause positions. This guide explains how to the course can be connected to Watershed and then report on the data. It has three sections:

Connecting the course to Watershed

To connect Root courses to Watershed, you first need your Watershed LRS Endpoint, Key and Secret. See How do I add an activity provider to Watershed? for details of where to find these in Watershed. Once you’ve got those, open up main.js in the js folder. Look for the config object at the top of the file and edit the xAPIEndPoint, xAPIUsername and xAPIPassword properties. The value of the xAPIEndPoint property should be the Watershed LRS Endpoint. The xAPIUsername is the Watershed LRS Key and the xAPIPassword is the Watershed LRS Secret.

You can also use the xApiId property to change the base activity id for the course. See Get the Activity Id Right. Further customization of generated xAPI statements can be achieved in collaboration with Root.

Creating measures for the course data

This section outlines the relevant measures that can be created to report on data from the course. All of these measures can be created in Watershed’s measure editor.

Generic measures

The following generic measures work well with almost any data set:

  • Interaction Count
  • Timeline
  • Activity Count
  • Person Count.

With the exception of Person Count, each of these measures is created in your account by default. Person Count is configured with the settings as shown below:

image11.png

Module measures

Modules measures explore how many times modules are viewed and how long they are viewed for. Some examples of module measures are shown in this section

Module View Count

image05.png

Module View Duration (Average)

image00.png

Module View Duration (Total)

image14.png

File measures

The Download Count measure does exactly what it says on the tin - it counts the number of times files are downloaded. It’s configured like this:

image08.png

Video measures

Video measures explore different interactions with videos. And because Root followed the video recipe, these measures (and the reports that use them) will work with xAPI data from other video learning record providers too (except Video Initialize Count, which uses an additional event not defined in the recipe).

Video Start Point

image22.png

Video End Point

image02.png

Video Initialize Count

image17.png

Video Pause Count

image04.png

Video Pause Position

image13.png

Video Play Count

image18.png

Video Watch Count

image21.png

Example cards and visualizations

The measures defined above can be deployed in a number of different reports. This section lists example of some of the possibilities.

Course Activity Detail

The course activity detail card includes a large number of tables and visualizations reporting on high level course statistics like completions, scores and durations right down to the question level and which options learners selected. It is configured simply be selecting the Activity report type and using the Activities filter to search for the name of the course.

Who viewed the most modules for the longest?

image03.png

This is a Leaderboard report, with a verb filter for the verb ‘viewed’ and an advanced configuration equals filter to filter only modules:

"equals": [
  {
    "fieldName": "object.definition.type",
    "values": {
      "ids": [
        "http://adlnet.gov/expapi/activities/module"
      ]
    }
  }
]

It uses the following measures:

  • Module View Count
  • Module View Duration (Average)
  • Module View Duration (Total)
  • Timeline

The report is organized by person.

Which modules are viewed the most?

This is a Heatmap report with a verb filter for the verb ‘viewed’. It uses an advanced configuration equals filter to filter only modules:

"equals": [
  {
    "fieldName": "object.definition.type",
    "values": {
      "ids": [
        "http://adlnet.gov/expapi/activities/module"
      ]
    }
  }
]

It uses the Module View Count and Module View Duration (Total) measures and is organized by activity.

Which files are most popular?

This is a Leaderboard report with a verb filter for the verb ‘downloaded’. It uses an advanced configuration equals filter to filter only files:

"equals": [
  {
    "fieldName": "object.definition.type",
    "values": {
      "ids": [
        "http://adlnet.gov/expapi/activities/file"
      ]
    }
  }
]

It uses the Download Count and Person Count measures and is organized by activity.

Who downloads the most?

image15.png

This is a Leaderboard report with a verb filter for the verb ‘downloaded’. It uses an advanced configuration equals filter to filter only files:

"equals": [
  {
    "fieldName": "object.definition.type",
    "values": {
      "ids": [
        "http://adlnet.gov/expapi/activities/file"
      ]
    }
  }
]

It uses the Download Count and Activity Count measures and is organized by person.

Which learners watch the most videos?

image07.png

This report is a Heatmap report, with an advanced configuration equals filter to filter only videos:

"equals": [
  {
    "fieldName": "object.definition.type",
    "values": {
      "ids": [
        "http://activitystrea.ms/schema/1.0/video"
      ]
    }
  }
]

It uses the following measures:

  • Video Initialize Count
  • Video Play Count
  • Video Watch Count
  • Video Pause Count

The report is organized by person.

Which videos are the most watched?

This is a Barchart report, with an advanced configuration equals filter to filter only videos:

"equals": [
  {
    "fieldName": "object.definition.type",
    "values": {
      "ids": [
        "http://activitystrea.ms/schema/1.0/video"
      ]
    }
  }
]

It uses the following measures:

  • Video Initialize Count
  • Video Play Count
  • Video Watch Count
  • Video Pause Count

The report is organized by activity.

Are people watching videos more now than they used to?

image19.png

This is a Linechart report, with an advanced configuration equals filter to filter only videos:

"equals": [
  {
    "fieldName": "object.definition.type",
    "values": {
      "ids": [
        "http://activitystrea.ms/schema/1.0/video"
      ]
    }
  }
]]

It uses the following measures:

  • Video Initialize Count
  • Video Play Count
  • Video Watch Count
  • Video Pause Count

The report is organized by day. Other durations such as week or month may be more useful as you have data covering a longer time period.

Which parts of the video were watched?

image12.png

This report shows which sections of the videos were seen each time it was watched and can be used to identify popular sections of the video as well as points where learners stop watching.

This report is a Range report, with a ‘watched’ verb filter and  an activity filter for the particular video being watched. It uses the Video Start Point and Video End Point measures

The report is organized by timestamp. This is an advanced configuration dimension using the following syntax:

"dimensions": [
  {
    "type": "STATEMENT_PROPERTY",
    "statementProperty": "timestamp"
  }
]

Where do people pause the video?

image09.png

This report shows the positions in a video where the learner pauses and can be used to identify common pause points.

This report is a Scatter report, with an activity filter for the particular video being watched. It uses the Video Pause Position and Interaction Count measures

The report is organized by interaction (i.e. each dot represents a pause). This is an advanced configuration dimension using the following syntax:

"dimensions": [
  {
    "type": "STATEMENT_PROPERTY",
    "statementProperty": "id"
  }
]]
Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request

If you can't find what you need or you want to ask a real person a question, please contact customer support.