시청자 수 확인하기

I think I bought this up way back when I first started testing the platform.
Will there ever be a way to know how many people are subscribing (watching) a particular topic?

I am being asked for this information more often these days.

2개의 좋아요

This seems unlikely to ever be added as visible to non-administrators.

The freedom of individual users to choose how they want to consume the forum is important, and giving special consideration to Watching a topic by making the number visible to everyone is likely to create bad behavior patterns. (Number Go Up Syndrome is very powerful.)

You should be able to take a Data Explorer query that gets this data and mark it as runnable by moderators or employees, if that’s who the requests are coming from.

3개의 좋아요

We would never want this for non-admins. I will try this with the DE.

2개의 좋아요

Was this ability ever added to Discourse reporting?

Were there any updates to this?

Hi Tom,

This has not been added as a default DE report. However I found a topic that provides a basic DE query to pull this information, maybe that will be helpful:

2개의 좋아요

Hi Mark,

Thanks. So from this it looks like I cannot perform this function at the topic level. Is this correct?

Tom,

No, you can get that info at a topic level by swapping ‘topic’ for ‘category’ like this:

SELECT 
  COUNT(topic_id)
FROM 
  topic_users 
WHERE 
  notification_level = 3

Again, this is a very basic query that just returns a total count of watchers from…in this case…all topics. If you want to specify a particular topic, you could add to the WHERE clause, e.g:

WHERE 
  notification_level = 3
  AND topic_id = 29
8개의 좋아요

This is great!

Thank you!

1개의 좋아요

This is very useful, thanks @MarkDoerr. I modified the query to report on all four notification levels in one pass, and to take an array of topic_ids if needed.
The full grid output table isn’t pretty but has all the info I need.

edit: of course as soon as I posted, Discourse kindly showed me six links with other ways of solving this! Query on!

SELECT 
  topic_id,
  notification_level,
  COUNT(CASE WHEN notification_level = 0 THEN topic_id END) AS Muted_0,
  COUNT(CASE WHEN notification_level = 1 THEN topic_id END) AS Normal_1,
  COUNT(CASE WHEN notification_level = 2 THEN topic_id END) AS Tracking_2,
  COUNT(CASE WHEN notification_level = 3 THEN topic_id END) AS Watching_3
FROM 
  topic_users 
WHERE 
  topic_id IN (9831, 9572, 9424, 7567) -- Add your topic_ids here
GROUP BY
  topic_id, notification_level
1개의 좋아요