Skip to content

[Feature Request]: Depend on Play Age Signals API #6179

@BenHenning

Description

@BenHenning

Is your feature request related to a problem? Please describe.

There are a number of laws being passed in jurisdictions that affect Oppia Android which require some level of age verification for users. This is particularly noteworthy for Brazil since we do have a lot of beta testers reporting from Brazil.

Fundamentally, the app doesn't quite fit under Brazil's specific statute for requiring the additional checks (see Brazil's Digital ECA for more specifics), but Google Play will likely require us to at least ingest the Play Age Signals API during application startup even though we won't actually be making any changes to app behavior because of it.

Describe the solution you'd like

There are several changes needed here:

  • We will need to update our privacy policy on the site and in the app (since they match) to include specific language about how we use the signals API strictly for local regulatory compliance, that the data is only processed locally on the device, and that it's never used for profiling or analytics.
  • We need to actually integrate with the Signals API which will require some technical investigation. It's expected we can depend specifically on this artifact: https://maven.google.com/web/index.html?q=com.google.android.play#com.google.android.play:age-signals:0.0.3. https://developer.android.com/google/play/age-signals/overview has some more details on integration. Fortunately it seems that this is a standard Java library with no required Kotlin version so we shouldn't run into integration problems there.
  • We will need to validate that this is working correctly (automated testing seems easy since there should be a FakeAgeSignalsManager that can be used but manual testing steps need investigation).
  • We are also going to need to make changes in the Play Console itself to attest this integration as the specific Play Console requirement.

Main challenges:

  1. The new API does not support Lollipop (it's SDK 23+) due to those older devices reaching end-of-life for Google Play Services. We do have a few 5.x users, though I'm not certain how many are specifically in Brazil. To keep things simple we will proceed with the implementation and version-guard the API integration with M+. We may need need to perform a manifest override, as well (but it's not clear yet if we will), e.g.:
    <uses-sdk tools:overrideLibrary="com.google.android.play.agesignals" />
  2. We need to integrate this in a way that doesn't require the app to use Play Store (i.e. works without Google Play Services). That may just require catching a certain exception, but this needs more investigation as well.

Describe alternatives you've considered

N/A -- We must integrate with this API.

Additional context

This will need to be a GA blocker since the app is officially moving out of a testing phase, and not integrating this may make it challenging to participate in the "Designed for Families" program.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Impact: MediumModerate perceived user impact (non-blocking bugs and general improvements).Work: MediumThe means to find the solution is clear, but it isn't at good-first-issue level yet.enhancementEnd user-perceivable enhancements.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions