Page MenuHomePhabricator

Resurrect the Session Funnel.
Closed, ResolvedPublic2 Estimated Story Points

Description

The SessionFunnel class (which is already built into the app, but currently unused) can provide extremely valuable insights into user behavior. Let's revisit this funnel, clean it up, and add a few more things to it: (comments welcome)

  • Number of pages the user visits, categorized by source (i.e. how many pages visited from History, how many from page links, how many from Search results, etc)
  • Total time that the user spends reading the page. If more than one page was visited, the average time per page will be taken.
  • Total amount that the user scrolls through the page (or what percentage of the page the user scrolls through). If more than one page was visited, the average scroll percentage will be taken.
  • Average load time (network latency) of page requests during the session.

Schema: https://meta.wikimedia.org/wiki/Schema:MobileWikiAppSessions

Details

Related Changes in Gerrit:

Related Objects

Event Timeline

Dbrant raised the priority of this task from to Medium.
Dbrant updated the task description. (Show Details)
Dbrant moved this task to Next Sprint on the Wikipedia-Android-App-Backlog board.
Dbrant subscribed.

It looks like the schema for this is MobileWikiAppSessions[0], emphasis on the plural.

[0] https://meta.wikimedia.org/wiki/Schema:MobileWikiAppSessions

Sorry, I'm not sure if this is ready to work on yet or not. @Dbrant, were there any changes needed to the schema? Apologies if I've missed an email.

Change 244693 had a related patch set uploaded (by Dbrant):
[WIP] Revive the session funnel.

https://gerrit.wikimedia.org/r/244693

Change 244693 merged by jenkins-bot:
Revive the session funnel.

https://gerrit.wikimedia.org/r/244693

Tested on my 4.4 and 6.0 physical devices. It seems to be working fine. A few notes:

  • I wasn't able to verify any page views from an external link, since external links target the production app and session logging isn't yet in production. Likewise with the RESTBase API mode, which isn't yet in use.
  • Logged sessions with length of 1 second and zero pageviews are surprisingly common. Do we want to keep these, or should we consider filtering them out up front? They wouldn't seem to provide much insight.
  • This is more a question of schema design, but: is there any particular reason we're interested in how many pages were arrived at from a disambiguation link? Most of the logging concerns features available in the nav menu for which we want to know more about engagement, but do we care one way or the other about disambiguation pages for our purposes here?