Please upgrade here. These earlier versions are no longer being updated and have security issues.
HackerOne users: Testing against this community violates our program's Terms of Service and will result in your bounty being denied.

User Passive Activity Data

Hello there!

Is there a way to track user passive activity data, such as time on the site (assuming they are logged in), with Vanilla forums?

(Context: I'm working on my dissertation proposal and am planning on using Vanilla to host a forum around educational games, and examine the impact of users' interaction with the online space.... I was planning on using post count to measure their engagement with the forum, but just realized that the passive use would also be important to measure.)

If there isn't a way to do it currently... anyone up for making an add-on? I can't be the only one interested in measuring this! :)

Comments

  • Can you provide more details as to the stats you would like to track?

  • I would like to be able to see this as individual user data (as I need to link this to their performance, motivational measures, etc. in regression analyses) rather than in aggregate (or I'd use google analytics).

    I think all I really need for a way to gauge passive engagement would be how much time each individual user has spent reading on the forum (if not possible, the number of views of topics could work... maybe this already exists, to be able to see how much the user has viewed?).

    A way to see the categories a user spent the most time in (viewed the most) or which posts they have read would be great for some further analyses, but isn't necessarily required for this analysis...

    Hopefully that actually made more sense for specifics than my first post. ><

  • @LindseyT I just would like to point out that you should make sure that Users are aware of this kind of tracking. In some jurisdictions this is not allowed, while in others you must put a prominent note for the Users and they have to explicitly accept to have their activity tracked (Europe is particularly "anal" about this).

  • peregrineperegrine MVP
    edited January 2013

    @LindseyT said:
    Hello there!

    Is there a way to track user passive activity data, such as time on the site (assuming they are logged in), with Vanilla forums?

    (Context: I'm working on my dissertation proposal and am planning on using Vanilla to host a forum around educational games, and examine the impact of users' interaction with the online space.... I was planning on using post count to measure their engagement with the forum, but just realized that the passive use would also be important to measure.)

    If there isn't a way to do it currently... anyone up for making an add-on? I can't be the only one interested in measuring this! :)

    You can't tell if someone has a page up and is reading it versus they have the page up and is in the other room watching TV. What you can do - is parse your apache logs by ip address and count the web page hits per ip address. I'd be astonished if this is not tracked on 99.9999% of every server on the internet. - europe or not.

    You could get someone with no knowledge of vanilla to parse the data from the access logs in apache or whatever server you are running. You could also pass all this data - ip address, time, and any other variable - and run all kinds of statistical tests to your hearts content. multivariate, correlations, parametric, non-parametric, anova........

    I may not provide the completed solution you might desire, but I do try to provide honest suggestions to help you solve your issue.

  • @peregrine said:
    parse your apache logs by ip address

    I'm afraid that the IP address would be insufficient. Visitors behind a router would appear with the same IP address. Since the projects revolves around educational games, I wouldn't be surprised if the site were accessed from some institute, which would surely use a router. Mine is just a speculation, though.

  • LindseyTLindseyT New
    edited January 2013

    First, thank you to everyone who has made suggestions and helped think through this.

    This is for dissertation research; students and parents will both agree before their data will be included in the study.

    You are correct, @businessdad, the students will be accessing the forum from the classroom. Even if each computer has different, stable IPs, the students will not necessarily always be using the same computer, so I could not use that as a tracking method. I really think the only solution would be to track via user (and even then, I will need to make sure students log in whenever they are on the site for these results to be valid).

    In terms of tracking time versus page views, the students will definitely not be in the other room watching TV while at school, but you are correct that they could be otherwise goofing off... or they could visit it from home, too (not sure if they will choose to do this or not - that's really part of the study, haha), which would add confounds in multiple ways.

    Perhaps the best solution, then, would be to track page views per user.

    So... any addons for that? :)

  • peregrineperegrine MVP
    edited January 2013

    Perhaps the best solution, then, would be to track page views per user.

    So... any addons for that? :)

    • probably if you had a budget :).

    once again you don't need any vanilla expertise.

    just echo $Sender->Name or $Sender->UserID to a
    text file that appends to itself

    then sort and group and count on a time period.

    your grad school probably has a computer department with students who studied php for an hour or two to knock it off for you.

    I may not provide the completed solution you might desire, but I do try to provide honest suggestions to help you solve your issue.

  • Thank you for the information; great to know it can be added in so simply (although I confess it'll take a bit of reading to get what you said to an applicable state for me).

    I'll be pursuing some options for some dissertation funding next month, so maybe I can get someone to code in what I need through that... and if all else fails, there's always begging the student programmers I know - and showing them your response for a start. :)

  • DirtyDogDirtyDog ✭✭
    edited January 2013

    Page views per user would likely be inadequate based on the description. I would go after page views, what pages, and what categories. Since a data set has an acceptable margin of error tbd by who's using it, I would also think that other methods would be worth considering. You could get the time per page based on when a new page was accessed. Since this is a classroom setting, it would be reasonable to assume little time was wasted idle or AFK. You could even log the length of the user session which I believe would be useful in this case because students are likely instructed to log in to start, and log off to finish.

    My hypothetical log would contain: user, session start, session end, pages viewed, time accessed, category.

    Edit to fix formatting since single line breaks dont work with this WYSIWYG

  • peregrineperegrine MVP
    edited January 2013

    here is a very easy way to put user id and time stamp into a database everytime user clicks on a page.

    1) download the logger-plugin

    2) create /conf/bootstrap.after.php

    <?php if (!defined('APPLICATION')) exit();
    
    $sess= gdn::Session();
    $info = $sess->UserID.  " | " . now();
    $Logger = LoggerPlugin::GetLogger();
    $Logger->info($info);
    

    you can also incorporate DirtyDog's info if he wants to show you how to add it in code or provide an alternate.

    then you can use phpmyadmin to view the LoggerSysLog

    I may not provide the completed solution you might desire, but I do try to provide honest suggestions to help you solve your issue.

  • Awesome, thank you for the code @peregrine. Definitely instructions I can follow. :)

    @dirtydog if you are willing to add to it, that would definitely be appreciated as your "hypothetical" log sounds great in terms of assessing passive activity, but I understand you've all got real lives to attend to, too, so this is a great start!

  • @LindseyT said:

    dirtydog if you are willing to add to it, that would definitely be appreciated as your "hypothetical" log sounds great in terms of assessing passive activity, but I understand you've all got real lives to attend to, too, so this is a great start!

    I'm not a programmer. Peregrine knows that he just likes to push my buttons for some perceived slight in the past. I was just describing the data that might be useful, I don't know the details of how to implement it, sorry.

  • peregrineperegrine MVP
    edited January 2013

    @DirtyDog said
    I'm not a programmer. Peregrine knows that

    Actually I thought you were a programmer, that why I mentioned if you wanted to add some code or alternative.

    Perhaps, I misinterpreted this message

    http://vanillaforums.org/discussion/comment/172917/#Comment_172917. which says "I'm pretty far along in development".

    I may not provide the completed solution you might desire, but I do try to provide honest suggestions to help you solve your issue.

  • @peregrine said:
    your grad school probably has a computer department with students who studied php for an hour or two to knock it off for you.

    Now, let's not devalue our knowledge. It takes quite a bit more than one hour or two of studying PHP, to make anything remotely useful.

    @peregrine said:
    here is a very easy way to put user id and time stamp into a database everytime user clicks on a page.
    1) download the logger-plugin

    A-ha! I knew that a Logger was a good idea! Someone complained because almost all my plugins rely on it, forcing them to install it, but it's just too convenient! :)

  • peregrineperegrine MVP
    edited January 2013

    too convenient!

    Convenient and easier to explain anyway. the code to write to a text file would have been 6 lines longer :).

    I may not provide the completed solution you might desire, but I do try to provide honest suggestions to help you solve your issue.

  • I will see if I can get someone to help implement @dirtydog's suggestion on the hypothetical log as that would certainly be a very complete picture... and at the very least, I know I can use @peregrine's method to get some data.

    Thanks for all of your assistance!

  • @peregrine said:
    the code to write to a text file would have been 6 lines longer

    And a text file is more complicated to manage and process than a table, which could be automatically cleaned up by a properly configured Cron Task. I had a plan in mind, when I started coding these plugins. ;)

  • peregrineperegrine MVP
    edited January 2013

    @LindseyT

    I sent you more info to maybe help you out.

    I may not provide the completed solution you might desire, but I do try to provide honest suggestions to help you solve your issue.

Sign In or Register to comment.