【发布时间】:2016-06-22 07:36:15
【问题描述】:
背景
Google 发布了一个全新的 API 和服务用于 A/B 测试,使用 Firebase Analytics 和 Firebase Remote Config。
问题
虽然我确实出于其他目的(here 和 here)尝试了该服务,但我还需要将其用于 A/B 测试。
问题是,我不知道如何让它显示分析实验变体结果所需的信息。
只是没有显示(在this website),或者我看的地方不对:
我尝试过的
为了尝试一个实验,我按照教程说的做了,包括:
-
代码中的初始化与the samples中的大致相同:
boolean isDebug = AppComponentsHelper.isInDebugFlavour(context); mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance(); FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder().setDeveloperModeEnabled(isDebug).build(); mFirebaseRemoteConfig.setConfigSettings(configSettings); final HashMap<String, Object> defaults = new HashMap<>(); for (ExperimentType experimentType : ExperimentType.values()) defaults.put(experimentType.experimentId, experimentType.defaultValues); mFirebaseRemoteConfig.setDefaults(defaults); long cacheExpiration = isDebug ? 0 : TimeUnit.HOURS.toSeconds(1); mFirebaseRemoteConfig.fetch(cacheExpiration) .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful()) { mFirebaseRemoteConfig.activateFetched(); final FirebaseAnalytics firebaseAnalytics = FirebaseAnalytics.getInstance(context); for (ExperimentType experimentType : ExperimentType.values()) { String experimentVariant = FirebaseRemoteConfig.getInstance().getString(experimentType.experimentId); firebaseAnalytics.setUserProperty(experimentType.userProperty, experimentVariant); } } } });这是 ExperimentType 的枚举:
public enum ExperimentType { PURCHASES_OFFERED_PRODUCTS("purchases_offered_products_1", "Experiment1", new Gson().toJson(new String[]{"something", "something2"})); public final String experimentId,defaultValues,userProperty; ExperimentType(final String experimentId, final String userProperty, final String defaultValues) { this.experimentId = experimentId; this.defaultValues = defaultValues; this.userProperty = userProperty; }}
为每个实验创建一个新的用户属性(目前只有一个)。
在远程配置屏幕中,添加 2 个变体(默认和条件)。
在加载远程配置时,调用 setUserProperty(参见 #0),如 the tutorial 所示,指向当前变体的参数值。
-
为了跟踪事件,我调用了:
firebaseAnalytics.logEvent(eventName, new Bundle())其中一个调用(目前只有一个),您可能已经猜到了,当 eventName 为 "subscription_premium_purchase" 时。
在运行应用程序时,我让它同时使用了两种变体(当然,每个全新安装都使用一个变体)。
但正如我所展示的,例如,我无法找到一种方法来确定哪个变体导致事件被调用的次数多于另一个。
问题
这里可能缺少什么?我做错了什么?为什么我看不到我使用过的任何变体?
无论如何,用户属性有什么用?它是否用作远程配置和分析之间的“粘合剂”?我应该在那里的文本框中输入什么(它说“按'输入'申请”)?它不应该显示各种变体吗?其他过滤器项目有“类型”,但这个没有。没有什么可以从用户属性中选择。即使在创建用户属性时,我也看不到它的任何设置(描述除外)。我什至不能删除它。无法查看我在图表中创建的条件。
我是否需要使用 BigQuery?
我注意到“获取”函数有时根本无法调用侦听器。怎么会这样?我可以为此添加超时吗?
【问题讨论】:
标签: android firebase ab-testing firebase-analytics