Skip to content

Conversation

@athiramanu
Copy link

@athiramanu athiramanu commented Oct 3, 2025

This change is part of the feature to support Web Experiments in Remote Config. Changes can be broken down as below:

  • Introduces the experiment details in the fetch response type
  • Extracts experiments received from the fetch response and saves in indexedDB
  • Sets the experiment and variant received as user property

Design doc (internal): go/experiments-web

athiramanu and others added 3 commits September 27, 2025 16:42
* feat: Process experiment metadata in RC fetch response

* [Fix] Storage cache is not updating when there are no experiments in response

* Add result of running yarn docgen:all

* Address review comments

* Fix yarn format failures

* yarn docgen changes added

* Export firebaseExperimentDescription

---------

Co-authored-by: Athira M <[email protected]>
* feat: Process experiment metadata in RC fetch response

* [Fix] Storage cache is not updating when there are no experiments in response

* Add result of running yarn docgen:all

* feat: Process experiment metadata in RC fetch response

* feat: Add ABT support for remote config

* [Fix] Storage cache is not updating when there are no experiments in response

* Merge conflict fix

* Yarn format fix

* Fix merge conflicts

* Address review comments

* Fix yarn format failures

* yarn docgen changes added

* Export firebaseExperimentDescription

* Address review comments

---------

Co-authored-by: Athira M <[email protected]>
* feat: Process experiment metadata in RC fetch response

* feat: Add ABT support for remote config

* feat: Integrate firebase internal analytics with ABT

* [Fix] Storage cache is not updating when there are no experiments in response

* feat: Process experiment metadata in RC fetch response

* [Fix] Storage cache is not updating when there are no experiments in response

* Add result of running yarn docgen:all

* feat: Process experiment metadata in RC fetch response

* feat: Add ABT support for remote config

* [Fix] Storage cache is not updating when there are no experiments in response

* Merge conflict fix

* Yarn format fix

* Fix merge conflicts

* Integrate ABT with Firebase analytics to add experiment as UP

* Fix yarn format errors

* Address review comments

* Fix yarn format failures

* yarn docgen changes added

* Export firebaseExperimentDescription

* Address review comments

* Address review comments

* Add unit tests

* Add error handling

* Remove log

---------

Co-authored-by: Athira M <[email protected]>
@athiramanu athiramanu requested review from a team and erikeldridge as code owners October 3, 2025 06:20
@changeset-bot
Copy link

changeset-bot bot commented Oct 3, 2025

⚠️ No Changeset found

Latest commit: 851a47f

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@google-oss-bot
Copy link
Contributor

google-oss-bot commented Oct 3, 2025

Size Report 1

Affected Products

  • @firebase/ai

    TypeBase (ccbf7ba)Merge (e879edd)Diff
    browser63.3 kB65.1 kB+1.81 kB (+2.9%)
    main67.1 kB69.0 kB+1.90 kB (+2.8%)
    module63.3 kB65.1 kB+1.81 kB (+2.9%)
  • @firebase/auth

    TypeBase (ccbf7ba)Merge (e879edd)Diff
    browser188 kB188 kB+41 B (+0.0%)
    cordova161 kB161 kB+41 B (+0.0%)
    main144 kB144 kB+41 B (+0.0%)
    module188 kB188 kB+41 B (+0.0%)
    react-native161 kB161 kB+41 B (+0.0%)
  • @firebase/auth-cordova

    TypeBase (ccbf7ba)Merge (e879edd)Diff
    browser161 kB161 kB+41 B (+0.0%)
    module161 kB161 kB+41 B (+0.0%)
  • @firebase/auth-web-extension

    TypeBase (ccbf7ba)Merge (e879edd)Diff
    browser139 kB139 kB+41 B (+0.0%)
    main155 kB156 kB+41 B (+0.0%)
    module139 kB139 kB+41 B (+0.0%)
  • @firebase/auth/internal

    TypeBase (ccbf7ba)Merge (e879edd)Diff
    browser198 kB198 kB+41 B (+0.0%)
    main169 kB169 kB+41 B (+0.0%)
    module198 kB198 kB+41 B (+0.0%)
  • @firebase/remote-config

    TypeBase (ccbf7ba)Merge (e879edd)Diff
    browser39.0 kB41.4 kB+2.40 kB (+6.1%)
    main40.2 kB42.6 kB+2.40 kB (+6.0%)
    module39.0 kB41.4 kB+2.40 kB (+6.1%)
  • bundle

    TypeBase (ccbf7ba)Merge (e879edd)Diff
    remote-config (getAndFetch)59.4 kB60.9 kB+1.51 kB (+2.5%)
  • firebase

    TypeBase (ccbf7ba)Merge (e879edd)Diff
    firebase-ai.js49.9 kB51.3 kB+1.32 kB (+2.6%)
    firebase-auth-cordova.js139 kB139 kB+41 B (+0.0%)
    firebase-auth-web-extension.js122 kB122 kB+41 B (+0.0%)
    firebase-auth.js159 kB159 kB+41 B (+0.0%)
    firebase-compat.js809 kB811 kB+1.43 kB (+0.2%)
    firebase-remote-config-compat.js38.7 kB40.1 kB+1.43 kB (+3.7%)
    firebase-remote-config.js43.5 kB45.0 kB+1.48 kB (+3.4%)

Test Logs

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/YCgC9PmvRE.html

@google-oss-bot
Copy link
Contributor

google-oss-bot commented Oct 3, 2025

Size Analysis Report 1

This report is too large (76,818 characters) to be displayed here in a GitHub comment. Please use the below link to see the full report on Google Cloud Storage.

Test Logs

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/Jbh45Y30Wd.html

@athiramanu athiramanu requested a review from nk-1983 October 3, 2025 06:47
// months.
timeToLiveMillis: string;

// A repeated of Remote Config parameter keys that this experiment is
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't seem to read correctly.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated. Let me know whether it makes sense now


## FetchResponse.experiments

A/B Test and Rollout experiment metadata.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Metadata for A/B testing and Remote Config Rollout experiments

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Copy link

@jenh jenh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: @nk-1983 also approved this CL, but it didn't get firebase-tw approval due to a group sync issue (should be resolved now!).

Copy link
Contributor

@hsubox76 hsubox76 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a changeset to ensure this will be published. Use yarn changeset and follow the dialog. It's fine if you mess up, you can edit the file after it's created. The bump should be minor. Manually add "firebase: minor" to the file after it's created - see https://g3doc.corp.google.com/firebase/jscore/g3doc/contributing/changeset.md?cl=head

* Bug fixes

* yarn format fail

* update event name

* Ensure user property is parsed

* Add firebase prefix to exp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants