[[ https://blog.wikimedia.org/2018/05/25/synced-reading-lists/ | Reading List Syncing (RLS) ]] is a really cool feature/service which required time & effort from multiple teams to make it happen. The biggest thing is that now articles saved for offline reading on the Android device(s) can be synced to the user's iOS device(s) too. So, naturally, there are some questions that would be great to answer:
- How many people actually syncing or just enabling syncing?
- How many people getting actual use out of it by syncing to multiple devices or are they just sending data to their account in the cloud without syncing to another device?
- How many users syncing reading lists across their iOS //and// Android devices?
…as the answers to these questions would inform resourcing decisions regarding the future of this service and taking on similarly cross-platforms initiatives (like if we learn that I'm only one of 5 people total who sync across platforms).
After several discussions about privacy and workload implications, we (@Fjalapeno @JMinor @mpopov) have arrived at the following proposed solution:
- When the user enables RLS on their device, there's an event that is sent by the client to EL which registers the device.
- The client then remembers when this event was sent and resends it after 60 days.
- If RLS is already enabled when the user opens the app for the first time after updating to the version that has this funnel, that's when the app sends the first registration event.
## EventLogging Schema
[[ https://meta.wikimedia.org/wiki/Schema:MobileWikiAppRLSRegistration | MobileWikiAppRLSRegistration schema ]] has the following fields:
- `user_id` which has the username or ID, doesn't matter as long as it's consistent between iOS & Android and we can use it to link multiple `app_install_id`'s together
- `app_install_id` that Android & iOS apps include in events anyway
- `ts` field for client-side timestamps in case the device goes offline and the event is queued up for a future opportunity
Since the events include User-Agent strings from the apps, we can use it to figure out if people are enabling RLS across platforms.
This work is low priority. Having these analytics would be nice to have at some point, but the stakeholders aren't itching to have those questions answered and there is more important work that needs to be done first.
## Future Work
**Note** that those are basically the only questions we could answer. Any questions regarding users' actual usage of the feature/service as well as reading lists in general would require additional EL work on client-side.