Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optional user telemetry (usage statistics unique user count) #637

Closed
veggiesaurus opened this issue Dec 13, 2019 · 2 comments · Fixed by #1670
Closed

Optional user telemetry (usage statistics unique user count) #637

veggiesaurus opened this issue Dec 13, 2019 · 2 comments · Fixed by #1670
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@veggiesaurus
Copy link
Collaborator

veggiesaurus commented Dec 13, 2019

Note: this issue will now focus on the telemetry side of things, rather than the news feed. The initial suggestion is shown below for context.

I suggest we do the following:

  • When the frontend starts, it checks if a uuid value exists in preferences / localStorage. If not, it generates a new value.
  • When the frontend splash screen is opened. it makes an HTTP GET request to a URL defined at build-time by REACT_APP_NEWS_FEED_URL. It passes the uuid as a parameter, as well as the version.
  • The news feed checks a mongoDB for news items for the given version
  • The news feed HTTP server checks if the uuid is listed in the current month's list of active users. If not, it adds them to the list, along with the version they're running. If the version passed to the server is newer than the version stored for the uuid, it updates it.
  • At the end of the month, it consolidates the number of entries in the list, and the distribution of versions. The aggregated statistics are stored in a separate mongoDB collection, and the current month's stats are cleared.

This approach has minimal impact on user privacy, as individual users' app behaviour is not tracked in any way, only the launching of the app itself. In addition, the uuid is entirely anonymous, and is not tracked past the current month.

If we want to extend the analytics slightly, we could also record an approximate (country-level) geo-location, but that has some user privacy questions.

@veggiesaurus veggiesaurus added the enhancement New feature or request label Dec 13, 2019
@Kechil Kechil added the usability review For issues related to usability review label May 4, 2020
@Kechil Kechil removed the usability review For issues related to usability review label Nov 24, 2020
@veggiesaurus veggiesaurus self-assigned this Mar 9, 2021
@kswang1029 kswang1029 added this to the v3.0b-2 milestone Jul 12, 2021
@veggiesaurus
Copy link
Collaborator Author

veggiesaurus commented Aug 24, 2021

todo: update description

@veggiesaurus veggiesaurus changed the title fetch CARTA news (and optional institutional CARTA news) for splash screen Optional user telemetry (usage statistics unique user count) Sep 6, 2021
@veggiesaurus
Copy link
Collaborator Author

veggiesaurus commented Sep 6, 2021

This is likely to be a tricky feature to implement, not from a technical perspective, but from a user experience perspective. We must be cautious and transparent. Initial implementation plan (based on approach used by Atom:

  • Generate UUID on the telemetry server when first use when CARTA starts up. All telemetry would be anonymous with no personal information gathered. The UUID is wrapped in a JWT and sent back to the frontend.
  • Add telemetry setting to preferences dialog with the following options:
    • None: no information will be shared with the CARTA developers
    • Minimal: IP address, CPU and OS information will be sent to developers on application startup
    • Usage: Usage data will be collected, limited to the following: dimensions and file types of images, catalogs and regions opened; analytics widgets opened. No personal or scientific data will be collected. No data that identifies images’ spectral or spatial coordinates will be collected.
  • Show a first-time usage dialog when the user first starts CARTA. The default selection for telemetry would be “Usage”, but the user will be given an option to change it before using CARTA.
  • Display a link to the privacy policy, detailing that the data will not be passed on to any third party for marketing or analysis purposes. No Google analytics, or any other large third party which users may object to. Indicate that a user may request a copy of all telemetry collected by CARTA by contacting the developers.
  • (Technical details) Do all the telemetry collection on the frontend. Minimal telemetry sent to server on application startup. Usage telemetry for the session stored in browser local storage, previous session’s telemetry uploaded to server on application startup.
    • Connection (for monitoring active users
    • Disconnection (for monitoring average session durations)
    • File open (for monitoring usage behaviour: number of files opened and size of files)
    • Region import (for monitoring usage behaviour: number of regions per import)
    • Region creation (for monitoring usage behaviour: which region types are used most)
    • Widget creation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants