Page MenuHomePhabricator

Track all viewed suggestions
Open, Needs TriagePublicFeature

Description

Feature summary:
Store all suggestions in the database that are shown to users. Currently, only their interactions with suggestions are tracked ("accept" or "reject").
This feature will require all of the suggestion retrieving and processing logic to be moved to the back end.
This means we need two new GET API routes for ISA, e.g.
api/get-machine-vision-suggestions
api/get-metadata-to-concept-suggestions

Each api route will do the following:

  1. Get any suggestions already stored in the suggestions table for the requested image
  2. Retrieve new suggestions from the API
  3. Filter results to remove Denylist items and permanently rejected suggestions
  4. Add any suggestions that are not already in the database (as a new row, with status "unreviewed")
  5. Respond with JSON array of suggestion objects, including a key to indicate if the logged in user has rejected any of the suggestions.

Front end would need to be adjusted to consume the new APIs and remove the processing logic that won't be needed there anymore.

IMPORTANT: There is considerable work involved in this feature, but the data it would yield for the intended "conversion rate" use case would not be accurate in many cases. It may be better to simply look at the percentage of contributions that came from suggestions, or analyse the suggestions left unused for a campaign after being seen by many users.

Use case(s):
Used for generating usage stats to better understand the quality of suggestions.

Benefits:
Would be able to calculate the percentage of of the suggestions that have been accepted/rejected by each service.

IMPORTANT: This would not indicate how many times the suggestion had been seen, just that it had been loaded at some point. It would also be important to realise a "loaded" suggestion may not have been seen (e.g. if user has just clicked to go to next image or another webpage), or if the user has the suggestion box collapsed.