Низкое количество пользователей в экспериментах FireBase A / B - PullRequest
0 голосов
/ 16 февраля 2020

У меня возникли проблемы с тестированием Firebase A / B в нашем приложении android. Похоже, что число «Пользователи в эксперименте» примерно в 5 раз ниже, чем фактическое количество пользователей, которое должно быть в указанном эксперименте. Эксперимент начался до развертывания и длится более недели, но количество пользователей, входящих в него, намного меньше, чем количество уникальных пользователей, посетивших приложение с тех пор. Эксперимент открыт для 100% правомочных пользователей, условия или событие активации не установлены. (Я делаю перекрестные ссылки на данные из панели управления a / b и Google Analytics)

некоторая полезная информация:

Код инициализации для удаленной конфигурации в нашем приложении android

    public void initRemoteConfig(){
    // Initialize Firebase Remote Config.
    FirebaseRemoteConfig remoteConfig = FirebaseRemoteConfig.getInstance();

    // Define Firebase Remote Config Settings.
    FirebaseRemoteConfigSettings firebaseRemoteConfigSettings =
            new FirebaseRemoteConfigSettings.Builder()
                    .build();

    // Apply config settings and default values.
    remoteConfig.setConfigSettings(firebaseRemoteConfigSettings);
    remoteConfig.setDefaultsAsync(RemoteConfigHelper.getDefaultValuesMap()).addOnCompleteListener(task -> {
        long cacheExpiration = DateUtils.DAY_IN_MILLIS;
        // If in debug on testing inside the office reduce cacheExpiration to 0
        // so that each fetch goes to the server. This should not be used in release builds.
        if (Tools.DEBUG || MetaDataHelper.getInstance(this).getSetting(R.string.in_office).equals(AppConsts.TRUE)) {
            cacheExpiration = 0;
        }

        remoteConfig.fetch(cacheExpiration)
                .addOnSuccessListener(aVoid -> {
                    // Make the fetched config available via
                    // FirebaseRemoteConfig get<type> calls.
                    remoteConfig.activate();
                    RemoteConfigHelper.isVideoAdUser = FirebaseRemoteConfig.getInstance().getBoolean(SHOW_VIDEO_AD_OVERVIEW);
                    RemoteConfigHelper.logRemoteValues();
                })
                .addOnFailureListener(e -> {
                    Crashlytics.setString(CALLBACK,"remote config fetch failed");
                    Crashlytics.logException(e);
                    // There has been an error fetching the config
                });
    });
    Loger.d(TAG, "Remote instance ID token: " + getPrefString(R.string.pref_notification_reg_id,""));
}

также мы получаем FirebaseRemoteConfigServerException при сбое, полный журнал:

Non-fatal Exception: com.google.firebase.remoteconfig.FirebaseRemoteConfigServerException
Fetch failed: The user is not authorized to access the project. Please make sure you are using the API key that corresponds to your Firebase project.
com.google.firebase.remoteconfig.internal.ConfigFetchHandler.createExceptionWithGenericMessage

(количество пользователей, получающих это исключение, недостаточно для объяснения проблемы)

  1. есть идеи, почему это происходит? наше a / b-тестирование бесполезно, пока мы не соберем в своих экспериментах больше пользователей.
  2. Является ли использование непостоянных пользовательских свойств firebase в качестве условий для экспериментов хорошей идеей в целом? (ie: условный эксперимент на предпочитаемом пользователем языке)

Заранее спасибо:)

1 Ответ

0 голосов
/ 04 марта 2020

У меня была такая же проблема при обновлении зависимостей Firebase SDK: 403 Запрещено .

Я нашел это Readme , описывающее проблему; Это работало со мной.

...