Page MenuHomePhabricator

[M] Top read personalized data slide “X is your top read article”.
Open, LowPublic

Assigned To
None
Authored By
HNordeenWMF
Oct 2 2024, 3:28 PM
Referenced Files
F57589334: image.png
Oct 4 2024, 7:31 PM
F57587737: image.png
Oct 4 2024, 12:03 AM
F57582999: image.png
Oct 2 2024, 3:28 PM
F57583001: image.png
Oct 2 2024, 3:28 PM
F57582987: image.png
Oct 2 2024, 3:28 PM

Description

Background

The Apps team plans to explore if a personalized Wikipedia in Review feature that displays insights about a user's reading history, editing history, and donation history is engaging for App users, and inspires them to make a donation to the Wikimedia Foundation.

Requirements
  • The personalized version of the slide should only display if the user has an article that has been viewed more than 2 times.
  • If the user is not eligible for this slide, no slide should be shown (until Task for Collective Top Read slide is completed)
  • List the title of the user's top read article
  • Note how many times the article was opened
  • List up to 3 top read articles if the user has them
  • If two articles are tied for top-read, or in the list of top read, randomly select one

Nice to have

  • Link the article title to the article
Designs
image.png (1×786 px, 94 KB)
Personalized
Engineering Notes
  • (data half) Upon app resume method (comment todo area mentioned in T376041), pull persisted slide item object for this slide identifier. If evaluated = no AND remote config does not have a personalized slide kill switch, extract the top 3 articles that were read the most. We should be able to lean on the fetchPageViewCounts() method created as a part of T370216. Save as metadata for that slide item. Then set “evaluated = yes”. Set display = “yes” if we have at least one article that was viewed >2 times.
  • (UI half) Ensure that when we create the view models before presenting slides (see T376044), fetch the persisted model from previous bullet point. If display = yes, build a slide view model for this data (using the report model's metadata). Ensure slide view model is inserted into the correct order, and that associated collective "fallback" slide is NOT inserted.

Event Timeline

@HNordeenWMF

  • Can we scope-cut linking for V1? That will take a good bit of additional work.

If two articles are tied for top-read, or in the list of top read, can we tie-break by picking a random one? We may have to do extra data fetches to get viewed date.

Can we scope cut by removing the list numbers (1. 2. 3.)? It might add a bit of additional work, especially if it calls for design indentation.

Can we change text to just say "Your top article(s) were:". User's might have one or two, and it'll take extra work to consider that and inject it.

Estimating assuming no linking. Also estimating assuming there is no indent (hard to tell) where the list numbers are. Estimating assuming no article image.

Tsevener renamed this task from Top read personalized data slide “X is your top read article”. to [M] Top read personalized data slide “X is your top read article”..Oct 3 2024, 6:44 PM
Tsevener updated the task description. (Show Details)

@Tsevener

Can we scope-cut linking for V1? That will take a good bit of additional work.

Yes, I'll update task

If two articles are tied for top-read, or in the list of top read, can we tie-break by picking a random one? We may have to do extra data fetches to get viewed date.

Random is fine

Can we scope cut by removing the list numbers (1. 2. 3.)? It might add a bit of additional work, especially if it calls for design indentation.

I thought about this too, is easier possible to list them as bullets?

Can we change text to just say "Your top article(s) were:". User's might have one or two, and it'll take extra work to consider that and inject it.

Yes

Estimating assuming no linking. Also estimating assuming there is no indent (hard to tell) where the list numbers are. Estimating assuming no article image.

I'll move adding article images to it's own task