views:

123

answers:

3

I am developing a surface application (though the platform isn't really relevant) that needs to track usage statistics and produce data that can analyzed to answer several usage related questions.

Specifically, I have a screen in my application that will display multiple pieces of content at once (ScatterView for the surface people). On this screen multiple people can interact with multiple pieces of content simultaneously.

I need to to answer two specific questions:

  • What is the most/least popular piece of content over the past 24 hours
  • How long was each piece of content viewed in a 24 hour period

I am struggling to find a conceptual approach to this problem. I am making some assumptions that I think simplify the multi-user problem.

  • Any contact that is oriented between 0-180 degrees is user 1
  • Any contact oriented between 181-360 is user 2
  • After a period of inactivity (no contacts captured) the current "session" will end. This give me the ability to distinguish between user sessions and to track usage times.

My problem is how do I (even somewhat reliably) determine the users intent with regards to a piece of content?

  • How do I know they are "viewing" a piece of content?
  • How can I determine if something is "popular"?

Any ideas on how to approach this would be appreciated (no matter how off the wall they seem)

UPDATE:

As a follow up. I am working on the concept of issuing "Tokens" for various aspects of my application.

When a contact is captured I am requesting three tokens from my "TokenManagement" store. I ask for the ApplicationToken, the UserToken, and the AssetToken.

ApplicationToken is created once for the lifetime of this application run.

UserToken is created once for each distinct user (0-180 and 181-360). Once the token is issued it will be renewed each time a contact for the given user is detected. If there are no contacts for that user within a specified timeout period (in my case 1 minute) then i am expiring the token. This means any subsequent request for a token will issue a new token, thus indicating a new user. (Thoughts on this?)

AssetToken similar to a user token, and asset token is issued for each piece of content that is touched for a given user token (this way two users can touch the same piece of content and each get their own unique AssetToken). Again, like the user token, this token with be renewed for subsequent contacts and will expire if no requests for that token are made within some time frame.

I think this system allows me to determine several pieces of data

  1. Number of unique users (Select distinct UserToken)
  2. Most popular item (Max of Distinct AssetTokens for a given asset)
  3. Least popular item (Min of Distinct AssetTokens for a given asset)

Thoughts on this approach?

+1  A: 

Popular content might be those items that are close to the user and not overlapped by other content - just time how much an item satisfies this constraints. Maybe create some "zones" where content gets different popularity weight. If zooming is possible, probably popular content will be bigger.

Users might view content that is big and not overlapped by anything else (or at least a big part is not covered by anything).

Depending on how users stay relative to the table, important content might be placed near the margin of the work area or the center.

This is just my two cent opinion - this would be my first approach.

Victor Hurdugaci
I thought about the scaling idea. I am leaning that way currently, if a user scales an item to be larger then the intent seems to be that they are viewing that item. The zones idea is interesting, determining if the content is "close" the user, physically might be challenging though.
Foovanadil
+1  A: 

I would pay the most attention to scaling (if the user makes it bigger and reorients it, then they are likely interested. Probably more interested if they let it sit for a while and then move it again.). Depending on the nature of the content, you might be able to derive popularity or depth of interest. For example, if there is scrolling text, do they scroll all the way to the bottom? How many times does a single user scroll? If it's possible to flip over, dig into deeper information, how often is this done.

You should be careful to normalize this against user testing. You don't want to decide that no one cares about a particular piece of content without first making sure it's easy and intuitive to access.

Ben Reierson
Flipping over the content is an option, I am tracking this event but I need make sure and correlate a "flip" event with it's related "hit" event on the original piece of content. This is a good point. Flipping seems to indicate a stronger interest in an item. Possibly even stronger than simply scaling? Good feedback, thanks
Foovanadil
+1  A: 

I suggest you make a video recording of the people using the Surface screen, split it up into 10 minute chunks and farm it out to amazon mechnical turk.

Seriously.

I will be impressed if you can come up with anything remotely accurate using the simple heuristics you describe.

Let us know how you go.

Schneider
That is an interesting idea. For my purposes I followed my approach detailed in the update. There are a lot of holes in the approach but for my client this got them to the answer they were looking for. I like the mechanical turk idea. I will keep that in mind for future projects.
Foovanadil