Firebase Remote Config - "user in random percentile" with key
Asked Answered
V

1

11

I'm exploring using Firebase's "User in random percentile" condition to target different segments of a customer-base for A/B testing and have a few questions after reviewing the Firebase Remote Config Parameters and Conditions documentation:

Each app instance is persistently mapped to a random whole or fractional number, according to a key defined in that project.

  1. Assuming that like setUserProperty this value persists for all generated percentiles (i.e. those without keys and with keys) until the app in uninstalled. Is this a correct assumption?

  2. If a condition maps to a random percentile that is <= 50 and I then change that condition to only target <= 10 (but do not modify the key associated with the random percentile), I expect the 11-50 percentile to now match on the next condition (could be the default) but the original 0 to 10 percentile should still match on the condition. Are the these assumptions correct?

  3. Once a random percentile is created for a user, does that value persist across any mutations to conditions so long as the key for that percentile does not change? For example, for key "firebase_test" user A's percentile value is 47%. So long as user A does not uninstall the app that user's percentile value will always be 47% for "firebase_test".

  4. Is the FirebaseRemoteConfig singleton doing any persistence of values? I'm assuming a fetch after the cache expires will ignore any values returned previously by getValue methods and simply return the latest value configured.

  5. Is there any way to print out the percentile value a user is assigned for given keys (and no key as well)? For example calling mFirebaseRemoteConfig.getPercentile("firebase_test") would return 1.234.

Thank you!

Voyles answered 25/1, 2017 at 23:54 Comment(0)
D
8
  1. That's true on iOS. I believe on Android, this value will persist even if you uninstall/reinstall your app.

  2. Yes, that assumption is correct. (This is how you can do gradual rollouts of feature with remote config)

  3. I believe so, although if you have specific concerns, I'd be happy to hear 'em

  4. That's true, assuming you also remember to call applyFetched after getting those new values.

  5. Nope, there's no way to do this currently.

Dryer answered 14/2, 2017 at 17:40 Comment(2)
Thanks, Todd! I've integrated Firebase RemoteConfig into our Android app here at Evernote and what I'm seeing so far is 100% line with all your statements. Point 5 would be great for debugging but since things are working, there's no major need for it! :)Voyles
About 3, on Android, even after uninstalling/reinstalling the app, the user is still in the same percentile. It would be useful to have a way for a debug device to "reset" its percentile, to be able to test that the remote config server settings are correct. A related question was opened about that: https://mcmap.net/q/1019603/-firebase-remote-config-what-is-the-definition-of-an-quot-app-instance-quot-regarding-percentile-conditionsEutrophic

© 2022 - 2024 — McMap. All rights reserved.