Page MenuHomePhabricator

[DE3.2.8] Experiment exposure logging in mobile apps
Closed, ResolvedPublic1 Estimated Story Points

Description

T434938: [DE3.2.8] App Install ID-based experiment assignments in GrowthBook requires experiment_exposure events that have the following contextual attribute information to power Dimensions in GrowthBook (for digging deeper into experiment results). https://gitlab.wikimedia.org/repos/product-analytics/data-pipelines/-/blob/main/mobile_apps/experiment_assignment_query_iceberg.hql?ref_type=heads shows how the data is used to populate dimensions.

These experiment_exposure events must be produced when the user experience diverges based on group assignment (or "bucketing"). See https://wikitech.wikimedia.org/wiki/Test_Kitchen/Experiment_exposure_logging for more information.

Dimension in GrowthBookDerived from these fields
user_auth_statusperformer.is_bot, performer.is_temp, performer.is_logged_in
app_platformagent.client_platform
app_themeagent.app_theme
app_release_statusagent.release_status
app_primary_language_codeperformer.language_primary
country_namehttp.client_ip (automatically populated at event ingest time)
country_codehttp.client_ip (automatically populated at event ingest time)

AC

  • When an experiment's instrumentation produces experiment_exposure events to product_metrics.app_base stream, those events include the requested properties (see above).
    • in iOS
    • in Android

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript
mpopov added a subscriber: Dbrant.

@Dbrant: By the way, the event data I listed seemed to be in all the events that the apps were sending to product_metrics.app_base anyway, so I don't think you need to change anything. It's mostly just me being explicit about why it is especially important for experiment_exposure events to include those properties (even if all events have them just in general by default) and how we're using them (to power Dimensions in GB).

Seddon triaged this task as High priority.Aug 18 2026, 5:49 PM
Seddon set the point value for this task to 1.
mpopov renamed this task from Experiment exposure logging in mobile apps to [DE3.2.8] Experiment exposure logging in mobile apps.Aug 18 2026, 9:17 PM
mpopov added a project: OKR-Work.

Looks like iOS implemented this for T427688: [M/L] Deploy Onboarding & "For you" feed revamp as A/B Test https://github.com/wikimedia/wikipedia-ios/blob/b91e9013baff6b8d1d63a4604cf7a9340ca72b77/WMFData/Sources/WMFData/Data%20Controllers/Home/WMFHomeDataController.swift#L61, although the control group in that experiment does not send data to product_metrics_app_base, so that experiment is ineligible for import into GB.

Either way, marking this as Done since broadly speaking both apps are doing this now.