Page MenuHomePhabricator

[Hackday] Analyse user interactions with RecentChanges
Closed, ResolvedPublic

Description

Questions to answer:

  1. Which filters are used and how frequently?
  2. What combinations of filters are popular?
  3. How frequently are people filtering for namespace vs tag vs other? priority normal
  4. How frequently do users click through to other review tools?
  5. How frequently do users click through to help?
  6. How frequently do users click through to non-mainspace pages? priority low
  7. How frequently is live updates enabled?
  8. How many users have disabled javascript support? priority normal
    • Controlled by the rcenhancedfilters-disable user preference
    • T223206#5257031
  9. How frequently to users change the limit and days parameters?
  10. How frequently are users interaction with the highlight colour feature?
  11. How frequently do users use the "group" option as a user preference? priority high
  12. How frequently do users use the "group" option as a filter?
  13. How frequently are save filters used? priority normal

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

@MNeisler: As discussed: I'll take How frequently to users change the limit and days parameters?

@phuedx - Just confirming I'm currently working on Which filters are used and how frequently? Will post results soon

How frequently is live updates enabled?

AFAICT there's no instrumentation for this button nor is there a parameter sent to the backend that indicates that the feature is enabled. The cheapest way to answer this question would be to create a tiny script in MediaWiki-extensions-WikimediaEvents that increments a StatsD.

Which filters are used and how frequently?

Rough query results of the top 20 filters used in 2019

filterviewspercent usage
changeType__hidepageedits11377413.92%
changeType__hidenewpages11295513.82%
changeType__hidelog11145113.64%
automated__hidehumans8610610.54%
days__7734748.99%
limit__50577447.07%
lastRevision__hidelastrevision326954.00%
limit__250295533.62%
days__30193482.37%
limit__500193332.37%
days__3186562.28%
namespace__4120601.48%
display__enhanced105851.30%
namespace__388951.09%
userExpLevel__unregistered82831.01%
authorship__hidebyothers71670.88%
page__target70740.87%
namespace__165260.80%
limit__100062710.77%
userExpLevel__newcomer59440.73%

Query

SELECT  event.filter, Count(*) as views
FROM event.changeslistfiltergrouping
WHERE year = 2019 
AND event.action = 'filtermenu'
AND useragent.is_bot != true
GROUP BY event.filter
ORDER BY views DESC LIMIT 20;

I'll take a look at finding the count of unique filter ID per group session ID next

ovasileva triaged this task as Medium priority.May 20 2019, 2:18 PM
ovasileva moved this task from Incoming to Product Owner Backlog on the Web-Team-Backlog board.
This comment was removed by phuedx.

[Which] combinations of filters are popular?

filters	n	
["automated__hidehumans","changeType__hidelog","changeType__hidenewpages","changeType__hidepageedits","days__7","limit__50"]	108	
["changeType__hidelog","changeType__hidenewpages","changeType__hidepageedits","days__3","lastRevision__hidelastrevision","limit__250"]	96	
["automated__hidehumans","changeType__hidelog","changeType__hidenewpages","changeType__hidepageedits","days__7","limit__50","namespace__4"]	55	
["automated__hidehumans","changeType__hidelog","changeType__hidenewpages","changeType__hidepageedits","days__7","limit__50","namespace__1"]	37	
["automated__hidehumans","changeType__hidelog","changeType__hidenewpages","changeType__hidepageedits","days__7","limit__50","namespace__3"]	29	
["changeType__hideWikibase","changeType__hidelog","changeType__hidenewpages","changeType__hidepageedits","days__7","lastRevision__hidelastrevision","limit__250"]	26	
["changeType__hidelog","changeType__hidenewpages","changeType__hidepageedits","days__30","lastRevision__hidelastrevision","limit__500"]	18	
["automated__hidehumans","changeType__hidelog","changeType__hidenewpages","changeType__hidepageedits","days__7","limit__50","page__target"]	18	
["changeType__hidelog","changeType__hidenewpages","changeType__hidepageedits","days__30","lastRevision__hidelastrevision","limit__250"]	16	
["changeType__hidelog","changeType__hidenewpages","changeType__hidepageedits","days__7","lastRevision__hidelastrevision","limit__250"]	15	
["automated__hidehumans","changeType__hidelog","changeType__hidenewpages","changeType__hidepageedits","days__30","limit__500"]	14	
["automated__hidehumans","changeType__hidelog","changeType__hidenewpages","changeType__hidepageedits","days__7","limit__500"]	14	
["automated__hidehumans","changeType__hidelog","changeType__hidenewpages","changeType__hidepageedits","days__7","limit__50","userExpLevel__unregistered"]	12	
["automated__hidehumans","changeType__hidelog","changeType__hidenewpages","changeType__hidepageedits","days__14","limit__500","namespace__1"]	12	
["automated__hidehumans","changeType__hidelog","changeType__hidenewpages","changeType__hidepageedits","damaging__likelybad","damaging__verylikelybad","days__7","goodfaith__likelybad","goodfaith__verylikelybad","limit__50"]	11	
["automated__hidehumans","changeType__hidelog","changeType__hidenewpages","changeType__hidepageedits","days__7","limit__50","translations__filter"]	11	
["changeType__hidelog","changeType__hidenewpages","changeType__hidepageedits","days__14","lastRevision__hidelastrevision","limit__250"]	10	
["automated__hidehumans","changeType__hidelog","changeType__hidenewpages","changeType__hidepageedits","days__7","limit__500","namespace__1","namespace__3","namespace__4","namespace__5"]	10



select
    filters,
    count(*) n
from
(
    select
        event.groupidentifier gid,
        sort_array(collect_set(event.filter)) filters
    from
        event.changeslistfiltergrouping
    where
        year = 2019
        and month = 5
        and day = 1
        and event.action = 'filtermenu'
        and useragent.is_bot != true
    group by
        event.groupidentifier
) t
group by
    filters
having
    n >= 10
order by
    n desc
limit 10000
;

N.B. that ChangeListFilterGrouping events are only sent when the user changes the current filters so these results don't include both the default filter and any filter that was loaded from the URL.

ovasileva updated the task description. (Show Details)
JTannerWMF subscribed.

It appears Web-Team-Backlog is working on this

Good news! I figured out access to the user properties table. I'll work on the questions that require info in this table starting with the following one marked as high priority:

How many users have enabled enhanced RC?
How frequently do users use the "group" option either as a filter or as a user preference?

@phuedx - Do you know which user property controls the "group" preference for this question?

How frequently do users use the "group" option either as a filter or as a user preference? priority high

@phuedx - Do you know which user property controls the "group" preference for this question?

This question appeared to be a duplicate of the one above so I removed it (T223206#5240152). To answer your question, it's usenewrc.

How many users use the "group" option as a user preference?

This is controlled by the 'usenwrc' user preference. Here are the current number and proportion of all users for each wiki that have enhanced recent changes enabled in their user preferences. Data reflects the current status of user preferences based on a query run today (June 13, 2019) on the user_properties table found in the MariaDB replicas.

Note the current multi-instance setup of the replicas does not easily allow for aggregation across multiple wikis. I've reported the numbers for some of the target wikis with a significant portion of edits coming from mobile but let me know if there is another wiki you'd like to look into.

wikinum_usernewrcprop_usenewrc (%)
English Wikipedia477960.131
Spanish Wikipedia40850.075
Japanese Wikipedia32890.221
Chinese Wikipedia28120.102
Portuguese Wikipedia29640.131
Italian Wikipedia18400.100
Persian Wikipedia6520.078
Hebrew Wikipedia8200.155
Arabic Wikipedia16700.100
Finnish Wikipedia7380.176
Vietnamese Wikipedia5210.077
Indonesian Wikipedia13820.130
English Wiktionary11630.033
Thai Wikipedia6060.170
Hindi Wikipedia2610.057

Data via

Select COUNT(usenewrc_user) as num_usernewrc,
ROUND(100*COUNT(usenewrc_user)/COUNT(1), 3) as prop_usenewrc
FROM
(
SELECT up_user as usenewrc_user
from user_properties
where up_property = 'usenewrc'
and up_value = 1
) as usenewrc
RIGHT JOIN user ON usenewrc.usenewrc_user = user.user_id
MNeisler updated the task description. (Show Details)

How many users have disabled javascript support? priority normal

This is controlled by the 'rcenhancedfilters-disable' user preference. Here are the current number and proportion of all users that have disabled javascript support enabled in their user preferences. Data reflects the current status of user preferences based on a query run today (June 13, 2019) on the user_properties table found in the MariaDB replicas.

Numbers reported for some of the target wikis with a significant portion of edits coming from mobile but let me know if there is another wiki you'd like to look into.

wikinum_rcefdisableprop_rcefdisable (%)
English Wikipedia12280.003
Spanish Wikipedia1310.002
Japanese Wikipedia1060.007
Chinese Wikipedia1150.004
Portuguese Wikipedia680.003
Italian Wikipedia720.004
Persian Wikipedia630.008
Hebrew Wikipedia420.008
Arabic Wikipedia960.006
Finnish Wikipedia660.016
Vietnamese Wikipedia530.008
Indonesian Wikipedia1810.017
English Wiktionary800.002
Thai Wikipedia510.014
Hindi Wikipedia340.007

Data via

Select COUNT(rcefdisable_user) as num_rcefdisable,
ROUND(100*COUNT(rcefdisable_user)/COUNT(1), 3) as prop_rcefdisable
FROM
(
SELECT up_user as rcefdisable_user
from user_properties
where up_property = 'rcenhancedfilters-disable'
and up_value = 1
) as rcefdisable
RIGHT JOIN user ON rcefdisable.rcefdisable_user = user.user_id
ovasileva subscribed.

I think we're all done here. Thank you @MNeisler and @phuedx!