H5P.com provides an LRS integration feature that allows immediate transmission of user activity data within the organization's H5P content. This integration utilizes xAPI statements, but it's crucial to understand certain aspects before enabling it.
H5P.com doesn't store xAPI statements, it's only forwarded to the LRS. Only statements generated after enabling the LRS integration can be captured. And if the LRS for some reason fails to capture some statements H5P.com will not try to generate them again, meaning the statements will be lost.
With this feature enabled, H5P.com will send xAPI statements continuously to the LRS with a maximum delay of 30 seconds per statement.
It's also noteworthy that when content is shared using embed code or public URLs, without utilizing the LTI Standard, the LRS won't transmit any user ID since users are not logged into h5p.com, resulting in their status being considered "anonymous".
Some examples of xAPI statements that H5P sends to the LRS provider are the following: answered, completed, interacted, progressed, and attempted.
Warnings
Since the LRS integration can involve sending sensitive student data to an endpoint, this feature is disabled by default, and one of the organization's administrators must request activation directly to H5P.com.
Customers must understand that H5P.com might send information about absolutely everything the student does to the LRS including scores, mouse clicks, textual answers, and more. Additionally, depending on the LRS's settings, H5P.com will send information identifying each student in every statement, such information can either be the student's email address or a unique ID identifying the student.
Since the details of the xAPI statements sent from H5P.com are outside of our control, H5P Group does not take or accept any responsibility for what happens to data provided by H5P.com to the endpoint. It is also the customer's responsibility to make their users aware that the customer is processing and storing information about their actions and why.
Configuration
To activate the LRS Integration in the organization, the customer must reach out to H5P.com and request the feature to be enabled, confirming their understanding of the risks described above. After the confirmation, we'll proceed and activate the LRS on the organization, then the customer may configure the LRS integration following these steps:
- Log in to H5P.com as an admin
- Go to "Manage organization" -> "Settings" and if H5P has enabled the LRS feature you should see a section named "External LRS"
- Fill in the LRS endpoint, LRS key/username, and LRS secret/password. This is provided to you by your LRS
- Decide your "LRS anonymity" by choosing one of these options: Send email, Send LTI user ID, or Anonymous. And save the changes
Here's what these settings look like:
Here are samples of how the xAPI Statements could look for each of the LRS anonymity settings:
Send email
The email and the user's name from the LMS will be sent to the LRS:
{ "id": "8540c79e-9e8d-4609-8d5e-c6c75663bee3", "actor": { "objectType": "Agent", "mbox": "mailto:student.email@h5p.com", "name": "Joan Roa" } }
Send LTI user ID
Both the email and the LTI user ID will be sent to the LRS:
{ "id": "0a4bc353-015e-4db9-aa1b-576fa10db5f1", "actor": { "objectType": "Agent", "mbox": "mailto:student.email@h5p.com", "name": "2331c801-e6cb-4e6f-99ab-69797eaa8c79" } }
Anonymous
No sensible information will be shared with the LMS, only the local storage ID, this will track the current active session:
{ "id": "ec850caa-5321-4674-8ff8-6246ef9eefbd", "actor": { "objectType": "Agent", "account": { "name": "9f242ce8-ddcd-4546-b417-7f629a0b3da0", "homePage": "https://joanroa.h5p.com" } } }
Alternative methods for employing the LRS include utilizing public embedding or sharing the H5P URL. This can be used to track the overall usage of an H5P, and to some extent, observe a specific user's interactions with the H5P, unless they employ incognito mode, clear their cache, or utilize multiple devices. In such cases, the only available identifier would be the local storage ID.
Here's what the reports from publicly shared content looks like:
{ "id": "69b21ad8-c48d-4c65-88a1-9898be9131f8", "actor": { "objectType": "Agent", "account": { "name": "a03a03fa-2fe4-4263-8f98-636c58d83a87", "homePage": "https://joanroa.h5p.com" } } }