Как определить эксперимент для начинающих пользователей в Firebase?

Я пытаюсь создать эксперимент, используя удаленную конфигурацию Firebase. Критерии следующие: Он должен быть нацелен только на новых пользователей, которые не использовали приложение (открывая приложение в первый раз).

При дальнейших исследованиях я обнаружил, что есть свойство пользователя, как показано ниже:

Собственность пользователя, автоматически собираемая Firebase

Однако это недоступно в окне эксперимента или аналогичном свойстве, которое удовлетворяет указанным выше критериям в консоли Firebase, как показано ниже:

введите описание изображения здесь

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

Ссылки

https://support.google.com/firebase/answer/6317486?hl=en https://firebase.googleblog.com/2016/10/better-user-targeting-with-firebase.html


person sjmach    schedule 23.11.2017    source источник
comment
Альтернатива, которая работает - ›Облачные функции, которые запускаются при первом открытии события, а затем отправляют уведомление таким пользователям.   -  person sjmach    schedule 16.01.2018
comment
Да, у нас тоже есть эта проблема, вроде нет такой функции из коробки для экспериментов Remote Configs. Для экспериментов только для новых пользователей мы обычно настраиваем дополнительное свойство пользователя специально для таргетинга этого эксперимента. Что-то вроде example_experiment_enrolled, и вы настраиваете enrolled / not_enrolled на стороне клиента (и сохраняете его, например, в настройках) и создаете таргетинг с соответствием этим критериям.   -  person Peregreen    schedule 01.03.2018


Ответы (2)


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

Наша часть исследований. Во-первых, когда мы интегрировали Firebase, мы опасались, что аудитории не будут работать должным образом для экспериментов с таргетингом, потому что все текущие пользователи будут рассматриваться как новые после интеграции, поэтому мы проверили несколько подходов и пошел с подходом к созданию определенных свойств пользователя, которые мы указали на стороне клиента по-разному для старых / новых пользователей. Например, мы создали свойство пользователя с именем adv_experiment_enrolled и указали на стороне клиента значения 'enrolled' / 'not_enrolled', поэтому все новые пользователи после установки этой версии становились 'зарегистрированными', а старые после обновления версии просто становились 'not_enrolled'. И мы просто использовали это свойство пользователя в качестве таргетинга в эксперименте. Это сработало хорошо, но это не был общий подход, который мы могли бы легко использовать для всех экспериментов, и нам нужно было создавать свойства пользователя для каждого нового эксперимента.

Итак, мы попробовали подход аудитории после нескольких месяцев интеграции, который описал здесь @jackes со свойством пользователя First Open Time: https://stackoverflow.com/a/50075684/2723437 И у нас есть несколько проблем, во-первых, похоже, у них были проблемы с заполнением такой аудитории, и только ~ 3-5% новых пользователей получали там. Мы также создали аудиторию в зависимости от самого события First Open и тоже использовали ее, она заполнялась лучше и была близка к реальному количеству установок, которые у нас были. Но мы также заметили проблемы с этим подходом, и самая большая проблема заключалась в том, что в эксперименте участвовало только 20-30% пользователей из этой аудитории. Мы протестировали его и заметили по некоторым из наших показателей, что кажется, что пользователи не зарегистрированы в этом эксперименте в их первом сеансе, потому что 1) Firebase требуется некоторое время для регистрации пользователя в аудитории и 2) Remote Config по умолчанию имеет 12-часовой кеш, поэтому он на самом деле не было данными для большинства новых установок.

Решение, которое, похоже, пока работает хорошо:
Мы были удивлены тем, что Firebase действительно имеет свойство пользователя для первого открытия, но не позволяет использовать его в качестве таргетинга для экспериментов (это было бы очень полезно для решения этой проблемы (tbh), поэтому мы просто решили попробовать наш хороший опыт с таргетингом на свойства пользователя и применить общий подход Свойство пользователя Первое открытие времени, поэтому мы создали наше собственное custom_first_open_time специально для целевых установок после некоторых конкретных время (мы просто использовали текущие временные метки для платформ в секундах).
Важные примечания:
- Вы должны настроить свойства пользователя перед загрузкой удаленной конфигурации.
- Вы должны постоянно поддерживать это первое открытое время на стороне клиента после его создания (обычно для этого вы используете NSUserDefaults / SharedPreferences для iOS / Android)

Пример конфигурации эксперимента:

введите описание изображения здесь

person Peregreen    schedule 22.07.2018
comment
Как быстро обновляются свойства пользователя на стороне Firebase. Нам нужно применить политику A / B при самом запуске нашего приложения, и мы уже отложим загрузку приложения, чтобы получить значение удаленной конфигурации в соответствии с назначенной тестовой группой. Боюсь, это не сработает, если мы сначала установим свойство пользователя и сразу же получим удаленную конфигурацию. Повлияет ли обновление свойств пользователя на назначение A / B? - person Matti Jokipii; 07.12.2018
comment
@MattiJokipii, наши тесты показали, что будет. Кажется, они либо принудительно синхронизируют, либо даже отправляют свойства пользователя для удаленной выборки конфигурации, но вы должны настроить их перед вызовом удаленных конфигураций выборки. С нашей стороны это хорошо сработало как для iOS, так и для Android SDK. Иногда мы даже используем дополнительные свойства пользователя для таргетинга вместо аудитории по этой причине, когда мы хотим предоставить это для 1-го сеанса, потому что для назначения аудитории требуется больше времени. - person Peregreen; 12.12.2018
comment
Да, основываясь на нашем опыте, я могу подтвердить, что это способ обеспечить таргетинг на новых пользователей. - person Matti Jokipii; 04.03.2019
comment
он не работает для ios, просто игнорирует настраиваемое свойство - person orium; 02.09.2019
comment
@orium, что вы имеете в виду под it just ignores custom property? Вы должны убедиться, что вы установили значения для настраиваемых свойств перед фактической загрузкой Remote Config. - person Peregreen; 04.09.2019
comment
@Peregreen Я не уверен, по крайней мере, это не работает для тестовых устройств, сложно тестировать на реальных, когда тест уже начался - person orium; 09.09.2019
comment
@orium, насколько я помню, тестовые устройства всегда используют конфигурацию, которую вы для них настроили, так что да, это немного запутано. Обычно я тестировал его с помощью теста dev a / b, просто создавал его заранее с условием для minVersion приложения выше, чем у вашего производственного, проверял настройку и только после этого развертывал его для всех пользователей. - person Peregreen; 16.10.2019
comment
Мы столкнулись с той же проблемой с Firebase Audience, поскольку ее собственное first_time_open свойство пользователя не является точным. Мы перешли на использование настраиваемого свойства пользователя для условия удаленной конфигурации. Работал. - person AzaFromKaza; 14.01.2020
comment
Я пробовал использовать этот метод, но когда я начинаю эксперимент, происходит что-то странное. 1) Я создал новый эксперимент, установил custom_first_open_time ›1581944923450 в разделе таргетинга. 2) Я использовал 1 из 10 параметров удаленной конфигурации для эксперимента. Как только я начал, все пользователи перестали получать какие-либо параметры удаленной конфигурации, и внутри приложения использовались параметры, установленные по умолчанию в коде (внутри приложения). - person alectogeek; 17.02.2020
comment
@alectogeek кажется, что вы использовали метку времени в миллисекундах, тогда как она должна быть в секундах, если вы отслеживаете ее аналогичным образом. - person Peregreen; 20.02.2020
comment
@Peregreen Да, это из-за миллисекунд, и похоже, что firebase не может сравнивать такие большие числа. - person alectogeek; 20.02.2020

Не пробовал, но должно работать. Создайте аудиторию в консоли Firebase со следующим условием: Время первого открытия больше или равно некоторой дате. Где должна быть дата на следующий день после начала эксперимента.

person jackes    schedule 28.04.2018
comment
это не сработало для меня, когда я создаю такую ​​аудиторию, она не заполняется должным образом. Почему? - person Bryanzpope; 08.06.2018
comment
По моему опыту, после создания аудитории А данные будут собираться со следующего дня, поэтому вы не можете использовать свою аудиторию сразу после ее создания. - person Neo.Mxn0; 22.09.2020
comment
Также можете убедиться, что аудиторию нельзя использовать для этого - слишком медленно. - person Martin Rajniak; 24.09.2020