How does everyone measure active/super active users? ie people who have logged in or commented in the past month, for example.
The dashboard tells me the number of visits and comments etc, but I don’t know how to chunk this down easily into actual users. We’ve got 1400 members on our community, but I’d like to know how many of those are engaging with it month on month.
Returns the top 50 posters for a given monthly period. Results are ordered by post_count. It accepts a ‘months_ago’ parameter, defaults to 1 to give results for the most recently completed calendar month.
-- [params]
-- int :months_ago = 1
WITH query_period AS (
SELECT
date_trunc('month', CURRENT_DATE) - INTERVAL ':months_ago months' as period_start,
date_trunc('month', CURRENT_DATE) - INTERVAL ':months_ago months' + INTERVAL '1 month' - INTERVAL '1 second' as period_end
),
user_posts_in_period AS (
SELECT
p.user_id
FROM posts p
INNER JOIN query_period qp
ON p.created_at >= qp.period_start
AND p.created_at <= qp.period_end
WHERE p.user_id > 0
)
SELECT
up.user_id,
count(1) as post_count
FROM user_posts_in_period up
GROUP BY up.user_id
ORDER BY post_count DESC
LIMIT 50
Top 50 likers
Returns the top 50 likers for a given monthly period. Results are ordered by like_count. It accepts a ‘months_ago’ parameter, defaults to 1 to give results for the most recently completed calendar month.
-- [params]
-- int :months_ago = 1
WITH query_period AS (
SELECT
date_trunc('month', CURRENT_DATE) - INTERVAL ':months_ago months' as period_start,
date_trunc('month', CURRENT_DATE) - INTERVAL ':months_ago months' + INTERVAL '1 month' - INTERVAL '1 second' as period_end
)
SELECT
ua.user_id,
count(1) AS like_count
FROM user_actions ua
INNER JOIN query_period qp
ON ua.created_at >= qp.period_start
AND ua.created_at <= qp.period_end
WHERE ua.action_type = 1
GROUP BY ua.user_id
ORDER BY like_count DESC
LIMIT 50
you could also get in touch with @DiscourseMetrics.com and @Bas (about Community Analytics)
their tools can give you loads of extra stats so you don’t have to do the work … I’m looking at such tools at the moment myself
Up till now I’ve been doing this just in excel - you can export your user data and run a few queries to monitor this. I gave a value to each post read, to posts (replies) and to new threads, then categorised them accordingly
So far it shows 20% are ‘readers’, 25% are ‘participants’ and 15% are ‘creators’
I’ve found that most analysis tools are under-valuing the role of readers because of a focus just on the activity of posting. There is a big difference between inactive members and active readers!
There are ways (e.g. separating logged in/out users, measuring read time, collating paged threads etc.) to guide Google Analytics to do quite a bit of this for you; but it takes some proper GA-fu to accomplish.
I think this is similar to what you are looking for. Since you want all users and not only anonymous, you would have to remove the condition that the user is anonymous.
I wonder if the same fields could be shown in admin, or if the user directory (when disabled in settings) can still be viewed by admins so these additional details are visible.