1. Introducción
En este codelab, aprenderás a crear un experimento de Remote Config con A/B Testing para el juego de muestra MechaHamster: Level Up with Firebase Edition, que modificaste en Instrumenta tu juego con Firebase Remote Config.
A/B Testing con Remote Config te permite probar los cambios en la IU, las funciones o las campañas de participación de tu app en un público objetivo antes de lanzarlos a un público más amplio. También puedes usar los resultados del experimento para lo siguiente:
- Determina qué variantes de valor del parámetro mejoran métricas clave como los ingresos y la retención.
- Descubre qué subgrupos de usuarios prefieren las variantes.
- Recopila y almacena datos del experimento para realizar análisis adicionales de los efectos de configurar diferentes valores de los parámetros.
Esta es la esencia de A/B Testing: te permite tomar un código instrumentado para Remote Config e iniciar experimentos que controlan los valores que reciben los clientes, según las condiciones de Remote Config (incluidas las propiedades del usuario de Google Analytics), los lanzamientos porcentuales, los eventos de conversión de Analytics y alguna combinación de estos.
Primero, implementarás una condición que restrinja a quién se incluirá en el experimento estableciendo propiedades del usuario basadas en las acciones de los usuarios. Luego, crearás un experimento de A/B Testing que utiliza las propiedades del usuario de Google Analytics para determinar qué clientes se incluyen en el experimento. Y, por último, usarás esos datos para comprender mejor a tu público.
Qué aprenderás
- Cómo configurar A/B Testing con valores instrumentados de Remote Config
- Cómo utilizar las propiedades del usuario de Google Analytics como parte de las condiciones de admisión a pruebas A/B
Requisitos previos
- Haber completado el curso Instrumenta tu juego con Firebase Remote Config
Requisitos
- Unity 2019.1.0f1 o una versión posterior compatible con la compilación en iOS o Android
2. Habilita el menú de depuración
Hay un menú de depuración oculto en el proyecto, y el botón para acceder a este menú existe en el juego, pero no está habilitado en este momento. Debes habilitar el botón para acceder a él desde el prefab de MainMenu.
- En el editor de Unity, selecciona la pestaña Project y, luego, en Assets, expande Hamster > Prefabs > Menus y haz clic en MainMenu.
- En la jerarquía de prefab, busca el subobjeto inhabilitado llamado DebugMenuButton y haz clic en él para abrirlo en la pestaña Inspector.
- En la pestaña Inspector, marca la casilla en la esquina superior izquierda junto al campo de texto que contiene DebugMenuButton para habilitarlo.
- Guarda el prefab.
Si ejecutas el juego en el editor o en tu dispositivo, deberías poder acceder al menú.
3. Habilita el submenú de Remote Config
- En la pestaña Project de Unity Editor, expande Assets > Hamster > Prefabs > Menus y haz doble clic en el objeto DebugMenu para abrirlo en la pestaña Hierarchy del editor.
- En la pestaña Hierarchy, expande la jerarquía y haz clic en el subobjeto debajo de DebugMenu > Panel, que tiene la etiqueta Remote Config Actions.
- En la pestaña Inspector de Unity, habilita Remote Config Actions marcando la casilla a la izquierda del campo de texto que contiene el nombre del objeto.
Tiene dos objetos secundarios de GameObject llamados Set Bored Of Subtitle y Set Learns Subtitle, que están configurados para llamar a métodos existentes pero no implementados en DebugMenu.cs
.
4. Restablece la anulación de subtítulos al valor predeterminado de la app
En el codelab anterior, anulaste el valor predeterminado de un parámetro como JSON y usaste condiciones para publicar diferentes variantes. Como parte de este codelab, borrarás la condición que creaste, volverás a introducir la configuración predeterminada en la app y solo la anularás con el resultado de A/B Testing.
Para volver a habilitar la configuración predeterminada de la app, sigue estos pasos:
- Abre la página de Remote Config en Firebase console y haz clic en el ícono de lápiz junto al parámetro
subtitle_override
para abrir el panel lateral Editar parámetro. - Haz clic en el ícono X junto a la condición para borrarla.
- Junto al valor predeterminado restante, habilita el botón de activación Usar la configuración predeterminada en la app.
- Haz clic en Guardar para guardar los cambios y, luego, en Publicar cambios para publicarlos.
5. Configurar propiedades del usuario en funciones de depuración
Ahora, escribirás cuerpos de funciones para algunas funciones de Google Analytics preconfiguradas pero no implementadas en DebugMenu.cs
(que se pueden encontrar en Recursos > Hámster > Secuencias de comandos > Estados).
Estas funciones establecen propiedades del usuario, que son maneras de describir segmentos de tu base de usuarios y se usan para registrar cómo se siente el usuario con respecto al subtítulo del juego.
Para implementar SetUserBoredOfSubtitle
y SetUserEnjoysSubtitle
, busca las versiones existentes de ellos en DebugMenu.cs
y reemplázalas de la siguiente manera:
void SetUserBoredOfSubtitle()
{
Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}
Si tu app está configurada correctamente con Google Analytics, puedes llamar a una de estas funciones para hacer que la propiedad esté disponible para las condiciones de Remote Config. Para llamar a SetUserBoredOfSubtitle
desde un dispositivo móvil, inicia el juego, presiona el botón Debug Menu en el menú principal y, luego, presiona Set Bored of Subtitle.
6. Cómo crear una dimensión personalizada
A continuación, configurarás diversas variantes de subtítulos para el subtitle_override
para ver cuál funciona mejor. Sin embargo, en tu prueba A/B, solo publicarás estas variantes para los usuarios cuyos sentimientos acerca del subtítulo actual (como se registra en subtitle_sentiment
) incluyan la palabra "aburrido".
Utilizarás una dimensión personalizada para crear parámetros personalizados y hacer un seguimiento de ellos en los eventos de Analytics. Consulta el artículo Dimensiones y métricas personalizadas para obtener más información.
Para crear una nueva dimensión personalizada, sigue estos pasos:
- Abre Firebase console, expande el menú Analytics y selecciona Definiciones personalizadas.
- En la página Definiciones personalizadas, haz clic en Crear dimensiones personalizadas.
- En la ventana Nueva dimensión personalizada, establece el nombre de la dimensión en "Opiniones de subtítulos" y, en el menú desplegable Alcance, selecciona Usuario.
- En el campo Propiedad del usuario, selecciona
subtitle_sentiment.
.
7. Configura el experimento de A/B Testing
A continuación, crea un experimento de A/B Testing para establecer diferentes valores de subtitle_override
que se compararán entre sí y optimizar la retención de usuarios de dos a tres días.
- Primero, selecciona Editar en el parámetro
subtitle_override
en la página de Remote Config de Firebase console:
- En el diálogo Editar parámetro que aparece, haz clic en Agregar nuevo.
- En la lista que aparece, selecciona Experimento.
- Ingresa un nombre y una descripción para tu experimento.
- A continuación, elige las condiciones de segmentación. Primero, seleccione su aplicación en el menú desplegable.
- A continuación, haz clic en Y para agregar una condición nueva. Luego, selecciona Propiedad del usuario y elige
subtitle_sentiment
. Si no aparece, ingrésalo manualmente. - Dado que solo quieres establecer un subtítulo para aquellos cuyas opiniones actuales incluyan "aburrido", elige contiene y escribe
bored
. - De manera opcional, elige qué porcentaje del público coincide con los criterios anteriores para exponer a la prueba. Selecciona 100% para evitar la aleatorización que no puedes controlar con facilidad.
- Luego, selecciona un objetivo que la prueba intentará maximizar. Elige Retención (de 2 a 3 días).
- A continuación, configura los parámetros del experimento y crea diferentes variantes de subtítulos . Estas variantes son los diferentes valores que A/B Testing mostrará a los usuarios cuyo
subtitle_sentiment
contenga "aburrido". A/B Testing determinará qué variante es la mejor para maximizar la retención. - Ingresa el siguiente valor del parámetro para la variante A:
{"text":"A: A game about a mechanical hamster","fontSize":8,"textColor":{"r":0.0,"g":255.0,"b":0.0,"a":255.0}}
- Ingresa el siguiente valor del parámetro para la variante B:
{"text":"B: A game about a mechanical hamster","fontSize":14,"textColor":{"r":255.0,"g":0.0,"b":0.0,"a":255.0}}
- Establece las proporciones de las variantes con números enteros de la siguiente manera:
- Modelo de referencia: 1
- Variante A: 100
- Variante B: 100
- Haz clic en Iniciar experimento y, luego, haz clic en Comenzar en la ventana emergente de confirmación para guardarlo y enviarlo.
8. Ejecuta el método Set User Property y actualiza
Ya configuraste varias propiedades sobre el usuario, que luego se pueden usar para dirigir la lógica o la presentación de tu juego.
Si no ejecutaste antes el método SetUserProperty
o lo configuraste en enjoys
, deberías ver el subtítulo predeterminado cuando abras el juego.
Si lo configuraste en bored
(antes de volver a recuperarlo), deberías ver uno de los valores nuevos con una proporción aproximada de 50/50.
Una vez que un dispositivo ingresa en un experimento de A/B Testing, los valores que recibe de ese experimento no cambiarán y continuarán por instalación. Como consecuencia, para recibir uno de los otros valores experimentales, debes crear una nueva instalación, ya sea reinstalando el juego en el mismo dispositivo o simulador, o instalando el juego en un nuevo dispositivo o simulador.
En una prueba A/B real lanzada en tu base de usuarios, debes darle al modelo de referencia un peso similar al de las otras variantes. Pero, en este caso, asignas probabilidades muy sesgadas para validar que el experimento funciona. Si (en el caso de la versión 1/201) aún recibes el valor predeterminado, intenta reinstalar el juego en tu dispositivo o simulador.
Otro efecto es que, si cambias la propiedad del usuario a enjoys
, no se cambiará el valor al modelo de referencia, pero puedes hacerlo cambiando a enjoys
y reinstalando la app.
9. ¡Felicitaciones!
Usaste Remote Config A/B Testing para experimentar con diferentes valores de Remote Config y determinar cómo cada uno afecta las métricas de Analytics.
Temas abordados
- Cómo configurar A/B Testing con valores instrumentados de Remote Config
- Cómo utilizar las propiedades del usuario de Google Analytics como parte de las condiciones de admisión a los experimentos de A/B Testing
Próximos pasos
Una vez que finalice el experimento, podrás seleccionar uno de la lista de experimentos de tu proyecto para decidir qué quieres hacer con él. ¿Deseas elegir uno como "ganador" o realizar más experimentos?