diff --git a/packages/remote-config/src/abt/experiment.ts b/packages/remote-config/src/abt/experiment.ts index 326f05a87cf..5b197cde486 100644 --- a/packages/remote-config/src/abt/experiment.ts +++ b/packages/remote-config/src/abt/experiment.ts @@ -39,7 +39,7 @@ export class Experiment { const currentActiveExperiments = (await this.storage.getActiveExperiments()) || new Set(); const experimentInfoMap = this.createExperimentInfoMap(latestExperiments); - this.addActiveExperiments(currentActiveExperiments, experimentInfoMap); + this.addActiveExperiments(experimentInfoMap); this.removeInactiveExperiments(currentActiveExperiments, experimentInfoMap); return this.storage.setActiveExperiments(new Set(experimentInfoMap.keys())); } @@ -55,14 +55,11 @@ export class Experiment { } private addActiveExperiments( - currentActiveExperiments: Set, experimentInfoMap: Map ): void { const customProperty: Record = {}; for (const [experimentId, experimentInfo] of experimentInfoMap.entries()) { - if (!currentActiveExperiments.has(experimentId)) { - customProperty[experimentId] = experimentInfo.variantId; - } + customProperty[`firebase${experimentId}`] = experimentInfo.variantId; } this.addExperimentToAnalytics(customProperty); } @@ -74,7 +71,7 @@ export class Experiment { const customProperty: Record = {}; for (const experimentId of currentActiveExperiments) { if (!experimentInfoMap.has(experimentId)) { - customProperty[experimentId] = null; + customProperty[`firebase${experimentId}`] = null; } } this.addExperimentToAnalytics(customProperty); @@ -89,7 +86,8 @@ export class Experiment { try { const analytics = this.analyticsProvider.getImmediate({ optional: true }); if (analytics) { - analytics.setUserProperties({ properties: customProperty }); + analytics.setUserProperties(customProperty); + analytics.logEvent(`set_firebase_experiment_state`); } else { this.logger.warn(`Analytics import failed`); } diff --git a/packages/remote-config/test/abt/experiment.test.ts b/packages/remote-config/test/abt/experiment.test.ts index 8e0b0cb5f13..43365d31f06 100644 --- a/packages/remote-config/test/abt/experiment.test.ts +++ b/packages/remote-config/test/abt/experiment.test.ts @@ -41,7 +41,8 @@ describe('Experiment', () => { storage.getActiveExperiments = sinon.stub(); storage.setActiveExperiments = sinon.stub(); analyticsProvider.getImmediate = sinon.stub().returns({ - setUserProperties: sinon.stub() + setUserProperties: sinon.stub(), + logEvent: sinon.stub() }); }); @@ -81,7 +82,9 @@ describe('Experiment', () => { expectedStoredExperiments ); expect(analytics.setUserProperties).to.have.been.calledWith({ - properties: { '_exp_3': '1' } + 'firebase_exp_3': '1', + 'firebase_exp_1': '2', + 'firebase_exp_2': '1' }); }); @@ -107,7 +110,7 @@ describe('Experiment', () => { expectedStoredExperiments ); expect(analytics.setUserProperties).to.have.been.calledWith({ - properties: { '_exp_2': null } + 'firebase_exp_2': null }); }); });