Skip to content

App Analytics #369

Description

@janoliver20

📖 Description

Own Implementation with AAkira/Napier:
The Kotlin Multiplatform framework is already integrated with our system and logs system events on iOS and Android. We can add a custom log function that can be called wherever necessary, which collects usage data and sends it directly to our gateway like any other observation.

Our own implementation would be preferable since we are not tied to Firebase and there are no additional costs.

To implement this, a new observation called "App Usage" is required.
Within the app, users must be asked for tracking consent, and it must be disclosed in the App Store and Play Store that app usage is being tracked.

Initially, only the most important steps should be logged, with further tasks to specify and detail additional steps.

Out of Scope: Firebase Analytics
Firebase provides a direct API for logging events that are immediately uploaded to Firebase. However, accessing the data is more complicated: the data must be stored in Google Cloud BigQuery and then exported via Google Cloud Functions, both of which involve significant costs.

✅ Acceptance Criteria

  • Interactions to be logged (Tracking consent screen: accepted, denied; General consent: accepted, denied; Presentation screens: start, aborted, answers sent; App status: foreground, background; Page views: appear, disappear; Online/Offline)
  • A decision between Firebase and our own implementation exists
  • New observation "App Usage" exists and can be selected in the Study Manager
  • Usage data is collected with user consent and stored in Elastic
  • Handling of DataHealth is clarified

Further necessary steps to be taken:

  • Extensive testing for all observation types on iOS and Android
  • Garmin and Limesurvey tests
  • Testing if App usage is recorded, when it starts and stops, if it logs and if it doesn't depending on the tracking permission state

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions