Низкое количество пользователей в экспериментах firebase a / b

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

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

Код инициализации для удаленной настройки в нашем приложении для 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 в качестве условий для экспериментов? (например: эксперимент по кондиционированию на языке, предпочтительном для пользователя)

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


person Eyal Gofer    schedule 16.02.2020    source источник


Ответы (1)


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

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

person amrro    schedule 04.03.2020