How to Collect Actor Information

In the previous post, I discussed the importance of Actor information in xAPI statements.  In this post I will describe how I have implemented this for the xAPI LearnPress Project.

Most companies have ways to set up SSO and security protocols for sites.  However, if you are creating a project on your own with little technical knowledge, this may be beyond your scope.  At this point in my project, it is beyond mine.  But there are tools to collect user information in WordPress.

Any Membership plug-in will probably work to collect this information.

Some plug-ins allowed the login gate to be set at the post rather than on your WordPress site. I decided to use WP-Members.  This offered 2 benefits.

  1. The dreaded pain of a login screen will not derail people from accessing my site, you will still be able to view my posts without having to remember ANOTHER password!
  2. It gives me ultimate control over which portions of the post get a login screen.
How I set it up:
  1. There is a nice quick set-up guide on the site for installation.
  2. Since I only wanted to use the login for my xAPI content, I changed the default post restriction, to not blocked.WP-membership1a
  3. When I create a post, I can choose to add the login with a simple check.WP-membership2
  4. Then I use wp-members login in tags to create the ‘blocked content’.  The user won’t see it until they login.WP-membership2b
  5. I chose to embed the H5P created content to be the only thing that was invisible until you login.WP-membership2a

If you would like to test the set-up, visit my initial H5P post; All Content Types are Not Created Equally



The Actors in xAPI

I have read many blog posts, heard a number of presentations and watched a number of YouTubes about how the code of xAPI works.

At it’s heart, it is simple.  An Actor, A Verb and An Object.
Bob Completed Drag and Drop Activity.

In practice, it is a little more complicated.

If you are doing the coding, there can be all sorts of extras that can be added to this simple statement.  This is a great thing, it will allow you to add all sorts of information that could be important to the learning activity.  Things like location (added to the Object), different types of security protocols for Actors, and Verbs translated into multiple languages or nuanced for different interactions.  To read more in highly technical speak that I’m still wading through read the ADL xAPI Spec

If you aren’t doing the coding things can still be tricky.  In my last post, I had H5P do the heavy lifting of coding the basic structure of the xAPI statement.  The Verb is coded into the content type as is the Object.  I didn’t need to make any changes.  But the Actor.  That was tricky.  The actor is coded into the statement, but it is a variable, and when an unknown user launches the activity, an error message appears and though data is sent, it is not connected to an actual user.

Anonymous users 729 and 490

anon 729 anon user 490

Actor names will be important.  If you are a provider of content or a learning professional, you want to track who is using your content and if they are making learning gains.  If you are working on your own professional development, you will want to track your personal learning back to a central e-mail or account.

For the xAPI LearnPress project, I have added a Membership Services Plug-in to create user accounts that will allow logging of individual Actors on posts that include content that send xAPI statements.  To see the result, revisit the Content types post.

I will add a how to in the next post…

All Content Types are not created equally

In my last post I created my first H5P content.  It was intended to send xAPI statements to the SCORM Cloud.  Alas, it did not…

So I went into trouble shooting mode.

  1. Was it the Settings on the LRS feed?   Cold
  2. Was it the Authentication settings for the Activity Provider in the LRS?  Cold
  3. Was it the fact I don’t have a sign-on for my WordPress?  Cold
  4. Was it a setting in H5P that I needed to set up?  Warmer
  5. Was it the type of activity I created?   Red Hot

In fact, some of the Content Types can send xAPI statements and some still sadly can’t.  For more check out this new H5P course presentation

xAPI requires an Actor to send statements.  This is YOU!  Please login…


The statements that have been collected from this activity in the LRS are more complex than SCORM allows.  And it also tracks time and interactions with the content.


H5P Content Plug-in


H5P Content Creation Plug-in (this link has a great tutorial on how to install the Plug-in).  The H5P Plug-in was created for the Norwegian education organization NDLA (National Digital Learning Arena) and allows you to create MANY different types of learning activities (see below for a few or visit their site).  You can upload them to an LMS (like Moodle or Canvas) or you can install the plug-in below to send your statements to an LRS.

content types h5p

To collect information on how learners are interacting with your activities, you also need to install the wp-h5p-xapi plug-in.  This will let you set up your WordPress to send xAPI statements that your learners generate by interacting with your activities.

Both of these options are open source and free.



xAPI + WordPress = xAPI LearnPress Project

There are many ways to start the xAPI ball rolling.  My first test case was with a group called the xAPI learning cohort.  We were/are (until May 12, 2016) testing multiple ways and locations to start creating different types of learning experiences and send the data to an LRS (Learning Record Store) to record the experiences of the learners.

Today I started my own project.  WordPress+H5P content plug-in+H5P xAPI plug-in+LRS=  xAPI LearnPress Project.

Join me for the project journey.