Clarification on Tracking Storyline Progression in Moodle

Jun 11, 2014

Hey everybody!

I have been working with Storyline for a few months now building a very large, 220+ slide course. I have uploaded i to Moodle in a SCORM format, and played around on it. The course is to teach young workers about labour relations and how to be a safe, first-time employee and not get hurt.  Thus, tracking is a very important part of it.

Being as there are about 220 slides in the course, it made sense for me to first go with tracking by slides viewed. If you view the first 2 slides, that's 1%. the first 22 slides, that's 10%, the first 110 slides, that's 50%, etc. But I learned after reading the forums that that isn't how it works; when tracking by slides viewed, it is either 0 (not complete) or 1 (fully complete). That isn't what I wanted, so I looked into quiz tracking.

Being as the course is so big, there's about 20 quizzes (one every 10 slides or so) as well as on final quiz. I thought by using quizzes I could track where the user was in the course, eg: They just completed quiz number 2, so they are on about the 20th slide, so about 10% in. But then as I got reading into it, I discovered I could only track the progress of 1 quiz, not all 20.

So I began to look into ways to break up the slides into smaller SCO packages and use those to give tracking to the course, but the methods aren't supported by Storyline and it seems more hassle then it should be, so I thought: enough of this, let's ask the geniuses at Articulate for help.

So, this is my question: is percentage tracking through Moodle possible, and if so, how? 

I can code HTML, JavaScript, PHP, etc. so if I have to actually go in and change how a file works, I can do that as well.

Thank you so much, and I can't wait to hear from you!


2 Replies
Kenton de Jong

After being very unsatisfied with the data Moodle collects from Storyline, I built my own tracking system through AJAX. When the timeline starts on a slide, it calls the following script:

var r = new XMLHttpRequest();

var data = 1;

alert(data);"POST", "", true);

r.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');


r.onreadystatechange = function () {

if (r.readyState != 4 || r.status != 200) return;

     console.log("Success: " + r.responseText);


Which submits the slide data (current page) to a PHP script (post.php). That script then links to my mySQLi database and updates what I named the "progress" field for the user.

I also have the same script, slightly modified, that can send the grade or the mark of a quiz, so multiple quizzes can be scored and their grades can be kept in different fields in the database and displayed seperatly.

It's too bad nobody else had a solution to this problem...

This discussion is closed. You can start a new discussion or contact Articulate Support.