Caliper 1.1 sensor


Unizin Engage emits a near real-time event stream that conforms with the IMS Global Caliper 1.1 specification. Engage can be configured to send events to one or more endpoints capable of accepting Caliper events. At present, Unizin Engage is certified to emit Caliper 1.1 events. To configure Engage to send its events to a particular endpoint, please contact Unizin Services.

Supported events and behaviors

The IMS Global Caliper standard defines "metric profiles" of learning activities. Per the specification:

Each [metric profile] models a learning activity or a supporting activity that helps facilitate learning. A metric profile's raison d'etre is to encourage vocabulary standardization and re-use among application providers delivering complementary, albeit competing capabilities that collect learning activity data.

By supporting metric profiles, Engage supports the use of a fixed, semantically interoperable vocabulary of user behaviors that can be used by developers or researchers for analysis.

The events emitted by Engage conform with the Reading metric profile. In this profile, two events are supported.



Triggered when the user navigates to a page in a book.

Note: this event is triggered when a user enters a book and also when they navigate through pages within a book.


Triggered when the user spends at least 10 seconds on a page.

Event payloads

Unizin Engage's Caliper event payloads are marked by a few characteristics that may be useful to understand for processing purposes. The following is an example NavigatedTo event.

      "@context": "",
      "id": "urn:uuid:9a73685d-25b0-4f26-aef8-37e6e2dbc17c",
      "action": "NavigatedTo",
      "actor": {
        "id": "urn:unizin:engage:customer:prod:user:176",
        "type": "Person"
      "eventTime": "2018-10-03T18:21:08.897Z",
      "federatedSession": {
        "id": "urn:session-id-localized:None",
        "type": "LtiSession",
        "user": {
          "id": "urn:unizin:engage:customer:prod:user:176",
          "type": "Person"
      "group": {
        "academicSession": "BIO",
        "courseNumber": "101",
        "id": "urn:unizin:engage:customer:prod:term:11:course:63:section:79",
        "subOrganizationOf": {
          "courseNumber": "BIO 101",
          "id": "urn:unizin:engage:customer:prod:term:11:course:63",
          "type": "CourseOffering"
        "type": "CourseSection"
      "object": {
        "dateCreated": "2018-08-23T10:48:18.002Z",
        "id": "urn:unizin:engage:customer:prod:term:11:course:63:section:79:class_material:1470:page:19",
        "isPartOf": {
          "id": "urn:unizin:engage:customer:prod:term:11:course:63:section:79:class_material:1470",
          "name": "Introduction to Biology",
          "type": "Document"
        "name": "Page 19",
        "type": "Page"
      "type": "NavigationEvent"

In the above Caliper event, a few basic patterns are followed:

  • Identifiers are particular to an Engage customer. Engage's event payloads frequently refer to identifiers. Unless explicitly marked otherwise, these identifiers are particular to Unizin Engage. For example, an value of urn:unizin:engage:customer:prod:user:176 refers to an individual for "customer" with an Engage ID of 176.

  • A hierarchical pattern is used for Engage URN values. For example, "course:1:section:2" describes that Section of ID 2 is part of Course of ID 1.

Caliper sensor behavior

Unizin Engage sends all events exactly once to its configured endpoints. In most cases, Engage sends exactly one event per event envelope and events are sent as fast as possible to the endpoint. Duplicate events sent to a single endpoint are possible but unlikely.

Unizin Engage does not resend events based on the response it receives from the endpoints to which it posts events (even if those endpoints return error codes). If the endpoint to which Engage posts events returns an error, Engage does not try to send the event again.

Unizin Engage emits events as close to real-time as possible (i.e., in under one second). The only time that events are deliberately not sent in real-time is if the user is offline during the behavior. In such cases, Unizin Engage holds the event and sends it when the user returns online.

Last updated


Copyright © 2023, Unizin, Ltd.