mozilla / webmaker-core

React-based core for Webmaker shared across all platforms
https://foundation.mozilla.org/en/artifacts/webmaker/
Mozilla Public License 2.0
64 stars 39 forks source link

Count shares, remixes, favs, flags, etcetera #902

Open xmatthewx opened 8 years ago

xmatthewx commented 8 years ago

A few basic metrics would be useful to track within the app. Would help us curate Discover and allow us to report info back to users.

Project

Platform

xmatthewx commented 8 years ago

@cadecairos - there are a few basic numbers in the DB that would help us curate interesting content. Analytics can't really give us a good view into content on the app.

The Project level counts would be pretty simple and top priority. The Tag counts would be nice to have, but could be inferred somewhat by looking at top projects.

In fact, if we had nothing but a count of projects views before we wrap up 2015, I'd be thrilled.

cc @gvn @alanmoo @vazquez

cadecairos commented 8 years ago

What is the definition of a "project view"? What would trigger this value to increment? Surely not just a single request for the project data, as many things in the app could trigger that.

xmatthewx commented 8 years ago

Good question.

Project view triggers:

Why? I am more interested in scale than accuracy. We have 47919 projects in the DB. 99% have probably been viewed 0 or 1 times. I can't find the other 1%. If we can find them, we can feature them.

That's the first goal. When we launch tags, it will also give us a rudimentary view into if/how they're working. That's the second goal.

Views by order of magnitude is all we really need for MVP. We could spend lots of time getting fancy. But's let's first find out if it's worth it.

cadecairos commented 8 years ago

so it sounds like projects require a column that can be incremented via an authenticated API call from the app, when a project is opened. it will increment the view count if the user ID hasn't already viewed the project. We can use a JSON datatype to store that information and grab a total view count from there.

i.e.

{
  "views": 5,
  "users": [ 55, 673, 88732, 12, 43 ]
}

a new view inserts the user id into the users array and ups the view count by one (views === users.length)

cadecairos commented 8 years ago

are there ways to anonymously view?

xmatthewx commented 8 years ago

Interesting, interesting. I don't think we need to track users for unique views. If someone feels compelled to view your project 10 times, that's useful measure of impact.[1] Checking user id so we don't count the author is definitely useful, but again not essential.

AFAIK the only anonymous viewing is via the browser. That's roughly captured in analytics. Let's not worry about that for a first version.

[1] We could track unique and total views, but let's skip that. I realize that some of what I'm saying might sound crazy. The honest truth: a quick rough simple solution we can land easily is better than a more sophisticated solution that dies when the calendar flips to 2016. The risk: people will make awesome projects when we land tags, but we won't know about them. Without featuring them, Webmaker wilts.

xmatthewx commented 8 years ago

Filing view count #942, and bumping the rest back out of this milestone.