Android - настройка firebase.test.lab не позволяет исключить активность тестирования игрового магазина из аналитики firebase

Каждый раз при загрузке нового выпуска в магазин Google Play я получаю около 8 новых пользователей, которые вошли в мою аналитическую консоль Firebase в течение примерно 10 минут. Я еще не выпустил свое приложение публично, оно находится на закрытом тестовом треке, в котором никто не участвовал. Единственная возможная причина - внутреннее тестирование Google, такое как отчеты о предварительном запуске. Эти числа действительно испортят мои данные аналитики, поэтому я хотел бы исключить этот тестовый трафик из аналитики Firebase.

После выполнения предложений в этих предыдущих вопросах, к сожалению, ни одно из упомянутых решений не исключает действия по тестированию.

В моем AndroidManifest.xml после первой строки в теге приложения у меня есть:

<meta-data android:name="firebase_analytics_collection_enabled" android:value="false" />

В начале onCreate () в моей MainActicity у меня есть:

if(!isTestDevice(this))
{
    FirebaseAnalytics.getInstance(this).setAnalyticsCollectionEnabled(true);
}

И у меня есть такая функция:

public static boolean isTestDevice(Context context) {
    String testLabSetting = Settings.System.getString(context.getContentResolver(), "firebase.test.lab");
    return "true".equals(testLabSetting);
}

Сначала я подумал, что функция isTestDevice может работать некорректно, поэтому я добавил следующий код отладки на свой домашний экран:

if(isTestDevice(linearLayout.getContext())) {
    TextView testText = new TextView(linearLayout.getContext());
    testText.setText("TEST DEVICE");
    testText.setId(linearLayout.generateViewId());
    linearLayout.addView(testText, 0, params);

    TextView disabledText = new TextView(linearLayout.getContext());
    disabledText.setText("Analytics disabled");
    disabledText.setId(linearLayout.generateViewId());
    linearLayout.addView(disabledText, 0, params);
}

А на скриншотах предпусковых отчетов я вижу, что функция isTestDevice работает:

Снимок экрана с отчетом перед запуском

Кроме того, если я закомментирую строку setAnalyticsCollectionEnabled(true);, то никакая активность не будет регистрироваться в консоли аналитики Firebase, что показывает, что строка в AndroidManifest.xml правильно отключает аналитику до тех пор, пока не будет запущена строка setAnalyticsCollectionEnabled(true);.

Кроме того, даже если я отключу предварительные отчеты, такая же активность будет регистрироваться примерно у 8 пользователей в течение нескольких минут после загрузки релиза.

Похоже, что регистрируемая активность исходит из какого-то источника, отличного от отчетов о предварительном запуске, поскольку я могу видеть из снимков экрана перед запуском, что устройства предварительного запуска правильно определяются как тестовые устройства, и, кроме того, активность все еще регистрируется, даже если я отключу предварительные отчеты. Но даже при этом активность регистрируется в течение 10 минут после загрузки релиза.

Как я могу предотвратить регистрацию этого действия по тестированию в аналитике firebase? Похоже, что решения в связанных сообщениях больше не работают.

РЕДАКТИРОВАТЬ: Основная особенность моего приложения - это игра. На данный момент мне удалось по существу обойти проблему, включив аналитику только в том случае, если пользователь набирает в игре более одного очка. Это эффективно удаляет весь трафик, регистрируемый ботами, поскольку они просто бесцельно щелкают что-либо и не имеют никакого интеллекта, необходимого для того, чтобы набрать более одного балла. Но это действительно плохой хак, который я бы хотел удалить.


person Karl    schedule 28.04.2020    source источник


Ответы (1)


Единственный надежный способ избежать этого - исключить по IP-адресу. Как вы обнаружили, отключение предварительных отчетов не останавливает выполнение тестов, поскольку мы используем информацию из этих тестов для обнаружения проблем с приложением.

person Justin Broughton    schedule 09.07.2020
comment
Не могли бы вы подробнее рассказать, например, какие IP-адреса исключить? - person Karl; 11.07.2020
comment
Не могли бы вы уточнить , поскольку мы используем информацию из этих тестов для обнаружения проблем с приложением. Можно ли полностью заблокировать пользовательский интерфейс приложения для этих ботов, показывая только пустой экран? В противном случае они будут взаимодействовать с моими настоящими пользователями, что действительно неприятно ... Я не понимаю, как кто-то может жить с таким поведением в производственной среде, у меня такое чувство, что я упускаю здесь что-то важное :(! - person Marcel; 05.12.2020
comment
У меня также возникла та же проблема с тестовой лабораторией Firebase, которая влияет на мою аналитику в производственной среде. Кажется необходимым простое решение. В общем, тестирование в лаборатории не должно ни на что повлиять в производственной среде. - person autumnmaple; 03.01.2021