Page MenuHomePhabricator

Migrate iOS schemas to MEP
Closed, ResolvedPublic

Description

Background
Most iOS data schemas are still on the legacy system. We need to migrate them to MEP as the legacy system is no longer supported.

The current legacy iOS schemas can be found here: https://meta.wikimedia.org/wiki/Special:PrefixIndex?prefix=MobileWikiAppiOS&namespace=470

Documentation can be found here https://wikitech.wikimedia.org/wiki/Event_Platform/Schemas/Guidelines

Requirements

  • Analyze which schemas are still needed
  • Create the new schemas on MEP
  • Update the iOS app to remove unused schemas and send data correctly to the new system
  • Create new task for Breadcrumbs with an estimation of LOE

Event Timeline

JTannerWMF added a project: ios-app-v7.1.
JTannerWMF moved this task from Tasks from Product Backlog to Doing on the ios-app-v7.1 board.

The MobileWikiAppiOSLivingDoc schema is not currently used, and there is a task for the removal of the related feature code from the app T305562

Recap of action items from our meeting with Android and @SNowick_WMF for converging the iOS and Android session metrics:

  1. To match Android a little more, iOS will add some basic session ID persistence (user defaults should be fine), so that when a user terminates and comes back within the timeout, the same session ID is used.
  2. iOS will increase its timeout from 15 minutes to 30 minutes.
  3. As of this time, iOS will not keep track of app activity timestamps against web view scrolling or native screen appearance, like Android. Let's think about this work in a followup task when we consider breadcrumb work (mentioned in this task description).
    • This means potentially, if a user doesn't interact with the app for 30 minutes+ but it is kept foregrounded, iOS will keep the same session ID the next time they interact with the app whereas Android would have created a new session ID. This is because iOS only evaluates the need for a new session ID upon foregrounding.
  4. iOS will update the SessionFunnel to send data to Android's MEP session schema (rename work will be in T331481). iOS will comment out sending page_load_latency_min and page_load_latency_max for now (just in case we decide to send it again later). iOS will no longer send category, label, or action in this funnel. iOS will no longer send a session_start or session_end action. Instead this session data event will now be sent whenever a sessionID is regenerated or reset (so maybe within EventPlatformClient's resetSession() method), remove previous calls where session_start and session_end were sent.
  5. For the session_data object in the Android schema, we will only send page_load_latency_ms for now.

Moved to needs QA to test if we're sending data correctly.

@Mazevedo - Following up on migration - I'm not sure if we listed as needed to migrate but for Watchlists design review we will indeed need to migrate over MobileWikiAppiOSNavigationEvents. This may be in progress and I haven't seen it yet but we've been asked to track additional toolbar engagement while users are in 'article view' and we will need to verify that the events we are tracking include those clicks. This should be spun off into a new ticket once we verify the schema is being migrated. Thanks!

These changes will be deployed as part of the 7.3.0 release but will be verified by analytics post-release

MEP Migration Status:
Migrations as requested have been completed so Resolving this task.
Data validation has been ongoing - the following migrated schemas have been resolved:

ios_search
https://phabricator.wikimedia.org/T335544

ios_reading_lists
https://phabricator.wikimedia.org/T335547

ios_navigation_events
https://phabricator.wikimedia.org/T336785

Still investigating:

ios_setting_action:
https://phabricator.wikimedia.org/T335548

ios_login_action:
https://phabricator.wikimedia.org/T335550