xAPI statement with result?

nixthenext
nixthenext Community Member Posts: 75
Is there a way to send an xAPI statement with a result using the Lectora UI?

... that would be Actor > Verb > Object > Result

I know it's possible to do that with a quiz/test score, but that's not going to work for our purposes. We'd like to track the number of clicks it takes a person to complete a software simulation, or the number of times someone replays a particular video.

There are two ways to go about this with xAPI:
  1. Send a statement each time it happens; Sum the statements to get to the # of times it happened.
  2. Collect the number of times it happens; Send a single statement with a result.
For reporting purposes, the latter seems cleaner - and that's the basis for wanting a "result" component in the statement. That being said, I'm very open to insights as to how the former is the way to go ;)

Comments

  • timk
    timk Community Member Posts: 1,176 ☆ Superstar ☆
    How do you store the number of clicks? The "xAPI statement" action can use any variable in the "Object" field.

    Tim
  • jvalley4735
    jvalley4735 Community Member Posts: 1,357
    Following
  • nixthenext
    nixthenext Community Member Posts: 75
    Tim,

    Let's say I have a page with 3 help buttons. I want to know how many times the learner (Sally) clicks each button. In this case, the Actor is Sally, the Verb will be focused, and the 3 buttons (Object) will be HelpA, HelpB and HelpC. Sally clicks HelpA once, she clicks HelpB three times, and she clicks HelpC five times. We can collect the number of times Sally clicks each Help button in a user variable, and send the xAPI statements when Sally leaves the page.

    if I use the Object field to report the number of clicks (the user variable), wouldn't the statements (in plain language) look like this:
    • Sally Focused 1
    • Sally Focused 3
    • Sally Focused 5
    What I'd need to make sense of the data is:
    • Sally Focused HelpA 1 time (ie. with a result of 1)
    • Sally Focused HelpB 3 times (ie. with a result of 3)
    • Sally Focused HelpC 5 times (ie. with a result of 5)
    The other way to accomplish this is to send a basic Actor-Verb-Object statement each time Sally clicks one of the help buttons, and the LRS would show the following statements:
    • Sally Focused HelpA
    • Sally Focused HelpB
    • Sally Focused HelpB
    • Sally Focused HelpB
    • Sally Focused HelpC
    • Sally Focused HelpC
    • Sally Focused HelpC
    • Sally Focused HelpC
    • Sally Focused HelpC
    ...then you're left to collect that data into a meaningful report. Not terribly difficult with a small audience, or with only a few use cases - but if you have a large audience and you want to correlate success on a test with engagement in various learning activities, or need to tell a stakeholder the average engagement level, this is not efficient.

     
  • timk
    timk Community Member Posts: 1,176 ☆ Superstar ☆
    Couldn't you have 3 variables, one for each button: HelpA, HelpB, HelpC. Each button has an action to count the clicks in the suitable variable.
    You could set the xAPI statement with either one or three actions on page level, but On: Hide.

    Object:
    Help A VAR(HelpA) times, Help B VAR(HelpB) times, Help C VAR(HelpC) times.

    ... or with one action per Button.

    The On: Hide trigger would send the data when the user leaves the page.

    I'm not familiar with xAPI, so I'm not sure, what would be the better way.

    Tim
  • nixthenext
    nixthenext Community Member Posts: 75
    now, I don't know a LOT about xAPI (learning now ;))... but wouldn't that compromise the unique Object identifier?

    ...meaning that I wouldn't be able to pull statements related to just Help1... I'd have to pull statements related to Help1 that was clicked once; and Help1 that was clicked twice; and Help1 that was clicked thrice.... etc.
  • pjackson2462
    pjackson2462 Community Member Posts: 69 ☆ Roadie ☆
    G'day NixTheNext,

    You are correct, you will need just the name of the help buttons clicked and you will need it for each click, no need to keep track of a click count for each button. i.e. One record for each click.  The record will have the user details "Sally", if you ever need that level of detail:-)

    With this level of detail your reports become relatively simple - just count the number of records with Help1 and Help2, etc.  Also, you can count the number of records for just "Sally" and summarise her clicks.  The LRS is designed to hold this amount of data.

    HTH

    Regards, Peter
  • nixthenext
    nixthenext Community Member Posts: 75
    Thanks, Peter - so you recommend collecting a simple ACTOR-VERB-OBJECT statement on each click, then sum the statements to get the number of clicks?
  • timk
    timk Community Member Posts: 1,176 ☆ Superstar ☆
    Good evening Peter,

    in a simple ACTOR-VERB-OBJECT statement, what would the Object be? Isn't the Noun / Actor always "Sally", i.e. the user name from the LRS and I select a Verb from the list. Do I just enter "Help A" and make the LRS count the number of identical statements?

    If I wanted to state that Sally clicked all the Help buttons, would I do that via a statement that "Sally" "Attended" "All the buttons" and track the clicks in Lectora or would I make the LRS check if there's (at least) one statement for each button.

    Thank you very much in advance

    Tim
  • pjackson2462
    pjackson2462 Community Member Posts: 69 ☆ Roadie ☆
    NixTheNext - Yes that's correct, collect each click when clicked.  This creates a unique record in the LRS, this way you can manipulate the data any way you want. Help A ###, Help B ###, Help C ###, Total Help ###.

    If you add another record for each time the learning experience is launched then you have Launched 50,000 times with 500,000 total help clicks - back to the drawing board as the app. is not very intuitive because you have an average of 10 help buttons clicked per user.  Another example would be Help A 500 clicks with Help C 5,000 clicks, now you know that the part of the app. that has Help C needs more work.

    Tim - The Actor will not always be Sally, it's the leaner's name and it comes from (typically) an LMS, the LRS is just a single table in a database that stores records with three main fields: Actor, Verb and Object.  As you suggest, there's nothing wrong with keeping track of the summary data in addition to the detail, you just need another VERB. i.e.:
    • AUTHOR Sally, VERB Launched, OBJECT Simulation
    • AUTHOR Sally, VERB Clicked, OBJECT Help A
    • AUTHOR Sally, VERB Clicked, OBJECT Help A
    • AUTHOR Sally, VERB Clicked, OBJECT Help A
    • AUTHOR Sally, VERB Clicked, OBJECT Help B
    • AUTHOR Sally, VERB Clicked, OBJECT Help B
    • AUTHOR Sally, VERB Help A, OBJECT 3
    • AUTHOR Sally, VERB Help B, OBJECT 2
    • AUTHOR Sally, VERB Help C, OBJECT 0
    • AUTHOR Sally, VERB Total Help, OBJECT 5
    With this detail you just need different SQL statements to access the data from the database, however, we can get all the info. we need from the simple "Sally, Clicked, Help A" type record and it's would be the same amount of SQL statements.

    HTH

    Regards, Peter
  • nixthenext
    nixthenext Community Member Posts: 75
    Thank you, Peter - Am I safe to assume that's the approach recommended by the organizations developing the xAPI?

    Now I was just thinking about one use case for a Result... but what if I wanted to send other data using a Results field in Lectora? Say I wanted to capture the selection a user picks in a drop down menu? Is there a way to capture that through the Lectora UI?
  • pjackson2462
    pjackson2462 Community Member Posts: 69 ☆ Roadie ☆
    G'day NixTheNext,

    Yes you should be fine with all providers.  A dropdown will have it's own associated variable e.g. DropList_0001

    Therefore, you need to decide what the data (in the LRS) is going to look like and how to extract it in a meaningful way. You have two fields in the LRS to play with VERB and OBJECT, whilst there is a "standard" list of verbs you can actually have any value, the dropdown list box in Lectora will allow you to type any value required.  If the verb is "Result" and you have 20 DropLists then the OBJECT needs to contain what the DropList ID is and what was selected, this can make it very difficult for reporting.  If the VERB is "Gender" then the OBJECT can be either "Male" or "Female" as these would be the possible values within the list and within Lectora (for the OBJECT) you would put VAR(DropList_001) or better yet change the variable name to "Gender" then it would be VAR(Gender).

    You can do you own testing quite simply by creating a free account on SCORM.com https://cloud.scorm.com/sc/guest/SignInForm , create a simple one page title in Lectora and publish it as xAPI.  Then upload to SCORM.com and launch it, then review the data by selecting the "LRS" button on the left panel

    HTH

    Regards, Peter
Sign In or Register to comment.

So You Wanna Be An eLearning ROCKSTAR?

We're all fans of eLearning here! Want to become an eLearning ROCKSTAR? Just click on one of the buttons below to start your rocking journey!