12. Events in the Tracking Logs

This section provides reference information about the event data that is delivered in data packages. Events are emitted by the server, the browser, or the mobile device to capture information about interactions with the courseware and the Instructor Dashboard in the LMS, and are stored in JSON documents. In the data package, event data is delivered in a log file.

The student and course team events are grouped into categories in this section. For a complete, alphabetical list of events, see the Alphabetical Event List.

12.1. Reviewing a Sample Event

A sample event from an edX.log file follows. This sample was edited to remove personally identifiable information. Events are stored in JSON documents, which can be difficult to read before standard formatting is applied.

{"agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/30.0.1599.101 Safari/537.36", "context": {"course_id": "edx/AN101/2014_T1",
"module": {"display_name": "Multiple Choice Questions"}, "org_id": "edx", "user_id":
9999999}, "event": {"answers": {"i4x-edx-AN101-problem-a0effb954cca4759994f1ac9e9434bf4_2_1":
"yellow", "i4x-edx-AN101-problem-a0effb954cca4759994f1ac9e9434bf4_4_1": ["choice_0", "choice_2"]},
"attempts": 1, "correct_map": {"i4x-edx-AN101-problem-a0effb954cca4759994f1ac9e9434bf4_2_1":
{"correctness": "incorrect", "hint": "", "hintmode": null, "msg": "", "npoints": null,
"queuestate": null}, "i4x-edx-AN101-problem-a0effb954cca4759994f1ac9e9434bf4_4_1":
{"correctness": "correct", "hint": "", "hintmode": null, "msg": "", "npoints": null,
"queuestate": null}}, "grade": 2, "max_grade": 3, "problem_id": "i4x://edx/AN101/problem/
a0effb954cca4759994f1ac9e9434bf4", "state": {"correct_map": {}, "done": null, "input_state":
{"i4x-edx-AN101-problem-a0effb954cca4759994f1ac9e9434bf4_2_1": {}, "i4x-edx-AN101-problem-
a0effb954cca4759994f1ac9e9434bf4_4_1": {}}, "seed": 1, "student_answers": {}}, "submission":
{"i4x-edx-AN101-problem-a0effb954cca4759994f1ac9e9434bf4_2_1": {"answer": "yellow", "correct":
false, "input_type": "optioninput", "question": "What color is the open ocean on a sunny day?",
"response_type": "optionresponse", "variant": ""}, "i4x-edx-AN101-problem-
a0effb954cca4759994f1ac9e9434bf4_4_1": {"answer": ["a piano", "a guitar"], "correct": true,
"input_type": "checkboxgroup", "question": "Which of the following are musical instruments?",
"response_type": "choiceresponse", "variant": ""}}, "success": "incorrect"}, "event_source":
"server", "event_type": "problem_check", "host": "precise64", "referer": "http:\/\/localhost:8001\/
container\/i4x:\/\/edX\/DemoX\/vertical\/69dedd38233a46fc89e4d7b5e8da1bf4?action=new",
"accept_language": "en-US,en;q=0.8","ip": "NN.N.N.N", "page": "x_module",
"time": 2014-03-03T16:19:05.584523+00:00", "username": "AAAAAAAAAA"}

If you use a JSON formatter to “pretty print” this event, a version that is more readable is produced.

{
   "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36",
   "context": {
       "course_id": "edx/AN101/2014_T1",
       "module": {
           "display_name": "Multiple Choice Questions"
       },
       "org_id": "edx",
       "user_id": 9999999
   },
   "event": {
       "answers": {
           "i4x-edx-AN101-problem-a0effb954cca4759994f1ac9e9434bf4_2_1": "yellow",
           "i4x-edx-AN101-problem-a0effb954cca4759994f1ac9e9434bf4_4_1": [
               "choice_0",
               "choice_2"
           ]
       },
       "attempts": 1,
       "correct_map": {
           "i4x-edx-AN101-problem-a0effb954cca4759994f1ac9e9434bf4_2_1": {
               "correctness": "incorrect",
               "hint": "",
               "hintmode": null,
               "msg": "",
               "npoints": null,
               "queuestate": null
           },
           "i4x-edx-AN101-problem-a0effb954cca4759994f1ac9e9434bf4_4_1": {
               "correctness": "correct",
               "hint": "",
               "hintmode": null,
               "msg": "",
               "npoints": null,
               "queuestate": null
           }
       },
       "grade": 2,
       "max_grade": 3,
       "problem_id": "i4x://edx/AN101/problem/a0effb954cca4759994f1ac9e9434bf4",
       "state": {
           "correct_map": {},
           "done": null,
           "input_state": {
               "i4x-edx-AN101-problem-a0effb954cca4759994f1ac9e9434bf4_2_1": {},
               "i4x-edx-AN101-problem-a0effb954cca4759994f1ac9e9434bf4_4_1": {}
           },
           "seed": 1,
           "student_answers": {}
       },
       "submission": {
           "i4x-edx-AN101-problem-a0effb954cca4759994f1ac9e9434bf4_2_1": {
               "answer": "yellow",
               "correct": false,
               "input_type": "optioninput",
               "question": "What color is the open ocean on a sunny day?",
               "response_type": "optionresponse",
               "variant": ""
           },
           "i4x-edx-AN101-problem-a0effb954cca4759994f1ac9e9434bf4_4_1": {
               "answer": [
                   "a piano",
                   "a guitar"
               ],
               "correct": true,
               "input_type": "checkboxgroup",
               "question": "Which of the following are musical instruments?",
               "response_type": "choiceresponse",
               "variant": ""
           }
       },
       "success": "incorrect"
   },
   "event_source": "server",
   "event_type": "problem_check",
   "host": "precise64",
   "referer": "http:\/\/localhost:8001\/container\/i4x:\/\/edX\/DemoX\/vertical\/69dedd38233a46fc89e4d7b5e8da1bf4?action=new",
   "accept_language": "en-US,en;q=0.8",
   "ip": "NN.N.N.N",
   "page": "x_module",
   "time": "2014-03-03T16:19:05.584523+00:00",
   "username": "AAAAAAAAAA"
}

For more information about fields that are included in every event, see Common Fields. For more information about this problem_check event and other types of events, see Student Events or Course Team Events.

12.2. Common Fields

This section describes the JSON fields that are common to the schema definitions of all events. These fields are at the root level of the event JSON documents.

This section presents the common fields in alphabetical order. Actual events in your data package can include these fields in different sequences.

12.2.1. accept_language Field

Type: string

Details: The value from the HTTP Accept-Language request-header field. For more information, see the HTTP/1.1 header field definition for Accept-Language.

History: Added 23 Feb 2015.

12.2.2. agent Field

Type: string

Details: Browser agent string of the user who triggered the event.

12.2.3. context Field

Type: object

Details:

The context field includes member fields that provide contextual information.

  • This field contains a core set of member fields that are common to all events.
  • For certain events with additional contextual requirements, this field contains a set of additional member fields that are common to those events only.
  • For any event, this field can also include one or more additional member fields. For more information about the context member fields for an event, see the description of that event later in this section.

12.2.3.1. context Member Fields Common to All Events

The following member fields are present in the context field for all events.

context Member Field Type Details
course_id string Identifies the course that generated the event.
org_id string The organization that lists the course.
path string The URL that generated the event.
user_id number Identifies the individual who is performing the action.

Note

Occasionally, an event is recorded with a missing or blank context.user_id value. This can occur when a user logs out, or the login session times out, while a browser window remains open. Subsequent actions are logged, but the system cannot supply the user identifier. EdX recommends that you ignore these events during analysis.

12.2.3.2. context Member Fields for Applicable Events

When applicable for an event, the context field also includes these member fields to provide additional information.

context Member Field Type Details
course_user_tags object Contains the key(s) and value(s) from the user_api_usercoursetag table for the user. See Columns in the user_api_usercoursetag Table.
module object

Provides identifying information for the components involved in a server event.

For example, in a server problem_check event, the module field indicates the problem component that the server checked successfully. The member fields are display_name and usage_key.

For modules that are used in a course to present content from a library, module also includes the original_usage_key and original_usage_version fields. These member fields provide a consistent way to identify components that are sourced from a library, and can be used to identify the source library.

The context member fields are blank if values cannot be determined.

History: usage_key added 28 Jan 2015. path added 07 May 2014. course_user_tags added 12 Mar 2014. user_id added 6 Nov 2013. Other event fields may duplicate this data. Added 23 Oct 2013.

12.2.4. event Field

Type: object

Details: This field includes member fields that identify specifics of each triggered event. Different member fields are supplied for different events. For more information about the event member fields for an event, see the description of that event later in this section.

12.2.5. event_source Field

Type: string

Details: Specifies the source of the interaction that triggered the event. The values in this field are:

  • ‘browser’
  • ‘mobile’
  • ‘server’
  • ‘task’

History: Updated 16 Oct 2014 to identify events emitted from mobile devices.

12.2.6. event_type Field

Type: string

Details: The type of event triggered. Values depend on event_source.

Student Events and Course Team Events later in this section provide descriptions of each type of event that is included in data packages. To locate information about a specific event type, see the Alphabetical Event List.

12.2.7. host Field

Type: string

Details: The site visited by the user, for example, courses.edx.org.

12.2.8. ip Field

Type: string

Details: IP address of the user who triggered the event. Empty for events that originate on mobile devices.

12.2.9. name Field

Type: string

Details: Identifies the type of event triggered.

History: Server and mobile events added beginning on 07 May 2014 include a name field. When this field is present for an event, it supersedes the event_type field.

12.2.10. page Field

Type: string

Details: The ‘$URL’ of the page the user was visiting when the event was emitted.

For video events that originate on mobile devices, identifies the URL for the video component.

12.2.11. referer Field

Type: string

Details: The URI from the HTTP Referer request-header field. For more information, see the HTTP/1.1 header field definition for Referer.

History: Added 23 Feb 2015.

12.2.12. session Field

Type: string

Details: This 32-character value is a key that identifies the user’s session. All browser events and the server enrollment events include a value for the session. Other server events and mobile events do not include a session value.

12.2.13. time Field

Type: string

Details: Gives the UTC time at which the event was emitted in ‘YYYY-MM-DDThh:mm:ss.xxxxxx’ format.

12.2.14. username Field

Type: string

Details: The username of the user who caused the event to be emitted.

Note

Occasionally, an event is recorded with a blank username value. This can occur when a user logs out, or the login session times out, while a browser window remains open. Subsequent actions are logged, but the system cannot supply the user identifier. EdX recommends that you ignore these events during analysis.

12.3. Student Events

This section lists the events that are typically initiated by learners. These events are generated by interactions with the learning management system (LMS) other than the Instructor Dashboard.

The descriptions that follow include what each event represents, the system component it originates from, the history of any changes made to the event over time, and any additional member fields that the common context or event fields contain. For more information about the common context or event fields, see Common Fields.

The value in the event_source field (see the Common Fields section above) distinguishes between events that originate in the browser (in JavaScript) and events that originate on the server (during the processing of a request).

12.3.1. Enrollment Events

This section includes descriptions of the following events.

12.3.1.1. edx.course.enrollment.activated and edx.course.enrollment.deactivated

The server emits these events in response to course enrollment activities completed by a student.

  • When a student enrolls in a course, the server emits an edx.course.enrollment.activated event. For example, when a student clicks Enroll for a course on the edx.org site, the server emits this event.
  • When a student unenrolls from a course, the server emits an edx.course.enrollment.deactivated event. For example, when a student clicks Unenroll for a course on the edx.org site, the server emits this event.

In addition, actions by course team members also generate enrollment events. For the actions that members of the course team complete that result in these events, see Instructor Enrollment Events.

Event Source: Server

History: These enrollment events were added on 03 Dec 2013. On 07 May 2014, the name field was added. These enrollment events include both a name field and an event_type field.

event Member Fields:

Field Type Details
course_id string

The course in which the student was enrolled or unenrolled.

If an external tool is used to enroll or unenroll students, this field contains a value and the context.course_id field is null.

mode string ‘audit’, ‘honor’, ‘professional’, ‘verified’. Identifies the student’s enrollment mode.
user_id number Identifies the student who was enrolled or unenrolled.

12.3.1.2. Example

{
    "username": "AAAAAAAAAA",
    "event_source": "server",
    "name": "edx.course.enrollment.deactivated",
    "referer": "http:\/\/localhost:8001\/container\/i4x:\/\/edX\/DemoX\/vertical\/69dedd38233a46fc89e4d7b5e8da1bf4?action=new",
    "accept_language": "en-US,en;q=0.8",
    "time": "2014-01-26T00:28:28.388782+00:00",
    "agent": "Mozilla\/5.0 (Windows NT 6.1; WOW64; Trident\/7.0; rv:11.0) like Gecko",
    "page": null
    "host": "courses.edx.org",
    "session": "a14j3ifhskngw0gfgn230g",
    "context": {
      "user_id": 9999999,
      "org_id": "edX",
      "course_id": "edX\/DemoX\/Demo_Course",
      "path": "\/change_enrollment",
    },
    "ip": "NN.NN.NNN.NNN",
    "event": {
      "course_id": "edX\/DemoX\/Demo_Course",
      "user_id": 9999999,
      "mode": "honor"
    },
    "event_type": "edx.course.enrollment.deactivated"
  }

12.3.1.3. edx.course.enrollment.mode_changed

The server emits an edx.course.enrollment.mode_changed event when the process of changing a student’s student_courseenrollment.mode to a different mode is complete.

Event Source: Server

History: Added 21 Aug 2014.

event Member Fields:

Field Type Details
course_id string The course in which the student’s enrollment mode has changed.
mode string ‘audit’, ‘honor’, ‘professional’, verified’. Identifies the student’s new enrollment mode.
user_id number Identifies the student whose enrollment mode changed.

12.3.1.4. edx.course.enrollment.upgrade.clicked

Students who enroll with a student_courseenrollment.mode of ‘audit’ or ‘honor’ in a course that has a verified certificate option see a Challenge Yourself link for the course on their dashboards. The browser emits this event when a student clicks this option, and the process of upgrading the student_courseenrollment.mode for the student to ‘verified’ begins. See Columns in the student_courseenrollment Table.

Event Source: Browser

History: Added 18 Dec 2013.

context Member Fields:

In addition to the common context member fields, this event type also includes the following context member field.

Field Type Details and Member Fields
mode string Enrollment mode when the user clicked Challenge Yourself: ‘audit’ or ‘honor’.

event Member Fields: None.

12.3.1.5. edx.course.enrollment.upgrade.succeeded

The server emits this event when the process of upgrading a student’s student_courseenrollment.mode from ‘audit’ or ‘honor’ to ‘verified’ is complete.

Event Source: Server

History: Added 18 Dec 2013.

context Member Fields:

In addition to the common context member fields, this event type also includes the following context member field.

Field Type Details and Member Fields
mode string Set to ‘verified’.

event Member Fields: None.

12.3.3. Video Interaction Events

This section includes descriptions of the following events. Due to a naming convention change, many of these events have two identifying names. In this list, the original name, which is present in the event_type field for all events, is followed by a newer, revised name. The revised name is present in the name field only for events that have an event_source of ‘mobile’.

A browser or the edX mobile app emits video interaction events when a user interacts with a video.

  • When users use a browser to stream video files on a desktop computer or mobile device, the browser emits the events.

  • When users use the edX mobile app to stream or download course videos for offline viewing, the mobile app emits the events.

    When a user interacts with a downloaded video file offline using the edX mobile app, note that the app can only forward its events during the next connection opportunity. As a result, the date and time in the event’s time field can be different from the date and time in its context.received_at field. Data packages can include events emitted on past dates.

This section presents the video interaction events alphabetically. Typically, an interaction with the video player begins with a play_video/edx.video.played event.

For courses that include a pre-roll video, user interactions with the pre-roll video result in different events. For more information, see Pre-Roll Video Interaction Events.

Component: Video

History: The edX mobile app for iOS began to emit a subset of the video events on 25 Feb 2015. The edX mobile app for Android began to emit a subset of the video events on 23 Dec 2014.

12.3.3.1. hide_transcript/edx.video.transcript.hidden

When a user selects CC to suppress display of the video transcript, the browser or mobile app emits a hide_transcript event.

In addition to the identifying event_type of hide_transcript, events that the edX mobile app emits also include a name field with a value of edx.video.transcript.hidden.

Event Source: Browser or Mobile

History: Updated 25 Feb 2015 to include events emitted by the edX mobile app for iOS. Updated 23 Dec 2014 to include events emitted by the edX mobile app for Android.

context Member Fields:

Only video interaction events with an event_source of ‘mobile’ include additional context member fields in addition to the common member fields. The same set of additional context fields are added for hide_transcript/ edx.video.transcript.hidden events as for the play_video/edx.video.played events. For an example of an event with these fields, see Example: Mobile App-Emitted edx.video.played Event.

event Member Fields:

The hide_transcript/edx.video.transcript.hidden events include the following event member fields. These fields serve the same purpose for events of this type as for the play_video/edx.video.played events.

  • code
  • currentTime: The point in the video file at which the transcript was hidden.
  • id

12.3.3.2. load_video/edx.video.loaded

When the video is fully rendered and ready to play, the browser or mobile app emits a load_video event.

In addition to the identifying event_type of load_video, the events that the edX mobile app emits also include a name field with a value of edx.video.loaded.

Event Source: Browser or Mobile

History: Updated 25 Feb 2015 to include events emitted by the edX mobile app for iOS. Updated 23 Dec 2014 to include events emitted by the edX mobile app for Android.

context Member Fields:

Only video interaction events with an event_source of ‘mobile’ include additional context member fields in addition to the common member fields. The same set of additional context fields are added for load_video events as for play_video/edx.video.played. For an example of an event with these fields, see Example: Mobile App-Emitted edx.video.played Event.

event Member Fields:

The load_video/ edx.video.loaded events include the following event member fields. These fields serve the same purpose for events of this type as for the play_video/edx.video.played events.

  • code
  • id

12.3.3.3. pause_video/edx.video.paused

When a user selects the video player’s pause control, the player emits a pause_video event. For videos that are streamed in a browser, when the player reaches the end of the video file and play automatically stops it emits both this event and a stop_video event (as of June 2014).

Note that course teams can specify a Video Stop Time for video files.

  • If the user streams a video file in a browser and a Video Stop Time is present for the video, the player stops at the specified time and emits the pause_video and stop_video events.
  • If the user plays a streaming or downloaded video in the edX mobile app, the app ignores the Video Stop Time and plays the file to its end. The app then emits only the stop_video event.

For more information, see Working with Video Components in the Building and Running an edX Course guide.

In addition to the identifying event_type of pause_video, the events that the edX mobile app emits include a name field with a value of edx.video.paused.

Event Source: Browser or Mobile

History:

  • Updated 5 May 2015 to include the effect of a Video Stop Time.
  • Updated 25 Feb 2015 to include events emitted by the edX mobile app for iOS.
  • Updated 23 Dec 2014 to include events emitted by the edX mobile app for Android.

context Member Fields:

Only video interaction events with an event_source of ‘mobile’ include additional context member fields in addition to the common member fields. The same set of additional context fields are added for pause_video/ edx.video.paused events as for play_video/edx.video.played. For an example of an event with these fields, see Example: Mobile App-Emitted edx.video.played Event.

event Member Fields:

The pause_video/edx.video.paused events include the following event member fields. These fields serve the same purpose for events of this type as for the play_video/edx.video.played events.

  • code
  • currentTime: The time in the video at which the video paused.
  • id

12.3.3.4. play_video/edx.video.played

When a user selects the video player’s play control, the player emits a play_video event.

Note that course teams can specify a Video Start Time for video files.

  • If the user streams a video file in a browser and a Video Start Time is present for the video, the player starts at the specified time and emits the play_video event.
  • If the user plays a streaming or downloaded video in the edX mobile app, the app ignores the Video Start Time and emits the play_video event when it plays the file from the beginning.

For more information, see Working with Video Components in the Building and Running an edX Course guide.

In addition to the identifying event_type of play_video, events that the edX mobile app emits also include a name field with a value of edx.video.played.

Event Source: Browser or Mobile

History:

  • Updated 5 May 2015 to include the effect of a Video Start Time.
  • Updated 25 Feb 2015 to include events emitted by the edX mobile app for iOS.
  • Updated 23 Dec 2014 to include events emitted by the edX mobile app for Android.

context Member Fields:

Only video interaction events with an event_source of ‘mobile’ include additional context member fields in addition to the common member fields. Other video interaction events with an event_source of mobile also include these fields. For an example of an event with these fields, see Example: Mobile App-Emitted edx.video.played Event.

Field Type Details and Member Fields
application object Includes name and version member fields to identify the edX mobile app.
client object

Includes member objects and fields with device-specific data.

The client data is gathered by the event collection library, which is provided by a third party.

The content of this field is subject to change without notice.

component string ‘videoplayer’
received_at number

Indicates the time at which the event collection library received the event.

Events can only be forwarded when the mobile device is connected to the Internet. Therefore, this value can be different than the event’s time value.

The data in this field reflects a third-party integration and is subject to change at any time without notice.

event Member Fields:

Field Type Details
code string

For YouTube videos played in a browser, the ID of the video being loaded (for example, OEyXaRPEzfM).

For non-YouTube videos played in a browser, ‘html5’.

For videos played by the edX mobile app, ‘mobile’.

currentTime number The time in the video at which the event was emitted.
id string

The optional name value supplied by the course creators, or the system- generated hash code for the video being watched.

For example, 0b9e39477cf34507a7a48f74be381fdd.

This value is part of the courseware_studentmodule.module_id. See Columns in the courseware_studentmodule Table.

History: In October 2014, identifiers for some new courses began to use the format shown above. Other new courses, and all courses created prior to October 2014, use an HTML-escaped version of the courseware_studentmodule.module_id. For example, i4x-HarvardX-PH207x-video-Simple_Random_Sample.

12.3.3.5. Example: Browser-Emitted play_video Event

{
  "event_source": "browser",
  "event": "{\"id\":\"i4x-BerkeleyX-Stat_2_1x-video-58424ad2f75048798b4480aa699cc215\",\"currentTime\":243,\"code\":\"iOOYGgLADj8\"}",
  "time": "2014-12-23T14:26:53.723188+00:00",
  "referer": "http:\/\/localhost:8001\/container\/i4x:\/\/edX\/DemoX\/vertical\/69dedd38233a46fc89e4d7b5e8da1bf4?action=new",
  "accept_language": "en-US,en;q=0.8",
  "event_type": "play_video",
  "session": "11a1111111a1a1a1aa1a11a1a1111111",
  "agent": "Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/39.0.2171.95 Safari\/537.36",
  "page": "https:\/\/courses.edx.org\/courses\/BerkeleyX\/Stat_2.1x\/1T2014\/courseware\/d4ff35dabfe64ed5b1f1807eb0292c73\/bd343b7dcb2c4817bd1992b0cef66ff4\/",
  "username": "AAAAAAAAAA",
  "ip": "123.123.123.123",
  "context": {
    "org_id": "BerkeleyX",
    "path": "\/event",
    "course_id": "BerkeleyX\/Stat_2.1x\/1T2014",
    "user_id": 99999999
  },
  "host": "courses.edx.org"
}

12.3.3.6. Example: Mobile App-Emitted edx.video.played Event

{
  "username": "AAAAAAAAAA",
  "event_source": "mobile",
  "name": "edx.video.played",
  "time": "2014-12-09T03:57:24+00:00",
  "agent": "Dalvik/1.6.0 (Linux; U; Android 4.0.2; sdk Build/ICS_MR0)",
  "page": "http://courses.edx.org/courses/edX/DemoX/Demo_Course/courseware/d8a6192ade314473a78242dfeedfbf5b/edx_introduction",
  "host": "courses.edx.org",
  "session": "",
  "context": {
      "component": "videoplayer",
      "received_at": "2014-12-09T03:57:56.373000+00:00",
      "course_id": "edX/DemoX/Demo_Course",
      "path": "/segment/event",
      "user_id": 99999999,
      "org_id": "edX",
      "application": {
        "name": "edx.mobileapp.android",
        "version": "0.1.8",
      },
      "client": {
          "network": {
              "wifi": false,
              "carrier": "Android",
              "cellular": true,
              "bluetooth": false
          },
          "locale": "en-US",
          "app": {
              "name": "edX",
              "packageName": "org.edx.mobile",
              "version": "0.1.8",
              "build": "org.edx.mobile@29",
              "versionName": "0.1.8",
              "versionCode": 29
          },
          "library": {
              "version": 203,
              "name": "analytics-android",
              "versionName": "2.0.3"
          },
          "device": {
              "model": "sdk",
              "type": "android",
              "id": "aaa11111aaaa11a1",
              "name": "generic",
              "manufacturer": "unknown"
          },
          "os": {
              "version": "4.0.2",
              "name": "REL",
              "sdk": 14
          },
          "screen": {
              "densityBucket": "xhdpi",
              "density": 2,
              "height": 1184,
              "width": 768,
              "densityDpi": 320,
              "scaledDensity": 2
          }
      }
  },
  "ip": "",
  "event": "{\"code\": \"mobile\", \"id\": \"i4x-edX-DemoX-video-0b9e39477cf34507a7a48f74be381fdd\", \"currentTime\": 114}",
  "event_type": "play_video"
}

12.3.3.7. seek_video/edx.video.position.changed

A browser emits seek_video events when a user selects a user interface control to go to a different point in the video file.

  • On a desktop computer, users can click and drag in the playback bar or click in a transcript to change position.
  • In the edX mobile app, users can click and drag in the playback bar or tap the “back 30 seconds” button to change position.
  • When using a browser on a mobile device, users can click and drag in the playback bar to change position.

In addition to the value seek_video in the event_type field, the events that the edX mobile app emits include the value edx.video.position.changed in the name field.

Event Source: Browser or Mobile

History:

  • Updated 10 Mar 2015 to include the final implementation for events emitted by the edX mobile app for Android and iOS. Prototype events were emitted by the mobile app in February and March 2015.
  • Prior to 25 Jun 2014, the old_time and new_time fields were set to the same value.

context Member Fields:

Only video interaction events with an event_source of ‘mobile’ include additional context member fields in addition to the common member fields. The same set of additional context fields are added for seek_video/ edx.video.position.changed events as for play_video/edx.video.played. For an example of an event with these fields, see Example: Mobile App-Emitted edx.video.played Event.

event Member Fields:

The seek_video/edx.video.position.changed events include the following event member fields. These fields serve the same purpose for events of this type as for the play_video/edx.video.played events.

  • code
  • id

The following additional event member fields apply specifically to seek_video/edx.video.position.changed events.

Field Type Details
new_time number The time in the video, in seconds, that the user selected as the destination point.
old_time number The time in the video, in seconds, at which the user chose to go to a different point in the file.
requested_skip_interval number

Applies only to events with an event_source of ‘mobile’. The number of seconds that the user moved backward (expressed as a negative) or forward in the file.

History: Added 10 Mar 2015.

type string

The navigational method used to change position within the video.

In events for a user of a desktop computer, this value can be ‘onCaptionSeek’ or ‘onSlideSeek’. In events for a user of the mobile app, this value can be ‘onSlideSeek’ or ‘onSkipSeek’.

12.3.3.8. show_transcript/edx.video.transcript.shown

When a user selects CC to display the video transcript, the browser or mobile app emits a show_transcript event.

In addition to the identifying event_type of show_transcript, events that the edX mobile app emits also include a name field with a value of edx.video.transcript.shown.

Event Source: Browser or Mobile

History: Updated 25 Feb 2015 to include events emitted by the edX mobile app for iOS. Updated 23 Dec 2014 to include events emitted by the edX mobile app for Android.

context Member Fields:

Only video interaction events with an event_source of ‘mobile’ include additional context member fields in addition to the common member fields. The same set of additional context fields are added for show_transcript/ edx.video.transcript.shown events as for play_video/edx.video.played. For an example of an event with these fields, see Example: Mobile App-Emitted edx.video.played Event.

event Member Fields:

The show_transcript/edx.video.transcript.shown events include the following event member fields. These fields serve the same purpose for events of this type as for the play_video/edx.video.played events.

  • code
  • currentTime: The point in the video file at which the transcript was opened.
  • id

12.3.3.9. speed_change_video

A browser emits speed_change_video events when a user selects a different playing speed for the video.

Event Source: Browser

History: Prior to 12 Feb 2014, this event was emitted when a user selected either the same speed or a different speed.

event Member Fields:

Field Type Details
current_time number The time in the video that the user chose to change the playing speed.
new_speed number The speed that the user selected for the video to play: ‘0.75’, ‘1.0’, ‘1.25’, ‘1.50’.
old_speed number The speed at which the video was playing.

12.3.3.10. stop_video/edx.video.stopped

When the video player reaches the end of the video file and play automatically stops, the player emits a stop_video event.

Note that course teams can specify a Video Stop Time for video files.

  • If the user streams a video file in a browser and a Video Stop Time is present for the video, the player stops at the specified time and emits the pause_video and stop_video events.
  • If the user plays a streaming or downloaded video in edX mobile app, the app ignores the Video Stop Time and plays the file to its end. The app then emits the stop_video event.

For more information, see Working with Video Components in the Building and Running an edX Course guide.

In addition to the identifying event_type of stop_video, the events that the edX mobile app emits include a name field with a value of edx.video.stopped.

Event Source: Browser or Mobile

History:

  • Updated 5 May 2015 to include the effect of a Video Stop Time.
  • Updated 25 Feb 2015 to include events emitted by the edX mobile app for iOS.
  • Updated 23 Dec 2014 to include events emitted by the edX mobile app for Android.
  • Added 25 June 2014.

context Member Fields:

Only video interaction events with an event_source of ‘mobile’ include additional context member fields in addition to the common member fields. The same set of additional context fields are added for stop_video/ edx.video.stopped events as for play_video/edx.video.played. For an example of an event with these fields, see Example: Mobile App-Emitted edx.video.played Event.

event Member Fields:

The stop_video/edx.video.stopped events include the following event member fields. These fields serve the same purpose for events of this type as for the play_video/edx.video.played events.

  • code
  • currentTime: The time in the video at which play stopped.
  • id

12.3.3.11. video_hide_cc_menu

When a user selects a language from the CC menu for a video that has transcripts in multiple languages, the browser emits a video_hide_cc_menu event.

Event Source: Browser

History: Added 17 Feb 2015.

event Member Fields:

The video_hide_cc_menu events include the following event member fields. These fields serve the same purpose for events of this type as for play_video/edx.video.played.

  • code
  • id

12.3.3.12. video_show_cc_menu

When a user selects CC for a video that has transcripts in multiple languages, the browser emits a video_show_cc_menu event. This event is emitted in addition to the show_transcript event.

Event Source: Browser

History: Added 17 Feb 2015.

event Member Fields:

The video_show_cc_menu events include the following event member fields. These fields serve the same purpose for events of this type as for play_video/edx.video.played.

  • code
  • id

12.3.4. Pre-Roll Video Interaction Events

Course teams can create a short video message and configure it to play automatically before the videos in a course.

  • The pre-roll video plays on an infrequent schedule of once per user per week.
  • Only courses that run on the edx.org website can include a pre-roll video.
  • The edX mobile applications do not play pre-roll videos.

When a user interacts with the pre-roll video, different events are emitted than for the other videos in the course. This section presents the pre-roll video events alphabetically.

For more information about pre-roll videos, see Adding a Pre-Roll Video to Your edX Course in the Building and Running an edX Course guide.

Component: Video

History: Added 10 Jun 2015.

12.3.4.1. edx.video.bumper.dismissed

A browser emits this event when a user selects Do not show again for a pre-roll video. This option allows the user to opt out of viewing the course pre-roll video in the future.

Event Source: Browser

event Member Fields:

The edx.video.bumper.dismissed events include the following event member fields. These fields serve the same purpose for events of this type as for the edx.video.bumper.played events.

  • bumper_id
  • code
  • currentTime
  • duration
  • host_component_id

12.3.4.2. edx.video.bumper.loaded

When the pre-roll video is fully rendered and ready to play, the browser emits an edx.video.bumper.loaded event.

Event Source: Browser

event Member Fields:

The edx.video.bumper.loaded events include the following event member fields. These fields serve the same purpose for events of this type as for the edx.video.bumper.played events.

  • bumper_id
  • code
  • duration
  • host_component_id

12.3.4.3. edx.video.bumper.played

When a user selects the play control in the video player for a pre-roll video, the browser emits an edx.video.bumper.played event.

Event Source: Browser

event Member Fields:

Field Type Details
bumper_id string The escaped URL identifying the location of the pre-roll video that played.
code string Contains the value ‘html5’. All pre-roll videos are non-YouTube videos.
currentTime number The time in the file at which the video played.
duration number The length of the video file, in seconds.
host_component_id string Identifier for the video component that the user selected, and that is queued to play after the pre-roll video.

12.3.4.4. Example: edx.video.bumper.played Event

{
  "username": "honor",
  "event_source": "browser",
  "name": "edx.video.bumper.played",
  "accept_language": "en-US,en;q=0.5",
  "time": "2015-05-26T18:22:07.684172+00:00",
  "agent": "Mozilla\/5.0 (X11; Ubuntu; Linux x86_64; rv:37.0) Gecko\/20100101 Firefox\/37.0",
  "page": "http:\/\/edx.org\/courses\/edX\/DemoX.1\/2015\/courseware\/0af8db2309474971bfa70cda98668a30\/ec3364075f2845baa625bfecd5970410\/",
  "host": "precise64",
  "session": "feae6efa342b309e776d388b16da89a6",
  "referer": "http:\/\/localhost:8001\/container\/i4x:\/\/edX\/DemoX\/vertical\/69dedd38233a46fc89e4d7b5e8da1bf4?action=new",
  "context": {
    "user_id": 7911,
    "org_id": "edX",
    "course_id": "edX\/DemoX.1\/2015",
    "path": "\/event"
  },
  "ip": "123.0.0.1",
  "event": "{\"duration\": 10, \"bumper_id\": \"http:\/\/www.w3schools.com\/html\/mov_bbb.webm\", \"code\": \"html5\", \"currentTime\": 0, \"host_component_id\": \"i4x-edX-DemoX_1-video-4e2eeecf597040e3b5e1a27600bc8ddc\"}",
  "event_type": "edx.video.bumper.played"
}

12.3.4.5. edx.video.bumper.skipped

A browser emits this event when a user selects Skip for a bumper video. This option allows the user to advance past the pre-roll video and begin to play the selected video immediately.

Event Source: Browser

event Member Fields:

The edx.video.bumper.skipped events include the following event member fields. These fields serve the same purpose for events of this type as for the edx.video.bumper.played events.

  • bumper_id
  • code
  • currentTime: The point in the file at which the pre-roll video was skipped.
  • duration
  • host_component_id

12.3.4.6. edx.video.bumper.stopped

A browser emits this event when the video player reaches the end of the pre- roll video file and play automatically stops.

This is the only event that is emitted when a user pauses a pre-roll video.

Event Source: Browser

event Member Fields:

The edx.video.bumper.stopped events include the following event member fields. These fields serve the same purpose for events of this type as for the edx.video.bumper.played events.

  • bumper_id
  • code
  • currentTime: The point in the file at which the pre-roll video was stopped.
  • duration
  • host_component_id

12.3.4.7. edx.video.bumper.transcript.hidden

When a user selects CC to suppress display of the transcript for a pre-roll video, the browser emits a edx.video.bumper.transcript.hidden event.

Event Source: Browser

event Member Fields:

The edx.video.bumper.transcript.hidden events include the following event member fields. These fields serve the same purpose for events of this type as for the edx.video.bumper.played events.

  • bumper_id
  • code
  • currentTime: The point in the file at which the transcript was hidden.
  • duration
  • host_component_id

12.3.4.8. edx.video.bumper.transcript.menu.hidden

When a user selects a language from the CC menu for a pre-roll video that has transcripts in multiple languages, the browser emits an edx.video.bumper.transcript.menu.hidden event.

Event Source: Browser

event Member Fields:

The edx.video.bumper.transcript.menu.hidden events include the following event member fields. These fields serve the same purpose for events of this type as for the edx.video.bumper.played events.

  • bumper_id
  • code
  • currentTime: The point in the file at which the language was selected and the transcript menu was hidden.
  • duration
  • host_component_id

12.3.4.9. edx.video.bumper.transcript.menu.shown

When a user selects CC for a pre-roll video that has transcripts in multiple languages, the browser emits an edx.video.bumper.transcript.menu.shown event. This event is emitted in addition to the edx.video.bumper.transcript.shown event.

Event Source: Browser

event Member Fields:

The edx.video.bumper.transcript.menu.shown events include the following event member fields. These fields serve the same purpose for events of this type as for the edx.video.bumper.played events.

  • bumper_id
  • code
  • currentTime: The point in the file at which the transcript menu was shown.
  • duration
  • host_component_id

12.3.4.10. edx.video.bumper.transcript.shown

When a user selects CC to display the transcript for a pre-roll video, the browser emits a edx.video.bumper.transcript.shown event. If the video has more than one transcript file, the edx.video.bumper.transcript.menu.shown event is also emitted.

The edx.video.bumper.transcript.shown events include the following event member fields. These fields serve the same purpose for events of this type as for the edx.video.bumper.played events.

  • bumper_id
  • code
  • currentTime: The point in the file at which the transcript was shown.
  • duration
  • host_component_id

12.3.5. Textbook Interaction Events

This section includes descriptions of the following events.

12.3.5.1. book

The browser emits book events when a user navigates within the PDF Viewer or the PNG Viewer.

  • For textbooks in PDF format, the URL in the common page field contains ‘/pdfbook/’.
  • For textbooks in PNG format, the URL in the common page field contains ‘/book/’.

Component: PDF Viewer, PNG Viewer

Event Source: Browser

History: This event changed on 16 Apr 2014 to include event member fields name and chapter.

event Member Fields:

Field Type Details
chapter string The name of the PDF file. History: Added for events produced by the PDF Viewer on 16 Apr 2014.
name string
  • For ‘gotopage’, set to textbook.pdf.page.loaded.
  • For ‘prevpage’, set to textbook.pdf.page.navigatedprevious.
  • For ‘nextpage’, set to textbook.pdf.page.navigatednext.

History: Added for events produced by the PDF Viewer on 16 Apr 2014.

new number Destination page number.
old number The original page number. Applies to ‘gotopage’ event types only.
type string
  • ‘gotopage’ is emitted when a page loads after the student manually enters its number.
  • ‘prevpage’ is emitted when the next page button is clicked.
  • ‘nextpage’ is emitted when the previous page button is clicked.

12.3.5.2. textbook.pdf.thumbnails.toggled

The browser emits textbook.pdf.thumbnails.toggled events when a user clicks on the icon to show or hide page thumbnails.

Component: PDF Viewer

Event Source: Browser

History: This event was added on 16 Apr 2014.

event Member Fields:

Field Type Details
chapter string The name of the PDF file.
name string textbook.pdf.thumbnails.toggled
page number The number of the page that is open when the user clicks this icon.

12.3.5.3. textbook.pdf.thumbnail.navigated

The browser emits textbook.pdf.thumbnail.navigated events when a user clicks on a thumbnail image to navigate to a page.

Component: PDF Viewer

Event Source: Browser

History: This event was added on 16 Apr 2014.

event Member Fields:

Field Type Details
chapter string The name of the PDF file.
name string textbook.pdf.thumbnail.navigated
page number The page number of the thumbnail clicked.
thumbnail_title string The identifying name for the destination of the thumbnail. For example, Page 2.

12.3.5.4. textbook.pdf.outline.toggled

The browser emits textbook.pdf.outline.toggled events when a user clicks the outline icon to show or hide a list of the book’s chapters.

Component: PDF Viewer

Event Source: Browser

History: This event was added on 16 Apr 2014.

event Member Fields:

Field Type Details
chapter string The name of the PDF file.
name string textbook.pdf.outline.toggled
page number The number of the page that is open when the user clicks this link.

12.3.5.5. textbook.pdf.chapter.navigated

The browser emits textbook.pdf.chapter.navigated events when a user clicks on a link in the outline to navigate to a chapter.

Component: PDF Viewer

Event Source: Browser

History: This event was added on 16 Apr 2014.

event Member Fields:

Field Type Details
chapter string The name of the PDF file.
chapter_title string The identifying name for the destination of the outline link.
name string textbook.pdf.chapter.navigated

12.3.5.6. textbook.pdf.page.navigated

The browser emits textbook.pdf.page.navigated events when a user manually enters a page number.

Component: PDF Viewer

Event Source: Browser

History: This event was added on 16 Apr 2014.

event Member Fields:

Field Type Details
chapter string The name of the PDF file.
name string textbook.pdf.page.navigated
page number The destination page number entered by the user.

12.3.5.7. textbook.pdf.zoom.buttons.changed

The browser emits textbook.pdf.zoom.buttons.changed events when a user clicks either the Zoom In or Zoom Out icon.

Component: PDF Viewer

Event Source: Browser

History: This event was added on 16 Apr 2014.

event Member Fields:

Field Type Details
chapter string The name of the PDF file.
direction string ‘in’, ‘out’
name string textbook.pdf.zoom.buttons.changed
page number The number of the page that is open when the user clicks the icon.

12.3.5.8. textbook.pdf.zoom.menu.changed

The browser emits textbook.pdf.zoom.menu.changed events when a user selects a magnification setting.

Component: PDF Viewer

Event Source: Browser

History: This event was added on 16 Apr 2014.

event Member Fields:

Field Type Details
amount string ‘1’, ‘0.75’, ‘1.5’, ‘custom’, ‘page_actual’, ‘auto’, ‘page_width’, ‘page_fit’.
chapter string The name of the PDF file.
name string textbook.pdf.zoom.menu.changed
page number The number of the page that is open when the user selects this value.

12.3.5.9. textbook.pdf.display.scaled

The browser emits textbook.pdf.display.scaled events when the display magnification changes. These changes occur after a student selects a magnification setting from the zoom menu or resizes the browser window.

Component: PDF Viewer

Event Source: Browser

History: This event was added on 16 Apr 2014.

event Member Fields:

Field Type Details
amount string The magnification setting; for example, 0.95 or 1.25.
chapter string The name of the PDF file.
name string textbook.pdf.display.scaled
page number The number of the page that is open when the scaling takes place.

12.3.5.10. textbook.pdf.page.scrolled

The browser emits textbook.pdf.page.scrolled events each time the displayed page changes while a user scrolls up or down.

Component: PDF Viewer

Event Source: Browser

History: This event was added on 16 Apr 2014.

event Member Fields:

Field Type Details
chapter string The name of the PDF file.
direction string ‘up’, ‘down’
name string textbook.pdf.page.scrolled
page number The number of the page that is open when the scrolling takes place.

12.3.5.11. textbook.pdf.search.executed

The browser emits textbook.pdf.search.executed events when a user searches for a text value in the file. To reduce the number of events produced, instead of producing one event per entered character this event defines a search string as the set of characters that is consecutively entered in the search field within 500ms of each other.

Component: PDF Viewer

Event Source: Browser

History: This event was added on 16 Apr 2014.

event Member Fields:

Field Type Details
caseSensitive Boolean

‘true’ if the case sensitive option is selected.

‘false’ if this option is not selected.

chapter string The name of the PDF file.
highlightAll Boolean

‘true’ if the option to highlight all matches is selected.

‘false’ if this option is not selected.

name string textbook.pdf.search.executed
page number The number of the page that is open when the search takes place.
query string The value in the search field.
status string

A “not found” status phrase for a search string that is unsuccessful.

Blank for successful search strings.

12.3.5.12. textbook.pdf.search.navigatednext

The browser emits textbook.pdf.search.navigatednext events when a user clicks on the Find Next or Find Previous icons for an entered search string.

Component: PDF Viewer

Event Source: Browser

History: This event was added on 16 Apr 2014.

event Member Fields:

Field Type Details
caseSensitive Boolean

‘true’ if the case sensitive option is selected.

‘false’ if this option is not selected.

chapter string The name of the PDF file.
findprevious Boolean

‘true’ if the user clicks the Find Previous icon.

‘false’ if the user clicks the Find Next icon.

highlightAll Boolean

‘true’ if the option to highlight all matches is selected.

‘false’ if this option is not selected.

name string textbook.pdf.search.navigatednext
page number The number of the page that is open when the search takes place.
query string The value in the search field.
status string

A “not found” status phrase for a search string that is unsuccessful.

Blank for successful search strings.

12.3.5.13. textbook.pdf.search.highlight.toggled

The browser emits textbook.pdf.search.highlight.toggled events when a user selects or clears the Highlight All option for a search.

Component: PDF Viewer

Event Source: Browser

History: This event was added on 16 Apr 2014.

event Member Fields:

Field Type Details
caseSensitive Boolean

‘true’ if the case sensitive option is selected.

‘false’ if this option is not selected.

chapter string The name of the PDF file.
highlightAll Boolean

‘true’ if the option to highlight all matches is selected.

‘false’ if this option is not selected.

name string textbook.pdf.search.highlight.toggled
page number The number of the page that is open when the search takes place.
query string The value in the search field.
status string

A “not found” status phrase for a search string that is unsuccessful.

Blank for successful search strings.

12.3.5.14. textbook.pdf.searchcasesensitivity.toggled

The browser emits textbook.pdf.searchcasesensitivity.toggled events when a user selects or clears the Match Case option for a search.

Component: PDF Viewer

Event Source: Browser

History: This event was added on 16 Apr 2014.

event Member Fields:

Field Type Details
caseSensitive Boolean

‘true’ if the case sensitive option is selected.

‘false’ if this option is not selected.

chapter string The name of the PDF file.
highlightAll Boolean

‘true’ if the option to highlight all matches is selected.

‘false’ if this option is not selected.

name string textbook.pdf.searchcasesensitivity.toggled
page number The number of the page that is open when the search takes place.
query string The value in the search field.
status string

A “not found” status phrase for a search string that is unsuccessful.

Blank for successful search strings.

12.3.6. Problem Interaction Events

This section includes descriptions of the following events.

Problem interaction events are emitted by the server or the browser to capture information about interactions with problems.

These events were designed for the problem types implemented in the edX platform by the capa_module.py XBlock. Problem types that are implemented by other XBlocks, such as open response assessments, peer instruction assessments, drag and drop problems, or polls and surveys, are instrumented with different events.

For information about designing problems to include hints, feedback, or both, see Adding Feedback and Hints to a Problem in the Building and Running an edX Course guide.

12.3.6.1. edx.problem.hint.demandhint_displayed

Course teams can design problems to include one or more hints. For problems that include hints, the server emits an edx.problem.hint.demandhint_displayed event each time a user requests a hint.

Event Source: Server

History: This event was added on 1 Jul 2015.

event Member Fields:

Field Type Details
hint_index number Identifier for the hint that was displayed to the user. The first hint defined for a problem is identified with hint_index: 0.
hint_len number The total number of hints defined for this problem.
hint_text string The text of the hint that was displayed to the user.
module_id string Identifier for the problem component for which the user requested the hint.

12.3.6.2. edx.problem.hint.feedback_displayed

Course teams can design problems to include feedback messages that appear after a user submits an answer. For problems that include feedback messages, the server emits an edx.problem.hint.feedback_displayed event each time a user selects Check.

Event Source: Server

History: This event was added on 1 Jul 2015.

event Member Fields:

Field Type Details
choice_all array For problems that have a set of possible answers defined, such as checkbox problems, lists all of the answer choices.
correctness Boolean ‘True’ if the student_answer response is correct. ‘False’ if the student_answer is incorrect.
hint_label string The optional label, such as ‘Correct: ‘ or ‘Incorrect: ‘, provided for the feedback message.
hints array Contains a text member field with the feedback string that was displayed to the user. For some problem types, such as checkbox problems, feedback can be provided for more than one answer at a time, including both correct and incorrect answers. A separate text member field is included for each feedback message that was displayed.
module_id string Identifier for the problem component for which the user received the feedback.
problem_part_id string For problem components that contain more than one problem, identifies the specific problem for which the user received feedback.
question_type string The XML tag that identifies the problem type. For example, ‘stringresponse’ for a text input problem.
student_answer array The answer value selected or supplied by the user. For problem types that accept multiple answers, such as checkbox problems, every response, including both selected and unselected options, is included.
trigger_type string

Identifies the type of feedback elicited by the student_answer response. For checkbox problems only, course teams can design ‘compound’ feedback that is provided when a user’s response matches an exact set of correct and incorrect selections across all of the available choices. All other types of feedback are identified as ‘single’.

For more information, see Adding Feedback and Hints to a Problem in the Building and Running an edX Course guide.

12.3.6.3. problem_check (Browser)

Both browser interactions and server requests produce problem_check events. The browser emits problem_check events when a user checks a problem.

Event Source: Browser

event Member Fields: For browser-emitted problem_check events, the event field contains the values of all input fields from the problem being checked, styled as GET parameters.

12.3.6.4. problem_check (Server)

Both browser interactions and server requests produce problem_check events.

The server emits problem_check events when a problem is successfully checked.

Event Source: Server

History:

  • On 5 Mar 2014, the submission object was added to the event field and module was added to the context field.
  • Prior to 15 Oct 2013, this server-emitted event was named save_problem_check.
  • Prior to 15 Jul 2013, this event was emitted twice for the same action.

context Member Fields:

This event type includes the common context.module member field.

event Member Fields:

Field Type Details
answers object The problem ID and the internal answer identifier in a name/value pair. For a component with multiple problems, lists every problem and answer.
attempts number The number of times the user attempted to answer the problem.
correct_map object

For each problem ID value listed by answers, provides:

  • correctness: string; ‘correct’, ‘incorrect’
  • hint: string; Gives optional hint. Nulls allowed.
  • hintmode: string; None, ‘on_request’, ‘always’. Nulls allowed.
  • msg: string; Gives extra message response.
  • npoints: number; Points awarded for this answer_id. Nulls allowed.
  • queuestate: object; None when not queued, else {key:'', time:''} where key is a secret string dump of a DateTime object in the form ‘%Y%m%d%H%M%S’. Nulls allowed.
grade number Current grade value.
max_grade number Maximum possible grade value.
problem_id string ID of the problem that was checked.
state object Current problem state.
submission object

Provides data about the response made.

For components that include multiple problems, a separate submission object is provided for each one.

  • answer: string; The value that the student entered, or the display name of the value selected.
  • correct: Boolean; ‘true’, ‘false’
  • input_type: string; The type of value that the student supplies for the response_type. Based on the XML element names used in the advanced editor. Examples include ‘checkboxgroup’, ‘radiogroup’, ‘choicegroup’, and ‘textline’.
  • question: string; Provides the text of the question.
  • response_type: string; The type of problem. Based on the XML element names used in the advanced editor. Examples include ‘choiceresponse’, ‘optionresponse’, and ‘multiplechoiceresponse’.
  • variant: number; For problems that use problem randomization features such as answer pools or choice shuffling, contains the unique ID of the variant that was presented to this user.
success string ‘correct’, ‘incorrect’

12.3.6.5. problem_check_fail

The server emits problem_check_fail events when a problem cannot be checked successfully.

Event Source: Server

History: Prior to 15 Oct 2013, this event was named save_problem_check_fail.

event Member Fields:

Field Type Details
answers object  
failure string ‘closed’, ‘unreset’
problem_id string ID of the problem being checked.
state object Current problem state.

12.3.6.6. problem_graded

The server emits a problem_graded event each time a user clicks Check for a problem and it is graded successfully.

event Member Fields:

Field Type Details
[answers, contents] array

answers provides the value checked by the user.

contents delivers HTML using data entered for the problem in Studio, including the display name, problem text, and choices or response field labels.

The array includes each problem in a problem component that has multiple problems.

12.3.6.7. problem_rescore

The server emits problem_rescore events when a problem is successfully rescored.

Event Source: Server

event Member Fields:

Field Type Details
attempts number  
correct_map object See the fields for the problem_check server event above.
new_score number  
new_total number  
orig_score number  
orig_total number  
problem_id string ID of the problem being rescored.
state object Current problem state.
success string ‘correct’, ‘incorrect’

12.3.6.8. problem_rescore_fail

The server emits problem_rescore_fail events when a problem cannot be successfully rescored.

Event Source: Server

event Member Fields:

Field Type Details
failure string ‘unsupported’, ‘unanswered’, ‘input_error’, ‘unexpected’
problem_id string ID of the problem being checked.
state object Current problem state.

12.3.6.9. problem_reset

The browser emits problem_reset events when a user clicks Reset to reset the answer to a problem.

Event Source: Browser

event Member Fields:

Field Type Details
answers string The value reset by the user.

12.3.6.10. problem_save

The browser emits problem_save events when a user saves a problem.

Event Source: Browser

event Member Fields: None

12.3.6.11. problem_show

The browser emits problem_show events when the answer to a problem is shown; that is, the user selected Show Answer.

Note

This event does not indicate when a problem was shown to a user.

Event Source: Browser

event Member Fields:

Field Type Details
problem string

The optional name value that the course creators supply or the system-generated hash code for the problem being shown.

For example, input_303034da25524878a2e66fb57c91cf85_2_1`` or ``303034da25524878a2e66fb57c91cf85_2_1.

This value is based on part of the courseware_studentmodule.module_id. See Columns in the courseware_studentmodule Table.

History: In October 2014, identifiers for some new courses began to use the format shown above. Other new courses, and all courses created prior to October 2014, use an HTML-escaped version of the courseware_studentmodule.module_id. For example, i4x://MITx/6.00x/problem/L15:L15_Problem_2.

12.3.6.12. reset_problem

The server emits reset_problem events when a problem has been reset successfully.

Event Source: Server

event Member Fields:

Field Type Details
new_state object New problem state.
old_state object The state of the problem before the reset was performed.
problem_id string ID of the problem being reset.

12.3.6.13. reset_problem_fail

The server emits reset_problem_fail events when a problem cannot be reset successfully.

Event Source: Server

event Member Fields:

Field Type Details
failure string ‘closed’, ‘not_done’
old_state object The state of the problem before the reset was requested.
problem_id string ID of the problem being reset.

12.3.6.14. save_problem_fail

The server emits save_problem_fail events when a problem cannot be saved successfully.

Event Source: Server

event Member Fields:

Field Type Details
answers object  
failure string ‘closed’, ‘done’
problem_id string ID of the problem being saved.
state object Current problem state.

12.3.6.15. save_problem_success

The server emits save_problem_success events when a problem is saved successfully.

Event Source: Server

event Member Fields:

Field Type Details
answers object  
problem_id string ID of the problem being saved.
state object Current problem state.

12.3.6.16. showanswer

The server emits showanswer events when the answer to a problem is shown.

Event Source: Server

event Member Fields:

Field Type Details
problem_id string EdX ID of the problem being shown.
[answers, contents] array

The array includes each problem in a problem component that has multiple problems.

  • answers provides the value checked by the user.
  • contents delivers HTML using data entered for the problem in Studio, including the display name, problem text, and choices or response field labels.

12.3.7. Timed and Proctored Exam Events

Special exams are a type of course exam that includes timed exams, proctored exams, and practice proctored exams. These exam types offer more complicated functionality than other assignment types in graded subsections, and they emit additional events. Special exam events provide information about special exams included in courses and learners’ interactions with those special exams.

  • Proctored exams have a time limit and they require learners to install and run monitoring software while taking the exam. After a learner completes a proctored exam, a team of reviewers determines whether the learner complied with all of the exam rules based on records generated by the monitoring software.
  • Practice proctored exams allow learners to become familiar with the monitoring software that they will use during an actual proctored exam. The way that a learner experiences a practice proctored exam is identical to a proctored exam. In a practice proctored exam, the monitoring software does not send exam records to reviewers.
  • Timed exams have a time limit. Learners do not install or use monitoring software when they take a timed exam.

Practice proctored exams follow a workflow that is similar to proctored exams but do not include a review of the exam attempt. Timed exams also follow a similar workflow but do not include any proctoring software or review of the exam attempt.

The following diagram shows the workflow for a proctored exam.

A diagram showing the workflow for a proctored exam.

For more information about timed exams and proctored exams, see Timed Exams and Proctored Exam Overview.

Some special exam events are emitted when course teams develop and administer exams. For more information, see Timed and Proctored Exam Development and Administration Events.

Because special exams include similiar functions and behavior, they share some similar events. For example, the edx.special_exam.proctored.allowance.created, edx.special_exam.practice.allowance.created, and edx.special_exam.timed.allowance.created events include identical fields.

This section includes descriptions of the following events.

12.3.7.1. edx.special_exam.proctored.attempt.created, edx.special_exam.practice.attempt.created, and edx.special_exam.timed.attempt.created

The server emits this event when a learner chooses to take a special exam.

History: Added 01 Dec 2015.

event Member Fields:

Field Type Details
attempt_allowed_time_limit_mins number The amount of time, in minutes, that the learner has to complete the exam.
attempt_code string A generated identifier for the exam attempt.
attempt_completed_at datetime The UTC time stamp of the time at which the learner submitted the exam.
attempt_event_elapsed_time_secs number The number of seconds that passed between the time the learner started the exam and the time the event was emitted.
attempt_id number The primary identifier of the exam attempt.
attempt_started_at datetime The UTC time stamp of the time at which the learner began taking the exam.
attempt_status string The current state of the exam, for example, created.
attempt_user_id number The primary identifier of the learner taking the exam.
exam_content_id string The primary identifier of the subsection that contains the exam.
exam_default_time_limit_mins number The standard amount of time, in minutes, that learners have to complete the exam.
exam_id number The primary identifier of the exam.
exam_is_active Boolean Indicates whether the special exam is currently available for learner attempts.
exam_is_practice_exam Boolean Indicates whether the special exam is a practice proctored exam.
exam_is_proctored Boolean Indicates whether the special exam is a proctored exam.
exam_name string The title of the exam in the course page, taken from the subsection title.

12.3.7.2. edx.special_exam.proctored.attempt.declined

The server emits this event when a learner chooses to take an exam without proctoring.

The event fields for this event are the same as the event fields for the edx.special_exam.proctored.attempt.created event. For more information, see edx.special_exam.proctored.attempt.created, edx.special_exam.practice.attempt.created, and edx.special_exam.timed.attempt.created.

History: Added 01 Dec 2015.

12.3.7.3. edx.special_exam.proctored.attempt.deleted, edx.special_exam.practice.attempt.deleted, and edx.special_exam.timed.attempt.deleted

The server emits this event when a course team or edX platform administrator removes an exam attempt record for an individual learner.

The event fields for this event are the same as the event fields for the edx.special_exam.{special exam type}.attempt.created event. For more information, see edx.special_exam.proctored.attempt.created, edx.special_exam.practice.attempt.created, and edx.special_exam.timed.attempt.created.

History: Added 01 Dec 2015.

12.3.7.4. edx.special_exam.proctored.attempt.download_software_clicked and edx.special_exam.practice.attempt.download_software_clicked

The server emits this event when a learner follows the link to download the proctoring software for a proctored exam.

The event fields for this event are the same as the event fields for the edx.special_exam.{special exam type}.attempt.created event. For more information, see edx.special_exam.proctored.attempt.created, edx.special_exam.practice.attempt.created, and edx.special_exam.timed.attempt.created.

History: Added 01 Dec 2015.

12.3.7.5. edx.special_exam.proctored.attempt.error and edx.special_exam.practice.attempt.error

The server emits this event when it loses the connection to the proctoring software during a learner’s exam attempt.

The event fields for this event are the same as the event fields for the edx.special_exam.{special exam type}.attempt.created event. For more information, see edx.special_exam.proctored.attempt.created, edx.special_exam.practice.attempt.created, and edx.special_exam.timed.attempt.created.

History: Added 01 Dec 2015.

12.3.7.6. edx.special_exam.proctored.attempt.ready_to_start and edx.special_exam.practice.attempt.ready_to_start

The server emits this event when a learner has installed the proctoring software and is ready to begin taking a proctored exam.

The event fields for this event are the same as the event fields for the edx.special_exam.{special exam type}.attempt.created event. For more information, see edx.special_exam.proctored.attempt.created, edx.special_exam.practice.attempt.created, and edx.special_exam.timed.attempt.created.

History: Added 01 Dec 2015.

12.3.7.7. edx.special_exam.proctored.attempt.ready_to_submit, edx.special_exam.practice.attempt.ready_to_submit, and edx.special_exam.timed.attempt.ready_to_submit

The server emits this event when a learner has completed a proctored exam and is prompted to submit the exam.

The event fields for this event are the same as the event fields for the edx.special_exam.{special exam type}.attempt.created event. For more information, see edx.special_exam.proctored.attempt.created, edx.special_exam.practice.attempt.created, and edx.special_exam.timed.attempt.created.

History: Added 01 Dec 2015.

12.3.7.8. edx.special_exam.proctored.attempt.rejected

The server emits this event when a proctored exam attempt has been reviewed and has been disqualified.

The event fields for this event are the same as the event fields for the edx.special_exam.proctored.attempt.created event. For more information, see edx.special_exam.proctored.attempt.created, edx.special_exam.practice.attempt.created, and edx.special_exam.timed.attempt.created.

History: Added 01 Dec 2015.

12.3.7.9. edx.special_exam.proctored.attempt.review_received

The server emits this event when a proctored exam attempt has been reviewed and the results of the review are available.

History: Added 01 Dec 2015.

event Member Fields:

Field Type Details
attempt_allowed_time_limit_mins number The amount of time, in minutes, that the learner has to complete the exam.
attempt_code string A generated identifier for the exam attempt.
attempt_completed_at datetime The UTC time stamp of the time at which the learner submitted the exam.
attempt_event_elapsed_time_secs number The number of seconds that passed between the time the learner started the exam and the time the event was emitted.
attempt_id number The primary identifier of the exam attempt.
attempt_started_at datetime The UTC time stamp of the time at which the learner began taking the exam.
attempt_status string The current state of the exam, for example, created.
attempt_user_id number The primary identifier of the learner taking the exam.
exam_content_id string The primary identifier of the subsection that contains the exam.
exam_default_time_limit_mins number The standard amount of time, in minutes, that learners have to complete the exam.
exam_id number The primary identifier of the exam.
exam_name string The title of the exam in the course page, taken from the subsection title.
exam_is_active Boolean Indicates whether the special exam is currently available for learner attempts.
exam_is_practice_exam Boolean Indicates whether the special exam is a practice proctored exam.
exam_is_proctored Boolean Indicates whether the special exam is a proctored exam.
review_attempt_code string A generated identifier for the review of the exam attempt.
review_status string The result of the review. Values include Clean, Suspicious, and Rules Violation.
review_video_url string The URL of the proctored exam record.

12.3.7.10. edx.special_exam.proctored.attempt.started, edx.special_exam.practice.attempt.started, and edx.special_exam.timed.attempt.started

The server emits this event when a learner begins taking a proctored exam.

The event fields for this event are the same as the event fields for the edx.special_exam.{special exam type}.attempt.created event. For more information, see edx.special_exam.proctored.attempt.created, edx.special_exam.practice.attempt.created, and edx.special_exam.timed.attempt.created.

History: Added 01 Dec 2015.

12.3.7.11. edx.special_exam.proctored.attempt.submitted, edx.special_exam.practice.attempt.submitted, and edx.special_exam.timed.attempt.submitted

The server emits this event when a learner completes a proctored exam and submits it for grading and review.

The event fields for this event are the same as the event fields for the edx.special_exam.{special exam type}.attempt.created event. For more information, see edx.special_exam.proctored.attempt.created, edx.special_exam.practice.attempt.created, and edx.special_exam.timed.attempt.created.

History: Added 01 Dec 2015.

12.3.7.12. edx.special_exam.proctored.attempt.verified

The server emits this event when the review of a proctored exam is complete and the exam attempt is approved.

The event fields for this event are the same as the event fields for the edx.special_exam.proctored.attempt.created event. For more information, see edx.special_exam.proctored.attempt.created, edx.special_exam.practice.attempt.created, and edx.special_exam.timed.attempt.created.

History: Added 01 Dec 2015.

12.3.7.13. edx.special_exam.proctored.option-presented

The server emits this event when a learner views the starting page of a proctored exam. The starting page presents a link that learners can follow to begin taking the proctored exam.

The event fields for this event are the same as the event fields for the edx.special_exam.proctored.created event. For more information, see edx.special_exam.proctored.created, edx.special_exam.practice.created, and edx.special_exam.timed.created.

History: Added 01 Dec 2015.

12.3.8. Bookmark Events

This section includes descriptions of the following events.

Users can add bookmarks to course units for easy access in the future. The browser emits these events when users view, add, use, or delete bookmarks.

12.3.8.1. edx.bookmark.accessed

The browser emits this event when a user accesses a bookmark by selecting a link on the My Bookmarks page in the LMS.

event Member Fields:

Field Type Details
bookmark_id string The unique internal identifier for the bookmark.
component_type string The component type of the bookmarked XBlock. For more information, see Course Structure category Field.
component_usage_id string The unique usage identifier of the bookmarked XBlock. This ID corresponds to the courseware_studentmodule.module_id. For more information, see module_id.

Event Source: Browser

History: Added 4 Jan 2016.

12.3.8.2. edx.bookmark.added

The browser emits this event when a user bookmarks a page.

event Member Fields:

The edx.course.bookmark.added events include the same event member fields that are described for edx.bookmark.accessed. The following member fields serve the same purpose for accessed bookmarks, added bookmarks, and removed bookmarks.

  • bookmark_id
  • component_type
  • component_usage_id

The following event member field applies specifically to edx.course.bookmark.added and edx.course.bookmark.removed events.

Field Type Details
course_id string The identifier of the course that includes the bookmark.

Event Source: Browser

History: Added 4 Jan 2016.

12.3.8.3. edx.bookmark.listed

The browser emits this event when a user selects My Bookmarks in the LMS to list previously bookmarked pages. If the number of bookmarked events exceeds the defined page length, the browser emits an additional edx.course.bookmark.listed event each time the user navigates to a different page of results.

event Member Fields:

Field Type Details
bookmarks_count integer The number of pages a learner has bookmarked. If the course_id is specified, this value is the number of pages a learner has bookmarked in that course.
course_id string

The identifier of the course that includes the bookmark. This is an optional field that is present only if the value for list_type is per_course.

  • per_course indicates that all listed bookmarks are in a single course.
  • all_courses indicates that the listed bookmarks can be in any course that the learner is enrolled in.
list_type string Possible values are ‘per_course’ or ‘all_courses’.
page_number integer The current page number in the list of bookmarks.
page_size integer The number of bookmarks on the current page.

Event Source: Browser

History: Added 4 Jan 2016.

12.3.8.4. edx.bookmark.removed

The browser emits this event when a user removes a bookmark from a page.

event Member Fields:

The edx.course.bookmark.removed event includes the same event member fields that are described for edx.bookmark.accessed, and it also includes the course_id field that is described for edx.bookmark.added.

The edx.course.bookmark.removed event includes the following event member fields.

  • bookmark_id
  • component_type
  • component_usage_id
  • course_id

Event Source: Browser

History: Added 4 Jan 2016.

12.3.9. Notes Events

This section includes descriptions of the following events.

  • edx.course.student_notes.added
  • edx.course.student_notes.deleted
  • edx.course.student_notes.edited
  • edx.course.student_notes.notes_page_viewed
  • edx.course.student_notes.searched
  • edx.course.student_notes.used_unit_link
  • edx.course.student_notes.viewed

The Notes tool allows learners to highlight and make notes about what they read in the body of the course. Learners can also add tags to their notes to make their notes easier to find. Learners can access their notes either in the body of the course or on a Notes page.

For more information about notes, see Notes Tool in Building and Running an edX Course or Taking Notes in an edX Course in the EdX Learner’s Guide.

12.3.9.1. edx.course.student_notes.added

The browser emits edx.course.student_notes.added events when a learner adds a note in the course.

Event Source: Browser

History: Added 16 March 2016.

event Member Fields:

Field Type Details
component_usage_id string The unique identifier for the HTML component where the learner added the note. For more information about the components that a course includes, see Developing Course Components.
highlighted_content string The course text that the learner highlighted. The text is truncated at 8333 characters.
note_id string The ID of the note.
note_text string The text of the note. Notes are truncated at 8333 characters.
tags array of strings An array of the tags that the learner has specified. The text is truncated at 8333 characters. If the text is truncated, only complete tag names appear in the array. If the learner did not specify tags, the array is empty.
truncated array of strings

Lists the names of any truncated fields. Values can be note_text, highlighted_content, and tags. If no fields have been truncated, the array is empty.

The truncated field can also include the values old_note_text or old_tags if the text in either of those fields is truncated. These fields are found in the edx.course.student_notes.edited event.

12.3.9.2. edx.course.student_notes.deleted

The browser emits edx.course.student_notes.deleted events when a learner deletes a note in course.

Event Source: Browser

History: Added 16 March 2016.

event Member Fields:

The member fields in the edx.course.student_notes.deleted event are the same as the member fields in the edx.course.student_notes.added event.

12.3.9.3. edx.course.student_notes.edited

The browser emits edx.course.student_notes.edited events when a learner edits a note in course.

Event Source: Browser

History: Added 16 March 2016.

event Member Fields:

The edx.course.student_notes.edited event includes the following fields in addition to the member fields in the edx.course.student_notes.added event.

Field Type Details
old_note_text string The text of the note before the learner edited it. Notes are truncated at 8333 characters.
old_tags array of strings Content of the array of tags before the learner edited it. Text is truncated at 8333 characters. If the text is truncated, only complete tag names appear in the array. If the learner did not specify tags, the array is empty.

12.3.9.4. edx.course.student_notes.notes_page_viewed

The browser emits edx.course.student_notes.notes_page_viewed events when a learner accesses the Notes page or selects a different view on the page.

Event Source: Browser

History: Added 16 March 2016.

event Member Fields:

Field Type Details
view string The view on the Notes page that the learner selects. Possible values are Recent Activity and Search Results. Because “Recent Activity” is the default view, the browser always emits an edx.course.student_notes.notes_page_viewed event that has a view field value of “Recent Activity” the first time that the learner accesses the page.

12.3.9.5. edx.course.student_notes.searched

The browser emits edx.course.student_notes.searched events when a learner searches notes on the Notes page.

Event Source: Browser

History: Added 16 March 2016.

event Member Fields:

Field Type Details
number_of_results integer The number of search results.
search_string string The text of the search query.

12.3.9.7. edx.course.student_notes.viewed

The browser emits edx.course.student_notes.viewed events when a learner views one or more notes on a page in the course.

Event Source: Browser

History: Added 16 March 2016.

event Member Fields:

Field Type Details
notes array A list of the note_id values for any currently visible notes. Learners can add multiple notes to the same text. Contains the member field note_id, which contains the unique identifier for the note.

12.3.10. Library Interaction Events

This section includes descriptions of the following events.

Course teams in an organization can collaboratively contribute to libraries of content, such as a collection of problem components for a particular subject. Libraries are created and maintained separately from courses so that their content can be used in different courses.

In a course outline, course teams can include randomized content block components that reference a library and deliver its content to students. In a randomized content block component, the course team defines how many of the library components to deliver to each student.

For more information, see Working with Content Libraries.

12.3.10.1. edx.librarycontentblock.content.assigned

The server emits an edx.librarycontentblock.content.assigned event the first time that content from a randomized content block is delivered to a user. The edx.librarycontentblock.content.assigned event identifies the components delivered from the library to a user.

Additional edx.librarycontentblock.content.assigned events can also be emitted if the course team makes a change that results in an increase in the number of components that the randomized content block delivers. After such a change, the randomized content block delivers more components to any user who revisits it after that change. For those users, the edx.librarycontentblock.content.assigned event identifies the complete set of components delivered from the library and also the components that were delivered for the first time.

Event Source: Server

History Added 18 Mar 2015.

event Member Fields:

Field Type Details
added list Lists the library components that were delivered to the user for the first time. The content of this field is different from the content of the result field only if the user revisited the randomized content block and it delivered additional components from the library.
location string Identifies the randomized content block component.
max_count number The Count specified by a course team member in Studio. Defines the number of library components to deliver. This number is greater than the number of library components listed by the result field only when the library has too few matching blocks available.
previous_count number The number of components assigned to this student before this event. The first time the user views the randomized content block, this value is 0.
result list

Lists all of the library components delivered to the user.

  • descendants, when present, is a list that identifies each part of a library component that contains multiple parts (the children of an XBlock with children).

  • original_usage_key and original_usage_version identify the component in the library.

    When students attempt a problem component delivered by a randomized content block, the resulting problem events also reference the original_usage_key and original_usage_version in context.module member fields. See context Field.

  • usage_key identifies the location of this component in the course. This value identifies a child of the randomized content block component.

To identify a component consistently within a course, you can use either usage_key or original_usage_key as a consistent identifier. To identify components across courses, use orignal_usage_key.

12.3.10.2. edx.librarycontentblock.content.removed

The server emits an edx.librarycontentblock.content.removed event when a user revisits a randomized content block and one or more of the components that were previously delivered to that user can no longer be delivered.

  • If components are removed from the library and the course team resynchronizes the randomized content block to the library, the server emits an edx.librarycontentblock.content.removed event if a user who was previously assigned one of those components revisits the randomized content block or accesses the progress page.

  • If the course team changes settings for the randomized content block so that fewer or different components are allowed.

    For example, the course team reduces the number of library components to deliver or specifies a different type of problem to deliver.

Event Source: Server

History Added 18 Mar 2015.

event Member Fields:

The edx.librarycontentblock.content.removed events include the following event member fields. These fields serve the same purpose for events of this type as for the edx.librarycontentblock.content.assigned events.

  • location
  • max_count
  • previous_count
  • result

The following additional event member fields apply specifically to edx.librarycontentblock.content.removed events.

Field Type Details
reason string

‘overlimit’ if a course team member reduces the Count of library components to deliver.

‘invalid’ if the component is no longer included in the library, or no longer matches the settings specified for the randomized content block.

removed list Identifies the components that are no longer delivered to this user. This field contains the same member fields as the event.result field for edx.librarycontentblock.content.assigned events.

12.3.11. Discussion Forum Events

This section includes descriptions of the following events.

The server emits discussion forum events when a user interacts with a course discussion. This section presents the discussion forum events alphabetically. However, several of these events have hierarchical or sequential relationships.

  • When a user creates a new thread, such as a student asking a question, the server emits an edx.forum.thread.created event.
  • When a user responds to a thread, such as another student answering the question, the server emits an edx.forum.response.created event.
  • When a user adds a comment to a response, such as a course team member adding a clarification to the student answer, the server emits an edx.forum.comment.created event.

These events are emitted and included in daily event logs in addition to the MongoDB discussion forums database data that is included in the weekly database data files. For information about the discussion forums database, see Discussion Forums Data.

If a thread, response, or comment was part of a team discussion within a course, a team_id field is also included in events for creation or voting interactions. The team_id identifies the team that triggered the discussion event. For more information about events for teams, see Teams-Related Events.

12.3.11.1. edx.forum.comment.created

Users create a comment about a response by entering text and then submitting the contributions. When these actions are complete, the server emits an edx.forum.comment.created event.

Component: Discussion

Event Source: Server

History: Added 5 Mar 2015.

event Member Fields:

The edx.forum.comment.created events include many of the same event member fields that are described for edx.forum.thread.created and edx.forum.response.created events. The following member fields serve the same purpose for comments as they do for threads or responses.

  • body
  • commentable_id
  • discussion
  • id
  • options
  • team_id
  • truncated
  • url
  • user_course_roles
  • user_forums_roles
Field Type Details
response object Contains a member id field with the unique identifier of the response that the user added this comment to.

12.3.11.2. edx.forum.response.created

Users create a reply to a post by clicking Add a Response and then submitting their contributions. When these actions are complete, the server emits an edx.forum.response.created event.

Component: Discussion

Event Source: Server

History: Added 5 Mar 2015.

event Member Fields:

The edx.forum.response.created events include many of the same event member fields that are described for edx.forum.thread.created events. The following member fields serve the same purpose for responses as they do for threads.

  • body
  • commentable_id
  • id
  • options
  • team_id
  • truncated
  • url
  • user_course_roles
  • user_forums_roles

The following additional event member field applies specifically to edx.forum.response.created events.

Field Type Details
discussion object

Contains a member id field with the unique identifier of the thread that the user responded to.

Also present for edx.forum.comment.created events.

12.3.11.3. edx.forum.response.voted

Users can indicate interest in a response by selecting a “Vote” icon. The “Vote” icon is a toggle, so users can also clear a vote made previously. When either of these actions is complete, the server emits an edx.forum.response.voted event.

In these events, the user who voted for the response is identified in the username and context.user_id fields, and the user who originally posted the thread is identified in the event.target_username field.

Component: Discussion

Event Source: Server

History: Added 1 Dec 2015.

event Member Fields:

The edx.forum.response.voted events include the same event member fields as edx.forum.thread.voted events. The following member fields serve the same purpose for votes on a response as they do for votes on a thread.

  • category_id
  • category_name
  • commentable_id
  • id
  • target_username
  • team_id
  • undo_vote
  • url
  • user_course_roles
  • user_forums_roles
  • vote_value

12.3.11.4. edx.forum.searched

After a user executes a text search in the navigation sidebar of the course Discussion page, the server emits an edx.forum.searched event.

Component: Discussion

Event Source: Server

History: Added 16 May 2014. The corrected_text field was added 5 Jun 2014. The group_id field was added 7 October 2014.

event Member Fields:

Field Type Details
corrected_text string

A re-spelling of the query, suggested by the search engine, which was automatically substituted for the original one.

This happens only when there are no results for the original query, but the index contains matches for a similar term or phrase.

Otherwise, this field is null.

group_id number

The numeric ID of the cohort to which the user’s search is restricted, or null if the search is not restricted in this way.

In a course with cohorts enabled, a student’s searches will always be restricted to the student’s cohort.

Discussion admins, moderators, and Community TAs in such a course can search all discussions without specifying a cohort, which leaves this field null, or they can specify a single cohort to search.

page number

Results are returned in sets of 20 per page.

Identifies the page of results requested by the user.

query string The text entered into the search box by the user.
total_results number The total number of results matching the query.

12.3.11.5. edx.forum.thread.created

Users create a new top-level thread, also known as a post, by clicking New Post and then submitting their contributions. When these actions are complete, the server emits an edx.forum.thread.created event.

Component: Discussion

Event Source: Server

History: Added 5 Mar 2015.

event Member Fields:

Field Type Details
anonymous Boolean

Applies only to courses that allow discussion posts that are anonymous to all other users.

‘true’ only if the user selected the post anonymously check box.

anonymous_to_peers Boolean

Applies only to courses that allow discussion posts that are anonymous to other students. The username of the thread creator is visible only to users who have discussion management privileges.

‘true’ only if the user selected the post anonymously to classmates check box.

body string

The text supplied for the new post.

Also present for edx.forum.response.created and edx.forum.comment.created events.

category_id string

Identifier for the specific discussion component or top-level, course-wide discussion.

Also present for edx.forum.response.created, edx.forum.comment.created, edx.forum.response.voted, and edx.forum.thread.voted events.

category_name string

The display name for the specific discussion component or top-level, course-wide discussion.

Also present for edx.forum.response.created, edx.forum.comment.created, edx.forum.response.voted, and edx.forum.thread.voted events.

commentable_id string

Identifier for the specific discussion component or top-level, course-wide discussion. Duplicates the category_id.

Also present for edx.forum.response.created and edx.forum.comment.created events.

group_id string The numeric ID of the cohort to which the contribution is restricted, or null if the contribution is not restricted to a specific cohort.
id string

A unique identifier for this forum contribution.

Also present for edx.forum.response.created and edx.forum.comment.created events.

options object

Contains the followed Boolean, which identifies whether the user elected to track the responses that others make to this post.

Also present for edx.forum.response.created and edx.forum.comment.created events.

team_id string If the thread is part of a team discussion within a course, this field identifies the team that the thread was created in. For more information about events for teams, see Teams-Related Events.
thread_type string The person who creates the thread specifies either ‘discussion’ or ‘question’ to characterize the purpose of the post.
title string The brief descriptive text supplied to identify the post.
truncated Boolean

‘true’ only if the post was longer than 2000 characters, which is the maximum included in the event.

Also present for edx.forum.response.created and edx.forum.comment.created events.

url string

The escaped URL of the page the user was visiting when this event was emitted.

Also present for edx.forum.response.created and edx.forum.comment.created events.

user_course_roles array

Identifies the course-level ‘Instructor’ (that is, Admin) or ‘Staff’ privilege assigned to the user. No value is reported for students.

Also present for edx.forum.response.created and edx.forum.comment.created events.

user_forums_roles array

Identifies a user who does not have discussion management privileges as a ‘Student’. Identifies users who have discussion management privileges as a course ‘Community TA’, ‘Moderator’, or ‘Administrator’.

Also present for edx.forum.response.created and edx.forum.comment.created events.

12.3.11.6. edx.forum.thread.voted

Users can indicate interest in a thread by selecting a “Vote” icon. The “Vote” icon is a toggle, so users can also clear a vote made previously. When either of these actions is complete, the server emits an edx.forum.thread.voted event.

In these events, the user who voted for the thread is identified in the username and context.user_id fields, and the user who originally posted the thread is identified in the event.target_username field.

Component: Discussion

Event Source: Server

History: Added 1 Dec 2015.

event Member Fields:

The edx.forum.thread.voted events include many of the same event member fields that are described for edx.forum.thread.created events. The following member fields serve the same purpose for votes on a thread as they do for thread creation.

  • category_id
  • category_name
  • commentable_id
  • id
  • team_id
  • url
  • user_course_roles
  • user_forums_roles

The following additional event member fields apply to edx.forum.thread.voted events.

Field Type Details
target_username string

Identifies the user who originally posted the thread.

Also present for edx.forum.response.voted events, where it indicates the user who originally made the response.

undo_vote Boolean

‘true’ if the user clears selection of the “Vote” icon made previously.

‘false’ if the user selects the “Vote” icon.

Also present for edx.forum.response.voted events.

vote_value string

Set to ‘up’ for all edx.forum.thread.voted events. In the user interface, users can only vote for (“up vote”) a thread or clear a previous vote. They cannot vote against (“down vote”) a thread.

Also present for edx.forum.response.voted events

12.3.12. Open Response Assessment Events

This section includes descriptions of the following events.

In an open response assessment, learners review a question and then submit a text response and, optionally, an image, .pdf, or other file. To evaluate their own and one or more other learners’ responses to the questions, learners use a scoring rubric designed by the course team. Course team members with staff privileges can also evaluate learners’ responses, either in a staff assessment step included in the assignment, or by overriding an existing assignment score. For more information about open response assessments, see Open Response Assessments.

For more information about the SQL tables that store data for open assessment problems, see Open Response Assessment Data.

Component: Open Response Assessments

History: The open response assessment feature was released in August 2014; limited release of this feature began in April 2014. The ability for course team members to either include a staff assessment step in the assignment, or to perform a staff override grade was added in January 2016.

12.3.12.1. openassessmentblock.get_peer_submission

After learners submit their own responses for evaluation, they use the scoring rubric to evaluate the responses of other course participants. The server emits this event when a response is delivered to a learner for evaluation.

Event Source: Server

History: Added 3 April 2014.

event Member Fields:

Field Type Details
course_id string The identifier of the course that includes this assessment.
item_id string The locator string that identifies the problem in the course.
requesting_student_id string The course-specific anonymized user ID of the learner who retrieved the response for peer assessment.
submission_returned_uuid string

The unique identifier of the response that was retrieved for assessment.

If no assessment is available, this is set to “None”.

12.3.12.2. openassessmentblock.get_submission_for_staff_grading

If a staff assessment step exists in the open response assessment, a member of the course staff evaluates a learner’s response using the same rubric that is used for self and peer assessments.

When a course team member retrieves a learner’s response for grading in the staff assessment step, the server emits an openassessmentblock.get_submission_for_staff_grading event.

Event Source: Server

History: Added 20 Jan 2016.

event Member Fields:

This event type includes the same context and event member fields as the openassessmentblock.get_peer_submission event and also includes the following event member fields.

Field Type Details
requesting_staff_id string The course-specific anonymized user ID of the course team member who is retrieved the response for grading.
type string Indicates the type of staff grading that is being performed. Currently, the only valid value is “full-grade”, which indicates that staff grading is being done in a staff assessment step.

12.3.12.3. openassessmentblock.peer_assess

The server emits this event when a learner submits an assessment of a peer’s response.

Event Source: Server

History: Added 3 April 2014.

event Member Fields:

Field Type Details
feedback string The learner’s comments about the submitted response.
parts: [criterion, option, feedback] array

The parts field contains member fields for each criterion in the rubric, the option that the learner selected for it, and any feedback comments that the learner supplied.

These member fields are repeated in an array to include all of the rubric’s criteria.

  • criterion (object) contains points possible and name member fields.
  • option (string).
  • feedback (string).

When the only criterion in the rubric is learner feedback, points possible is 0 and the option field is not included.

rubric object This field contains the member field contenthash, which identifies the rubric that the learner used to assess the response.
scored_at datetime Timestamp for when the assessment was submitted.
scorer_id string The course-specific anonymized user ID of the learner who submitted this assessment.
score_type string Possible values are “PE” for a peer assessment, “SE” for a self assessment, or “ST” for a staff assessment.
submission_uuid string The unique identifier for the submitted response.

12.3.12.4. openassessmentblock.self_assess

The server emits this event when a learner submits a self-assessment of her own response.

Event Source: Server

History: Added 3 April 2014.

event Member Fields:

This event type includes the same context and event member fields as the openassessmentblock.peer_assess event.

12.3.12.5. openassessmentblock.staff_assess

The server emits this event when a course team member submits an assessment of a learner’s response.

Event Source: Server

History: Added 20 January 2016.

event Member Fields:

This event type includes the same context and event member fields as the openassessmentblock.peer_assess event.

In addition, this event type includes this event member field.

Field Type Details
type string Indicates the type of staff grading that is being performed. Possible values are “regrade” in the case of a grade override, or “full-grade” in the case of an included staff assessment step.

12.3.12.6. openassessmentblock.submit_feedback_on_assessments

The server emits this event when a learner submits a suggestion, opinion, or other feedback about the assessment process.

Event Source: Server

History: Added 3 April 2014.

event Member Fields:

Field Type Details
feedback_text string The learner’s comments about the assessment process.
options array The label of each check box option that the learner selected to evaluate the assessment process.
submission_uuid string The unique identifier of the feedback.

12.3.12.7. openassessmentblock.create_submission

The server emits this event when a learner submits a response. The same event is emitted when a learner submits a response for peer assessment or for self assessment.

Event Source: Server

History: Added 3 April 2014.

event Member Fields:

Field Type Details
answer object

This field contains a text (string) member field for the response.

For responses that also include an image, .pdf, or other file, this field contains a file_upload_key (string) member field with the AWS S3 key that identifies the location of the uploaded file on the Amazon S3 storage service. This key is provided for reference only.

attempt_number number This value is currently always set to 1.
created_at datetime Timestamp for when the learner submitted the response.
submitted_at datetime Timestamp for when the learner submitted the response. This value is currently always the same as created_at.
submission_uuid string The unique identifier of the response.

12.3.12.8. openassessmentblock.save_submission

The server emits this event when a learner saves a response. Learners can save responses before they submit them for assessment.

Event Source: Server

History: Added 3 April 2014.

event Member Fields:

Field Type Details
saved_response object

This field contains a text (string) member field for the response.

For responses that also include an image, .pdf, or other file, this field contains a file_upload_key (string) member field with the AWS S3 key that identifies the location of the uploaded file on the Amazon S3 storage service. This key is provided for reference only.

12.3.12.9. openassessment.student_training_assess_example

The server emits this event when a learner submits an assessment for an example response within a training step. To assess the example, the learner uses a scoring rubric provided by the course team. These events record the options that the learner selected to assess the example, and identify any criteria that the learner scored differently than the course team.

Event Source: Server

History: Added 6 August 2014.

event Member Fields:

Field Type Details
corrections object A set of name/value pairs that identify criteria for which the learner selected a different option than the course team, in the format criterion_name: course-team-defined_option_name.
options_selected object A set of name/value pairs that identify the option that the learner selected for each criterion in the rubric, in the format 'criterion_name': 'option_name'.
submission_uuid string The unique identifier of the response. Identifies the learner who is undergoing training.

12.3.12.10. openassessment.upload_file

The browser emits this event when a learner successfully uploads an image, .pdf, or other file as part of a response. Learners complete the upload process before they submit the response.

Event Source: Browser

History: Added 6 August 2014.

event Member Fields:

Field Type Details
fileName string The name of the uploaded file, as stored on the learner’s client machine.
fileSize number The size of the uploaded file in bytes. Reported by the learner’s browser.
fileType string The MIME type of the uploaded file. Reported by the learner’s browser.

12.3.13. Drag and Drop Events

This section describes events emitted by the drag and drop problem XBlock. The drag and drop problem XBlock presents a background image and a set of draggable items. Learners select an item and move it into a target zone on the background image. Drag and drop problems can also require that learners enter number input for each item that they drag into a target zone. A drag and drop problem is complete when each draggable item that matches a target zone is correctly placed on its zone.

For more information about how course teams set up a drag and drop problem, see Drag and Drop Problem.

This section presents the drag and drop events alphabetically. Typically, an interaction with these problems begins with a edx.drag_and_drop_v2.loaded event.

History: Added 24 Feb 2016.

12.3.13.1. edx.drag_and_drop_v2.feedback.closed

The server emits this event when a pop up feedback message closes in a drag and drop problem.

Event Source: Server

context Member Fields:

This event type includes the common context.module member field.

event Member Fields:

Field Type Details
content string The text of the success or error feedback message in the pop up.
manually Boolean ‘true’ if the learner manually closed the pop up dialog box, ‘false’ if the browser closed the dialog box.
truncated Boolean ‘true’ only if the content was longer than 12,500 characters, which is the maximum included in the event.

12.3.13.2. edx.drag_and_drop_v2.feedback.opened

The server emits this event when a pop up feedback message opens in a drag and drop problem.

Event Source: Server

context Member Fields:

This event type includes the common context.module member field.

event Member Fields:

The edx.drag_and_drop_v2.feedback.opened events include the following event member fields. These fields serve the same purpose for events of this type as for edx.drag_and_drop_v2.feedback.closed events.

  • content
  • truncated

12.3.13.3. edx.drag_and_drop_v2.item.dropped

The server emits this event when a learner releases a draggable item into a target zone in a drag and drop problem. For problems that also require a number input, this event is also emitted after the learner submits the number input.

Event Source: Server

context Member Fields:

This event type includes the common context.module member field.

event Member Fields:

Field Type Details
input integer The number input value entered by the learner.
item_id integer The index assigned to the draggable item selected by the learner.
is_correct Boolean For problems that do not require a number input, ‘true’ if the item is in the correct zone, or ‘false’ if it is not in a correct zone. For problems that require a number input, ‘true’ only if both the item is dropped in the correct zone and the number input is correct.
is_correct_location Boolean ‘true’ if the draggable item is in the correct target zone. ‘false’ if the item is not in the correct zone. For problems that do not require a number input, is_correct and is_correct_location are equivalent.
location string The text identifier for the target zone in which the learner placed the item.

12.3.13.4. edx.drag_and_drop_v2.item.picked_up

The server emits this event when a learner selects a draggable item in a drag and drop problem.

Event Source: Server

context Member Fields:

This event type includes the common context.module member field.

event Member Fields:

Field Type Details
item_id integer The index assigned to the draggable item selected by the learner.

12.3.13.5. edx.drag_and_drop_v2.loaded

The server emits this event after a drag and drop problem is shown in the LMS.

Event Source: Server

context Member Fields:

This event type includes the common context.module member field.

event Member Fields: None

12.3.14. Peer Instruction Events

This section describes events emitted by the peer instruction XBlock. The peer instruction XBlock presents a multiple choice question and a set of possible answer choices. Learners select one of the choices and also explain why they selected that choice. After learners submit a response, the XBlock presents a set of the answers selected by other learners, and their explanations, for review. Learners then have a second opportunity to select an answer and provide a revised explanation.

For more information, see Peer Instruction Tool.

History: Added 15 Dec 2015.

12.3.14.1. ubc.peer_instruction.accessed

The server emits this event when a peer instruction question and its set of answer choices is shown to a learner.

Event Source: Server

event Member Fields: None

12.3.14.2. ubc.peer_instruction.original_submitted

The server emits this event when learners submit their initial responses. These events record the answer choice the learner selected and the explanation given for why that selection was made.

Event Source: Server

event Member Fields:

Field Type Details
answer integer The index assigned to the answer choice selected by the learner.
rationale string The text entered by the learner to explain why they selected that answer choice.
truncated Boolean ‘true’ only if the rationale was longer than 12,500 characters, which is the maximum included in the event.

12.3.14.3. ubc.peer_instruction.revised_submitted

The server emits this event when learners submit their revised responses. These events record the answer choice selected by the learner and the explanation for why that selection was made.

Event Source: Server

event Member Fields:

The ubc.peer_instruction.revised_submitted events include the following event member fields. These fields serve the same purpose for events of this type as for ubc.peer_instruction.original_submitted events.

  • answer
  • rationale
  • truncated

12.3.15. Poll and Survey Events

This section describes events emitted by the poll and survey XBlocks.

History: Added 8 Jul 2015.

12.3.15.1. xblock.poll.submitted

The server emits an xblock.poll.submitted event each time a user submits a response to a poll.

Event Source: Server

event Member Fields:

Field Type Details
url_name string The unique location identifier for the poll XBlock.
choice string The unique internal identifier for the response that the user submitted.

12.3.15.2. xblock.poll.view_results

The server emits an xblock.poll.view_results event when a tally of the responses to a poll is displayed to a user. For a poll that has the Private Results option set to False, the tally appears after a user submits a response.

Event Source: Server

event Member Fields: None

12.3.15.3. xblock.survey.submitted

The server emits an xblock.survey.submitted event each time a user submits responses to a survey.

Event Source: Server

event Member Fields:

Field Type Details
url_name string The unique location identifier for the survey XBlock.
choices object Name/value pairs that identify each question in the survey and the responses that the user selected, in the format "question_name": "'response_name".

12.3.15.4. xblock.survey.view_results

The server emits an xblock.survey.view_results event when a matrix of survey response percentages is displayed to a user. For surveys that have the Private Results option set to False only, the matrix appears after a user submits survey responses.

Event Source: Server

event Member Fields: None

12.3.16. Course Content Completion Event

This section describes the event emitted by the completion XBlock, which adds a toggle control in course content. This toggle allows learners to mark the associated section of course content as complete.

EdX recommends using the completion XBlock primarily for progress tracking of ungraded activities, such as reading assigned texts, watching videos, or participating in course discussions.

Learners are not limited in the number of times that they can toggle the control between the default incomplete state and the completed state. For more information, see Completion Tool in the Building and Running an edX Course guide.

History: Added 27 Jan 2016.

12.3.16.1. edx.done.toggled

Both the browser and the server emit the edx.done.toggled event when the control added by the Completion XBlock is toggled. The event_source field indicates whether the event was emitted by the client or the server.

event Member Fields:

Field Type Details
done Boolean Indicates the state of the Completion toggle at the time the event is emitted. Possible values are true (a learner has completed the associated content) and false (a learner has not completed the associated content).

12.3.17. Third-Party Content Events

This section includes descriptions of the following events.

EdX courses can include components that present content that is hosted by a third party. The server emits events when users interact with the third-party content.

12.3.17.1. Google Component Events

Course teams use the Google Calendar and Google Drive Files tools in Studio to embed Google calendars and Google drive files, such as documents, spreadsheets, and images, in a course. When users interact with the files in the LMS, the server emits the following events.

For more information about these tools, see Google Calendar Tool or Google Drive Files Tool.

12.3.17.1.1. edx.googlecomponent.calendar.displayed

The server emits an edx.googlecomponent.calendar.displayed event when a Google Calendar component is shown in the LMS.

Event Source: Server

History: Added 5 Mar 2015.

event Member Fields:

Field Type Details
displayed_in string

‘iframe’ for Google Calendars and for Google Drive files of other types.

‘img’ for Google Drive image files.

url string The URL of the image file or of the file loaded by the iFrame.
12.3.17.1.2. edx.googlecomponent.document.displayed

The server emits an edx.googlecomponent.document.displayed event when a Google Drive file, such as a document, spreadsheet, or image, is shown in the LMS.

Event Source: Server

History: Added 5 Mar 2015.

event Member Fields:

The edx.googlecomponent.document.displayed events include the following event member fields. These fields serve the same purpose for events of this type as for the edx.googlecomponent.calendar.displayed events.

  • displayed_in
  • url

12.3.17.2. Oppia Exploration Events

Course teams can embed short, interactive tutorials created using Oppia in their courses with the Oppia exploration tool. When users interact with the Oppia tutorials, called explorations, in the LMS, the server emits the following events.

For more information about adding Oppia explorations to a course, see Oppia Exploration Tool.

12.3.17.2.1. oppia.exploration.completed

The server emits an oppia.exploration.completed event when a user completes an interaction with an Oppia exploration component. Oppia explorations do not emit grading events.

Event Source: Server

History: Added 27 Oct 2015.

event Member Fields:

The oppia.exploration.completed events include the following event member fields. These fields serve the same purpose for events of this type as for the oppia.exploration.state.changed events.

  • exploration_id
  • exploration_version
12.3.17.2.2. oppia.exploration.loaded

The server emits an oppia.exploration.loaded event when an Oppia exploration component is shown in the LMS.

Event Source: Server

History: Added 27 Oct 2015.

event Member Fields:

The oppia.exploration.loaded events include the following event member fields. These fields serve the same purpose for events of this type as for the oppia.exploration.state.changed events.

  • exploration_id
  • exploration_version
12.3.17.2.3. oppia.exploration.state.changed

The server emits an oppia.exploration.state.changed event when a user interacts with an Oppia exploration component by submitting an answer. Answers are not incorrect or correct. All answer submissions change the state of the exploration.

Event Source: Server

History: Added 27 Oct 2015.

event Member Fields:

Field Type Details
exploration_id string The unique identifier of the Oppia exploration.
exploration_version string The version number for the Oppia exploration.
new_state_name string The name of the state that the exploration was changed to by the submitted answer.
old_state_name string The name of the state the exploration was in when the user submitted an answer.

12.3.17.3. Microsoft Office Mix Events

Course teams can use Office Mix to turn Microsoft PowerPoint presentations in to interactive online lessons, called mixes. They can then use the Office Mix tool in Studio to include mixes in a course. When users interact with the Office Mix player in the LMS, the server emits the following events.

For more information about adding mixes to a course, see Office Mix Tool.

12.3.17.3.1. microsoft.office.mix.loaded

The server emits a microsoft.office.mix.loaded event when a mix is fully loaded and ready to play in the Office Mix player in the LMS.

Event Source: Server

History: Added 1 Dec 2015.

event Member Fields:

Field Type Details
duration number The total length of the mix, in seconds.
total_slides number The total number of slides in the mix.
url string The URL of the embedded mix, in the format “https://mix.office.com/embed/10g8h9rvi1yg8”.
12.3.17.3.2. microsoft.office.mix.paused

The server emits a microsoft.office.mix.paused event when a user selects pause for an Office Mix.

Event Source: Server

History: Added 1 Dec 2015.

event Member Fields:

The microsoft.office.mix.paused events include the following event member field. This field serves the same purpose for events of this type as for the microsoft.office.mix.loaded events.

  • url

The following additional event member fields apply specifically to microsoft.office.mix.paused events.

Field Type Details
current_slide number The slide presented to the user when the user chose to pause the mix.
current_time number The relative time in the video, in seconds, when the user chose to pause the mix.
12.3.17.3.3. microsoft.office.mix.played

The server emits a microsoft.office.mix.played event when a user selects play for an Office Mix.

Event Source: Server

History: Added 1 Dec 2015.

event Member Fields:

The microsoft.office.mix.played events include the following event member fields. These fields serve the same purpose for events of this type as for the microsoft.office.mix.paused events.

  • current_slide
  • current_time
  • url
12.3.17.3.4. microsoft.office.mix.slide.loaded

The server emits a microsoft.office.mix.slide.loaded event each time the Office Mix player changes the slide that is presented to the user.

event Member Fields:

The microsoft.office.mix.slide.loaded events include the following event member field. This field serves the same purpose for events of this type as for the microsoft.office.mix.loaded events.

  • url

The following additional event member field applies specifically to microsoft.office.mix.slide.loaded events.

Field Type Details
slide number The slide presented to the user.
12.3.17.3.5. microsoft.office.mix.stopped

The server emits an microsoft.office.mix.stopped event when the Office Mix player reaches the end of a mix and automatically stops.

Event Source: Server

History: Added 1 Dec 2015.

event Member Fields:

The microsoft.office.mix.stopped events include the following event member field. This field serves the same purpose for events of this type as for the microsoft.office.mix.loaded events.

  • url

12.3.18. Testing Events for Content Experiments

This section includes descriptions of the following events.

Course authors can configure course content to present modules that contain other modules. Content experiments, also known as A/B or split tests, use this structure. For example, a parent module can include two child modules that contain content that differs in some way for comparison testing.

  • Internally, a partition defines the type of experiment: comparing the effectiveness of video alone to text alone, for example. A course can include any number of modules that have the same partition or experiment type.
  • For each partition, students are randomly assigned to a group. The group determines which content, either video or text in this example, is shown by every module with that partitioning.
  • Students are assigned to groups randomly. Assignment to a group takes place when student navigation through the course requires data from that module. For example, one student is assigned to a group when he visits the course progress page, while another student is assigned to a group when she visits a course component that is the parent module of a content experiment. Based on this random group assignment, the content of just one of the two child modules is shown to the student.
  • For investigations into which students in each group actually interacted with tested content, review the events for the behavior you want to learn about. For example, review the students’ play_video , textbook.pdf.page.navigated, or problem_check events.

The events that follow apply to modules that are set up to randomly assign students to groups so that different content can be shown to the different groups.

For more information about how course teams add content experiments to their courses, see Add Content Experiments to Your Course.

History: These events were added on 12 Mar 2014.

12.3.18.1. xmodule.partitions.assigned_user_to_partition

When a student views a module that is set up to test different child modules, the server checks the user_api_usercoursetag table for the student’s assignment to the relevant partition, and to a group for that partition.

  • The partition ID is the user_api_usercoursetag.key.
  • The group ID is the user_api_usercoursetag.value.

If the student does not yet have an assignment, the server emits an xmodule.partitions.assigned_user_to_partition event and adds a row to the user_api_usercoursetag table for the student. See Columns in the user_api_usercoursetag Table.

Note

After this event is emitted, the common context field in all subsequent events includes a course_user_tags member field with the student’s assigned partition and group.

Component: Split Test

Event Source: Browser

event Member Fields:

Field Type Details
group_id number Identifier of the group.
group_name string Name of the group.
partition_id number Identifier for the partition, in the format xblock.partition_service.partition_ID where ID is a number.
partition_name string Name of the partition.

12.3.18.2. xblock.split_test.child_render

When a student views a module that is set up to test different content using child modules, the server emits a xblock.split_test.child_render event to identify the child module that was shown to the student.

Component: Split Test

Event Source: Server

event Member Fields:

Field Type Details
child_id string

ID of the module that was displayed to the student.

History: Renamed on 16 Oct 2014 from child-id to child_id.

12.3.19. Student Cohort Events

This section includes descriptions of the following events.

For information about including student cohorts in a course, see Using Cohorts in Your Courses in the Building and Running an edX Course guide.

12.3.19.1. edx.cohort.created

When a course team or the system creates a cohort, the server emits an edx.cohort.created event. Cohorts can be created manually by members of the course team. The system automatically creates the default cohort and any cohorts that are defined by the auto_cohort_groups advanced setting when they are needed (for example, when a student is assigned to one of those cohorts).

Additional events are emitted when members of the course team interact with the Instructor Dashboard to create a cohort. See Course Team Cohort Events.

Event Source: Server

History Added 7 Oct 2014.

event Member Fields:

Field Type Details
cohort_id number The numeric ID of the cohort.
cohort_name string The display name of the cohort.

12.3.19.2. edx.cohort.user_added

When a user is added to a cohort, the server emits an edx.cohort.user_added event. Members of the course team can add users to cohorts individually or by uploading a .csv file of student cohort assignments. The system automatically adds a user to the default cohort or a cohort included in the course’s auto_cohort_groups setting if a user who has not yet been assigned to a cohort accesses course content.

Additional events are emitted when members of the course team interact with the Instructor Dashboard to add a user to a cohort. See Course Team Cohort Events.

Event Source: Server

History Added 7 Oct 2014.

event Member Fields:

Field Type Details
cohort_id number The numeric ID of the cohort.
cohort_name string The display name of the cohort.
user_id number The numeric ID (from auth_user.id) of the added user.

12.3.19.3. edx.cohort.user_removed

When a course team member changes the cohort assignment of a user on the Instructor Dashboard, the server emits an edx.cohort.user_removed event.

Event Source: Server

History Added 7 Oct 2014.

event Member Fields:

Field Type Details
cohort_id number The numeric ID of the cohort.
cohort_name string The display name of the cohort.
user_id number The numeric ID (from auth_user.id) of the removed user.

12.3.21. Certificate Events

This section includes descriptions of the events related to certificates, which are awarded to qualified learners when they complete a course.

12.3.21.1. edx.certificate.created

When a certificate is generated, a record is created in the certificates_generatedcertificate table, triggering an edx.certificate.created event. For details, see Columns in the certificates_generatedcertificate Table.

Event Source: Server

History Added 2 September 2015.

event Member Fields:

Field Type Details
certificate_id string The verify.uuid value from the certificates_generatedcertificate table. This string appears at the bottom of each certificate.
certificate_url string The URL for the certificate web page.
course_id string The course for which this certificate is issued.
enrollment_mode string The course enrollment mode associated with this certificate.
generation_mode string Indicates whether this certificate was generated for all learners in a course by a batch command, or whether a learner generated her own certificate. Possible values are “batch” and “self”.
user_id number The numeric ID of the learner who earned this certificate.

12.3.21.2. edx.certificate.shared

When a learner shares the URL for her certificate on a social media web site, the server emits an edx.certificate.shared event.

Event Source: Browser

History Added 2 September 2015.

event Member Fields:

The edx.certificate.shared event includes many of the same event member fields that are described for the edx.certificate.created event. The following member fields serve the same purpose for edx.certificate.shared as they do for edx.certificate.created.

  • certificate_id
  • certificate_url
  • course_id
  • enrollment_mode
  • user_id

The following additional event member field applies specifically to edx.certificate.shared events.

Field Type Details
social_network string The social network to which the certificate is shared, such as “LinkedIn”, “Facebook”, or “Twitter”.

12.3.21.3. edx.certificate.evidence_visited

When a learner shares her certificates on social network sites such as LinkedIn, and the link back to the certificate is followed by some visitor to that social network site, the server emits an edx.certificate.evidence_visited event.

Event Source: Browser

History Added 2 September 2015.

event Member Fields:

The edx.certificate.evidence_visited event includes all of the same event member fields that are described for the edx.certificate.created event. The following member fields serve the same purpose for edx.certificate.evidence_visited as they do for edx.certificate.created.

  • certificate_id
  • certificate_url
  • course_id
  • enrollment_mode
  • user_id

The following additional event member fields apply specifically to edx.certificate.evidence_visited events.

Field Type Details
social_network string The social network to which the certificate is shared, such as “LinkedIn”, “Facebook”, or “Twitter”.
source_url string The URL of the web site where the certificate evidence link was selected. This URL is the same as the URI in the context.referer field. For details, see referer field.

12.3.22. Open Response Assessment Events (Deprecated)

The events described in this section recorded interactions with the prototype implementation of open response assessment (ORA 1) problem types. EdX deprecated this feature in May 2014, and removed the ability to add a new ORA 1 assignment to courses in December 2014.

For more information about events for the current implementation of open response assessments, see Open Response Assessment Events.

12.3.22.1. oe_hide_question and oe_show_question

The browser emits oe_hide_question and oe_show_question events when the user hides or redisplays a combined open-ended problem.

History: These events were previously named oe_hide_problem and oe_show_problem.

Component: Combined Open-Ended

Event Source: Browser

event Member Fields:

Field Type Details
location string The location of the question whose prompt is being shown or hidden.

12.3.22.2. rubric_select

Component: Combined Open-Ended

Event Source: Browser

event Member Fields:

Field Type Details
category number Rubric category selected.
location string The location of the question whose rubric is being selected.
selection number Value selected on rubric.

12.3.22.3. oe_show_full_feedback and oe_show_respond_to_feedback

Component: Combined Open-Ended

Event Source: Browser

event Member Fields: None.

12.3.22.4. oe_feedback_response_selected

Component: Combined Open-Ended

Event Source: Browser

event Member Fields:

Field Type Details
value number Value selected in the feedback response form.

12.3.22.5. peer_grading_hide_question and peer_grading_show_question

The browser emits peer_grading_hide_question and peer_grading_show_question events when the user hides or redisplays a problem that is peer graded.

History: These events were previously named peer_grading_hide_problem and peer_grading_show_problem.

Component: Peer Grading

Event Source: Browser

event Member Fields:

Field Type Details
location string The location of the question whose prompt is being shown or hidden.

12.3.22.6. staff_grading_hide_question and staff_grading_show_question

The browser emits staff_grading_hide_question and staff_grading_show_question events when the user hides or redisplays a problem that is staff graded.

History: These events were previously named staff_grading_hide_problem and staff_grading_show_problem.

Component: Staff Grading

Event Source: Browser

event Member Fields:

Field Type Details
location string The location of the question whose prompt is being shown or hidden.

12.4. Course Team Events

This section lists events that are generated by interactions with the Instructor Dashboard in the LMS.

The schema definitions for events include only the JSON fields that are common to all events follow.

  • dump-answer-dist-csv
  • dump-graded-assignments-config
  • dump-grades
  • dump-grades-csv
  • dump-grades-csv-raw
  • dump-grades-raw
  • list-beta-testers
  • list-instructors
  • list-staff
  • list-students

Event Source: Server

For more information about the common fields, see Common Fields.

Course team events that have additional context or event member fields follow.

12.4.1. add-instructor and remove-instructor

Component: Instructor Dashboard

Event Source: Server

event Member Fields:

Field Type
instructor string

12.4.2. delete-student-module-state and rescore-student-submission

Component: Instructor Dashboard

Event Source: Server

event Member Fields:

Field Type
course string
problem string
student string

12.4.3. edx.instructor.report.downloaded

The browser emits an edx.instructor.report.downloaded event when the user clicks a report link on the Instructor Dashboard to download a report.

History: Added 8 May 2015.

Component: Instructor Dashboard

Event Source: Browser

event Member Fields:

Field Type Details
report_url string The URL to the report file.

12.4.4. edx.instructor.report.requested

The server emits an edx.instructor.report.requested event when the user clicks to request the generation of a report on the Instructor Dashboard.

History: Added 8 May 2015.

Component: Instructor Dashboard

Event Source: Server

event Member Fields:

Field Type Details
report_type string The type of report that was requested.

12.4.5. get-student-progress-page

Component: Instructor Dashboard

Event Source: Server

event Member Fields:

Field Type
course string
instructor string
student string

12.4.6. rescore-all-submissions and reset-all-attempts

Component: Instructor Dashboard

Event Source: Server

event Member Fields:

Field Type
course string
problem string

12.4.7. reset-student-attempts

Component: Instructor Dashboard

Event Source: Server

event Member Fields:

Field Type
course string
old_attempts string
problem string
student string

12.4.8. List Discussion Team Events

  • list-forum-admins
  • list-forum-community-TAs
  • list-forum-mods

Component: Instructor Dashboard

Event Source: Server

event Member Fields:

Field Type
course string

12.4.9. Manage Discussion Team Events

  • add-forum-admin
  • add-forum-community-TA
  • add-forum-mod
  • remove-forum-admin
  • remove-forum-community-TA
  • remove-forum-mod

Component: Instructor Dashboard

Event Source: Server

event Member Fields:

Field Type
course string
username string

12.4.10. psychometrics-histogram-generation (Deprecated)

Component: Instructor Dashboard

Event Source: Server

History: The chart feature intended to emit these events was never enabled on the edX Edge or edx.org Instructor Dashboard.

event Member Fields:

Field Type
problem string

12.4.11. add-or-remove-user-group

Component: Instructor Dashboard

Event Source: Server

event Member Fields:

Field Type
event string
event_name string
user string

12.4.12. Instructor Enrollment Events

In addition to the enrollment events that are generated when students enroll in or unenroll from a course, actions by course team members also generate enrollment events.

  • When a course author creates a course, his or her user account is enrolled in the course and the server emits an edx.course.enrollment.activated event.

  • When a user with the Admin or Staff role enrolls in a course, the server emits edx.course.enrollment.activated. The server emits edx.course.enrollment.deactivated events when these users unenroll from a course.

  • When a user with the Admin or Staff role uses the Batch Enrollment feature to enroll students or other course team members in a course, the server emits an edx.course.enrollment.activated event for each enrollment. When this feature is used to unenroll students from a course, the server emits a edx.course.enrollment.deactivated for each unenrollment.

    For events emitted as a result of a batch enrollment, the username and context.user_id identify the course team member who made the change, and the event.user_id identifies the student who was enrolled or unenrolled.

For details about the enrollment events, see Enrollment Events.

12.4.13. Course Team Cohort Events

In addition to the cohort events that are generated when cohorts are created and users are assigned to them (see Student Cohort Events), actions by course team members also generate cohort-related events.

For more information about student cohorts, see Using Cohorts in Your Courses in the Building and Running an edX Course guide.

12.4.13.1. edx.cohort.creation_requested

When a course team member manually creates a cohort on the Instructor Dashboard, the server emits an edx.cohort.creation_requested event.

Event Source: Server

History Added 7 Oct 2014.

event Member Fields:

Field Type Details
cohort_id number The numeric ID of the cohort.
cohort_name string The display name of the cohort.

12.4.13.2. edx.cohort.user_add_requested

When a course team member adds a student to a cohort on the Instructor Dashboard, the server emits an edx.cohort.user_add_requested event. Course team members can add students to a cohort individually, or by uploading a .csv file of student cohort assignments.

Event Source: Server

History Added 7 Oct 2014.

event Member Fields:

Field Type Details
cohort_id number The numeric ID of the cohort.
cohort_name string The display name of the cohort.
previous_cohort_id number

The numeric ID of the cohort that the user was previously assigned to.

Null if the user was not previously assigned to a cohort.

previous_cohort_name string

The display name of the cohort that the user was previously assigned to.

Null if the user was not previously assigned to a cohort.

user_id number The numeric ID (from auth_user.id) of the added user.

12.4.14. Timed and Proctored Exam Development and Administration Events

Special exams are a type of course exam that includes timed exams, proctored exams, and practice proctored exams. These exam types offer more complicated functionality than other assignment types in graded subsections, and they emit additional events. Special exam events provide information about special exams included in courses and learners’ interactions with those special exams.

  • Proctored exams have a time limit and they require learners to install and run monitoring software while taking the exam. After a learner completes a proctored exam, a team of reviewers determines whether the learner complied with all of the exam rules based on records generated by the monitoring software.
  • Practice proctored exams allow learners to become familiar with the monitoring software that they will use during an actual proctored exam. The way that a learner experiences a practice proctored exam is identical to a proctored exam. In a practice proctored exam, the monitoring software does not send exam records to reviewers.
  • Timed exams have a time limit. Learners do not install or use monitoring software when they take a timed exam.

Practice proctored exams follow a workflow that is similar to proctored exams but do not include a review of the exam attempt. Timed exams also follow a similar workflow but do not include any proctoring software or review of the exam attempt.

The following diagram shows the workflow for a proctored exam.

A diagram showing the workflow for a proctored exam.

For more information about timed exams and proctored exams, see Timed Exams and Proctored Exam Overview.

Some special exam events are emitted when learners interact with exams. For more information, see Timed and Proctored Exam Events.

Because special exams include similiar functions and behavior, they share some similar events. For example, the edx.special_exam.proctored.allowance.created, edx.special_exam.practice.allowance.created, and edx.special_exam.timed.allowance.created events include identical fields.

This section includes descriptions of the following events.

12.4.14.1. edx.special_exam.proctored.allowance.created, edx.special_exam.practice.allowance.created, and edx.special_exam.timed.allowance.created

The server emits this event when a course team grants an exception to the standard exam rules for an individual learner.

History: Added 01 Dec 2015.

event Member Fields:

Field Type Details
allowance_key string The type of allowance granted.
allowance_user_id number The identifier of the learner who has been granted the allowance.
allowance_value string The specific details of the allowance granted.
exam_content_id string The primary identifier of the subsection that contains the exam.
exam_default_time_limit_mins number The standard amount of time, in minutes, that learners have to complete the exam.
exam_id number The primary identifier of the exam.
exam_is_active Boolean Indicates whether the special exam is currently available for learner attempts.
exam_is_practice_exam Boolean Indicates whether the special exam is a practice proctored exam.
exam_is_proctored Boolean Indicates whether the special exam is a proctored exam.
exam_name string The title of the exam in the course page, taken from the subsection title.

12.4.14.2. edx.special_exam.proctored.allowance.deleted, edx.special_exam.practice.allowance.deleted, and edx.special_exam.timed.allowance.deleted

The server emits this event when a course team removes an exception to the standard exam rules that was previously granted to an individual learner.

The event fields for this event are the same as the event fields for the edx.special_exam.{special exam type}.allowance.created event. For more information, see edx.special_exam.proctored.allowance.created, edx.special_exam.practice.allowance.created, and edx.special_exam.timed.allowance.created.

History: Added 01 Dec 2015.

12.4.14.3. edx.special_exam.proctored.created, edx.special_exam.practice.created, and edx.special_exam.timed.created

The server emits this event when a course team creates a proctored exam in Studio.

History: Added 01 Dec 2015.

event Member Fields:

Field Type Details
exam_content_id string The primary identifier of the subsection that contains the exam.
exam_default_time_limit_mins number The standard amount of time, in minutes, that learners have to complete the exam.
exam_id number The primary identifier of the exam.
exam_is_active Boolean Indicates whether the special exam is currently available for learner attempts.
exam_is_practice_exam Boolean Indicates whether the special exam is a practice proctored exam.
exam_is_proctored Boolean Indicates whether the special exam is a proctored exam.
exam_name string The title of the exam in the course page, taken from the subsection title.

12.4.14.4. edx.special_exam.proctored.updated, edx.special_exam.practice.updated, and edx.special_exam.timed.updated

The server emits this event when a course team alters a proctored exam in Studio.

The event fields for this event are the same as the event fields for the edx.special_exam.{special exam type}.created event. For more information, see edx.special_exam.proctored.created, edx.special_exam.practice.created, and edx.special_exam.timed.created.

History: Added 01 Dec 2015.