Skip to main content
June 15, 2009
Question

Track actions and send them to a server.

  • June 15, 2009
  • 2 replies
  • 1553 views

I am not expert in Adobe Captivate but I was inquired by a possible customer if we would be able to track presentations and trainings, like capturing for example when the user viewed it, time taken, get some text field inputs, quiz results, etc. In summary, they want to have a database with user behavior, statistics, etc. Reading the documentation I still don't have conclusive answers to these questions:

1) Is it possible to define events (Advanced Actions?) and send information back to a server when it triggers? For example, the user finished a quiz and the result is sent to a server on the Internet via a Web Service our even a URL with parameters (e-mail is not viable).

2) If this is not available, is it possible to capture these while playing the presentation inside a Adobe Flex application some how ? Cue points?.

3) Can custom, hidden AS3 Widgets do this perhaps?

If someone can point me to a paper or documentation I appreciate.

Thanks in advance,

Mauricio.

This topic has been closed for replies.

2 replies

Inspiring
June 16, 2009

Hi Mauricio,

With the level of detail of tracking that your customer want you are much better off by deploying the course in an LMS. That would take care of most of the tracking issues. There are many free LMS's available as open source so you could just use one of those. The Moodle LMS is a popular choice, but as long as the LMS is SCORM compliant it doesn't really matter much in my opinion.

As for your questions:

1) I don't think this approach would be possible.

2) This would be possible. If you have a Flex or Flash shell you are able to access the Captivate system variables and then do whatever you want with them. I doubt that you would be able to get the text field inputs, but other than that you can get pretty much everything you want.

3) Same as number 2. Yes it would be possible.

There is an article on Adobe Developernet describing how you "hack" the email functionality of Captivate in order to store the data in a database. Perhaps you could get something out of this: http://www.adobe.com/devnet/captivate/articles/store_cpresults.html

Other than that I am not aware of any documentation in relation to this subject.

I myself am working on a Flash / PHP solution to authenticate users in Flash and store their progress, score etc. but I just started so can't really share anything with you.

/Michael


Click here to visit the www.captivate4.com blog

June 16, 2009

Thanks Michael. I am reading the documentation and I am testing the possibility of using system variables and sending them via URL. I can execute JavaScript statements and functions in all events. I am being able to call them but while checking the value of some system variables they are all "null". Not sure what I am missing... When I execute the following statement:

alert('Date='+document.Captivate.GetVariable('cpInfoCurrentDateString'))

It shows "Date=null". In principle I thought the "get" was not working so I tested using a function to assign a value first:

function testCaptivateVariable() {
    document.Captivate.SetVariable('cpInfoCurrentDateString','x');
    alert('Date='+document.Captivate.GetVariable('cpInfoCurrentDateString'));
}

Now I see "Date=x", the expected result.


Are system variables assigned in a specific stage while playing the presentation? Is the variable only visible inside Captivate, not JavaScript?

If I can get the value of system variables in JavaScript then part of the problems are solved.

Inspiring
June 16, 2009

Hi Mauricio,

The variables should be available from whereever I would think. I never used the JavaScript approach myself since I just use Flash to grab them.

One thing that made me crazy many times is that the variables are not assigned in the exact beginning of the Captivate project. I needed to get some varaibles from Captivate and they all returned undefined even though I could see them show up in Captivate in the text boxes I made. The problem was that my Flash file were checking for the variables at the very start of the Captivate project and then they weren't available. I set up a timer event and checked for the variables after 0.1 second and then I could get them without any problems.

Perhaps this is the same problem you are having? Try delaying your JS query a bit and see if that helps.

/Michael


Click here to visit the www.captivate4.com blog

June 16, 2009

Do you deliver your courses on an LMS? The "reports" function should be able to provide you with printouts of the kinds of information you describe.