Advanced Page Tracking with Articulate
At my job as a Creative Technology Manager at Pearson, I do a significant amount of work on interactive training with our Instructional Design team. Over the last 7 years, we’ve developed a highly-reusable, modular set of Flash templates that can handle all sorts of advanced interaction. As rapidly as the team can generate a course from the Flash templates, there are smaller projects where products like Captivate and Articulate are more appropriate. In the case of Articulate (Presenter), this is even more true when the client already has their materials in Powerpoint form, and would like to continue editing the Powerpoint assets. Articulate can export the Powerpoint slides as an interactive course (to run as a Flash/HTML-based module). Additionally, Articulate has SCORM tracking as an export feature for use with Learning Management Systems (LMS).
While we often produce LMS-based projects, we also frequently utilize other tracking modalities (to generate custom completion certificates, or when deployment to non-LMS sites is a client requirement, etc). The nifty thing we’ve discovered in these cases, is that we can publish an Articulate project for SCORM, and overwrite the JavaScript hook to serve our particular scenario.
To write your own custom hook: export your project with the LMS tracking turned on. Duplicate the player.html file that has been generated so that you can refer back to the unedited file. Open your duplicated file in a text editor.
Open a new script tag after the existing ones in the head tag:
<script language="JavaScript1.2">
Inside this <script> tag, you can now begin to override the default LMS configurations.
//Configuration Overrides
//set this to false if you don't want the overhead of recording debug information
var blnDebug = false;
//type of LMS to use
var strLMSStandard = "NONE";
//set this to true when debugging to force the debug window to launch immediately
var SHOW_DEBUG_ON_LAUNCH = false;
//set to empty function to prevent a js error from another file
LoadContent = function(){};
By setting strLMSStandard to NONE the JavaScript exported from Articulate will utilize functions from the lms/NONEFunctions.js file (instead of the files using SCORM or AICC functions).
Continuing inside the <script> tag you started, you can override any of the “NONE” functions (since you script comes after the embedding of the other scripts). The essential function is NONE_SetDataChunk, which is called each time a new screen (i.e. slide) is shown. This function receives a string that includes which pages have been visited, and which page is currently active. You can use this information to trigger you desired events (and make sure to close your <script> tag at the end).
//Override function in the NONEFunctions.js file
function NONE_SetDataChunk(strData){
//example strData looks as follows:
//viewed=1,2,3,4,5,6,7,8,9,10|lastviewedslide=10|
var pageNum = strData.split('lastviewedslide=').pop().split('|').shift();
pageNum = parseInt(pageNum) - 1; //convert to array numbering
//you can then use the pageNum value to trigger an outcome
return true;
}
</script>
Not only have we used this generate custom certificates on non-LMS web servers, but we also combine this functionality with our comment tracking system. In the development and client review stages of a project, we use this code to trigger and update a button onscreen. When clicked, this button takes the visitor to our comment tracking system, opens and a new ticket, and pre-populates the field that identifies the current slide. That way we effectively solicit and apply feedback to each element of the project.







