Adobe Captivate 8.0 and 9.0 | Best Practices for xAPI

By Sean Putman (VP Learning and Development, Altair Engineering)

box_captivate9_150x150

Adobe Captivate will publish content to xAPI version 1.0. Captivate will publish statements that are readable using the slide name. For the most part with Captivate you are tracking very similar things to SCORM with the xAPI output. Captivate uses ADL registered verbs for its output.

Captivate will output statements for the following interactions:

  • Slides,
  • Course Attempts,
  • Course Completions,
  • Questions Slides

The verbs will map as follows:

  • Slides use the verb experienced when a slide is viewed;
  • Quizzes use the verb experienced when a questions is answered,
  • Courses use attempted when the course is started and when the course is completed with the quiz score.

Slide Best Practices

There are important considerations for designers when laying out a course in Captivate. In a normal usage of Captivate one might create an interaction on a slide that uses Advanced Actions to open elements as items are clicked, such as opening a lightbox on a slide to display additional content.

Button to open content

Button to open content

Content open after clicking button

Content open after clicking button

 

Best Practice

When designing for xAPI with Captivate the interaction should go on a new slide instead of using Advanced Actions.  

Slides used to create lightbox effect

Slides used to create lightbox effect

Rationale

Captivate only reports on the slide views, not on the elements within the slide. By breaking the interaction up over slides you will get views on each of the slides. So when you see the output you will see 3 statements for 1 interaction.

Statements generated by opening  the  interaction and closing the interaction

Statements generated by opening the interaction and closing the interaction

Statement 1 will be experiencing the base slide. Statement 2 will be experiencing the interaction. Statement 3 will be experiencing the base slide after closing the interaction. There will be a few extraneous statements, but without setting up the slides in this manner you will not get the interaction data.  

Since we will be using the slides to track the interactions, the slide names are important. The slide names will be what appears in the statement for the object. If you do not enter a name for the slide, Captivate will use a default of slide_# where # is the number of the slide. Making sure to enter meaningful names is critical to useable data from Captivate. When we see the statement we see the actor (which will be set later), the verb (which will always be experienced), and the object (which will be the slide name). While this adds a number of slides in your Captivate file, it will enable tracking the path that a user takes through a course and what interactions he/she opens. This practice works for all types of interactions, whether they are click interactions or rollovers.

Quiz Best Practices

For quiz slides, the slide name will use the question that is entered on the slide. The second statement will be the score of the answered question. The verb for the slide will be experienced and the slide name will appear. When a quiz is finished Captivate produces a statement with the verb attempted, the course name, and the score received on the quiz.  

Best Practice

When creating the question slide, be sure to give the slide a meaningful name as with the other slides.

Rationale

When the statement is created for experiencing the question slide it will grab the name of the slide for the object.

Publishing and Launching the Content

IN the publishing window enter a Project Name and a Description. The Project Name will be used to generate the object for the course attempt statements. The Description will appear in the JSON for the course.

The settings for output of statements can be found in the Reporting selection in the publish dialog. When publishing content click the eLearning Output link to open the preferences. In the Standard menu select the TinCan output.

Selection to generate xAPI statements in Captivate 8.0

Selection to generate xAPI statements in Captivate 8.0

Captivate 9.0 Differences

There is only one slight difference in Captivate 9.0, the option has been renamed from TinCan to xAPI. The other functions work the same as version 8.0.

Publish option renamed to xAPI

Publish option renamed to xAPI in Captivate 9.0

Identify how the student will be graded in the preferences.

Pass/fail settings for output

Pass/fail settings for output

You can use slide views or quiz results. Once the setup is complete the course is published and a .zip file is created.

If you are using a compatible LMS or Grassblade xAPI Companion the zip file can be uploaded directly to the system.  

There is a launcher available from Saltbox http://launcher.saltbox.com that allows the content to be launched without customizing the URL by hand. The link from the launcher can then be used in other systems.

JSON Examples

Slide

Sean Putman http://adlnet.gov/expapi/verbs/experienced ‘Introduction’

{
    "id": "c48a6d6f-56ff-4af1-88f4-0f2d2a928115",
    "timestamp": "2015-08-30T00:08:42.514Z",
    "actor": {
        "objectType": "Agent",
        "mbox": "mailto:sputman34@gmail.com",
        "name": "Sean Putman"
    },
    "verb": {
        "id": "http://adlnet.gov/expapi/verbs/experienced",
        "display": {
            "und": "experienced"
        }
    },
    "context": {
        "registration": "36fc1ee0-2849-4bb9-b697-71cd4cad1b6e",
        "contextActivities": {
            "parent": [
                {
                    "id": "http://Course_ID1",
                    "objectType": "Activity",
                    "definition": {
                        "name": {
                            "en-US": "Captivate E-Learning Course"
                        },
                        "description": {
                            "en-US": "This is a description"
                        }
                    }
                }
            ]
        }
    },
    "object": {
        "id": "http://Course_ID1/Introduction",
        "objectType": "Activity",
        "definition": {
            "name": {
                "en-US": "Introduction"
            }
        }
    },
    "stored": "2015-08-30T00:07:40.934Z",
    "authority": {
        "account": {
            "homePage": "http://learnxapi.net/grassblade-lrs/xAPI/",
            "name": "15-557d7b8d7eda474"
        },
        "objectType": "Agent"
    }
}

Quiz Question

Sean Putman http://adlnet.gov/expapi/verbs/experienced ‘How many JavaScript files need to be linked at the head of the file?’

 

{
    "id": "27615b18-d61d-438d-b6da-7acbc018ac2a",
    "timestamp": "2015-08-30T00:09:08.916Z",
    "actor": {
        "objectType": "Agent",
        "mbox": "mailto:sputman34@gmail.com",
        "name": "Sean Putman"
    },
    "verb": {
        "id": "http://adlnet.gov/expapi/verbs/experienced",
        "display": {
            "und": "experienced"
        }
    },
    "context": {
        "registration": "36fc1ee0-2849-4bb9-b697-71cd4cad1b6e",
        "contextActivities": {
            "parent": [
                {
                    "id": "http://Course_ID1",
                    "objectType": "Activity",
                    "definition": {
                        "name": {
                            "en-US": "Captivate E-Learning Course"
                        },
                        "description": {
                            "en-US": "This is a description"
                        }
                    }
                }
            ]
        }
    },
    "object": {
        "id": "http://Course_ID1/What is the variable that stores the actor information?",
        "objectType": "Activity",
        "definition": {
            "name": {
                "en-US": "What is the variable that stores the actor information?"
            }
        }
    },
    "stored": "2015-08-30T00:08:07.266Z",
    "authority": {
        "account": {
            "homePage": "http://learnxapi.net/grassblade-lrs/xAPI/",
            "name": "15-557d7b8d7eda474"
        },
        "objectType": "Agent"
    }
}

Course Start

Sean Putman http://adlnet.gov/expapi/verbs/attempted ‘Captivate E-Learning Course’

 

{
    "id": "f8f8f02f-4f5e-4d29-9216-4affe60e91e0",
    "timestamp": "2015-08-30T00:08:40.245Z",
    "actor": {
        "objectType": "Agent",
        "mbox": "mailto:sputman34@gmail.com",
        "name": "Sean Putman"
    },
    "verb": {
        "id": "http://adlnet.gov/expapi/verbs/attempted",
        "display": {
            "und": "attempted"
        }
    },
    "context": {
        "registration": "36fc1ee0-2849-4bb9-b697-71cd4cad1b6e"
    },
    "object": {
        "id": "http://Course_ID1",
        "objectType": "Activity",
        "definition": {
            "name": {
                "en-US": "Captivate E-Learning Course"
            },
            "description": {
                "en-US": "This is a description"
            }
        }
    },
    "stored": "2015-08-30T00:07:38.619Z",
    "authority": {
        "account": {
            "homePage": "http://learnxapi.net/grassblade-lrs/xAPI/",
            "name": "15-557d7b8d7eda474"
        },
        "objectType": "Agent"
    }
}

 

Course Complete

Sean Putman http://adlnet.gov/expapi/verbs/attempted ‘Captivate E-Learning Course’ with score 20

{
    "id": "85c1dc3e-37be-4ed7-bcae-54e0092b5791",
    "timestamp": "2015-08-30T00:09:50.107Z",
    "actor": {
        "objectType": "Agent",
        "mbox": "mailto:sputman34@gmail.com",
        "name": "Sean Putman"
    },
    "verb": {
        "id": "http://adlnet.gov/expapi/verbs/attempted",
        "display": {
            "und": "attempted"
        }
    },
    "result": {
        "duration": "PT6M8.26S",
        "score": {
            "raw": 20,
            "min": 0,
            "max": 30
        }
    },
    "context": {
        "registration": "36fc1ee0-2849-4bb9-b697-71cd4cad1b6e"
    },
    "object": {
        "id": "http://Course_ID1",
        "objectType": "Activity",
        "definition": {
            "name": {
                "en-US": "Captivate E-Learning Course"
            },
            "description": {
                "en-US": "This is a description"
            }
        }
    },
    "stored": "2015-08-30T00:08:48.419Z",
    "authority": {
        "account": {
            "homePage": "http://learnxapi.net/grassblade-lrs/xAPI/",
            "name": "15-557d7b8d7eda474"
        },
        "objectType": "Agent"
    }
}

SEAN PUTMAN (VP, Learning and Development, Altair Engineering)

DSC_4801b-3 Sean Putman, the Vice President of Learning Development for Altair Engineering and the Owner of Intellectus Learning, has been an instructor, instructional designer, and developer for over 15 years. He has spent his career designing and developing training programs, both instructor-led and online, for many different industries.  Sean has also spent the last few years focusing on the use and deployment of the Experience API and its affect on learning interventions.  Sean has spoken at many industry conferences on xAPI and related topics.

1 Comment…

  1. Hi Sean

    Thanks for the great post. I am using wordpress with Grassblade xAPI plus their LRS. Once the data is stored in the LRS what is the best way of analysing the data and visualising. I have seen some interesting learning analytics radar and all. WHat can I do with the data I am collecting in the LRS?

Speak Your Mind

*