Implementa pruebas A/B para tu juego de Unity con Firebase Remote Config

1. Introducción

En este codelab, aprenderás a crear un experimento de Remote Config con A/B Testing para el juego de ejemplo, MechaHamster: Level Up with Firebase edition, que modificaste en Instrument your game with Firebase Remote Config.

A/B Testing con Remote Config te permite probar cambios en la IU, las funciones o las campañas de participación de tu app en un público objetivo antes de implementarlos en un público más amplio. También puedes usar los resultados del experimento para hacer lo siguiente:

  • Determina qué variantes de valores de parámetros mejoran las métricas clave, como los ingresos y la retención.
  • Descubre qué subgrupos de usuarios prefieren qué variantes.
  • Recopilar y almacenar datos del experimento para realizar análisis adicionales sobre los efectos de establecer diferentes valores de parámetros

Esta es la esencia de A/B Testing: te permite tomar código instrumentado para Remote Config y lanzar 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 por porcentaje, los eventos de conversión de Analytics y alguna combinación de estos.

Primero, implementarás una condición que controle quién se incluirá en el experimento. Para ello, establecerás propiedades del usuario según las acciones del usuario. Luego, crearás un experimento de A/B Testing que use las propiedades del usuario de Google Analytics para determinar qué clientes se incluyen en el experimento. Por último, usarás esos datos para comprender mejor a tu público.

Qué aprenderás

  • Cómo configurar A/B Testing con valores de Remote Config instrumentados
  • Cómo usar las propiedades del usuario de Google Analytics como parte de las condiciones para participar en pruebas A/B

Requisitos previos

Requisitos

  • Unity 2019.1.0f1 o versiones posteriores con compatibilidad para la compilación de iOS o Android

2. Cómo habilitar 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 actualmente. Debes habilitar el botón para acceder a él desde el prefab MainMenu.

  1. En el editor de Unity, selecciona la pestaña Project y, luego, en Assets, expande Hamster > Prefabs > Menus y haz clic en MainMenu.

La pestaña Proyecto del editor de Unity que muestra los recursos. Hámster, prefabs y menús

  1. En la jerarquía de la estructura prediseñada, busca el subobjeto inhabilitado llamado DebugMenuButton y haz clic en él para abrirlo en la pestaña Inspector.

El editor de Unity muestra el menú principal con DebugMenu inhabilitado.

  1. En la pestaña Inspector, marca la casilla en la esquina superior izquierda junto al campo de texto que contiene DebugMenuButton para habilitarlo.

La pestaña Inspector de DebugMenuButton con una casilla de verificación

  1. Guarda el prefab.

Si ejecutas el juego en el editor o en tu dispositivo, ahora deberías poder acceder al menú.

3. Habilita el submenú de Remote Config

  1. En la pestaña Project del editor de Unity, expande Assets > Hamster > Prefabs > Menus y haz doble clic en el objeto DebugMenu para abrirlo en la pestaña Hierarchy del editor.

    Elemento DebugMenu anidado en Assets, Hamster, Prefabs y Menus
  2. En la pestaña Hierarchy, expande la jerarquía y haz clic en el subobjeto que se encuentra en DebugMenu > Panel, que se etiqueta como Remote Config Actions.

Acciones de Remote Config anidadas en Canvas y DebugMenu

  1. 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.

Editor de Unity con Remote Config\nAcciones habilitadas en DebugMenu, Panel

Tiene dos objetos secundarios GameObject llamados Set Bored Of Subtitle y Set Enjoys 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 a la configuración predeterminada en 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 y volverás a introducir el valor predeterminado integrado en la app, y solo lo anularás con el resultado de las pruebas A/B.

Para volver a habilitar la configuración predeterminada en la app, sigue estos pasos:

  1. 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.
  2. Haz clic en el ícono de X junto a la condición para borrarla.
  3. Junto al valor predeterminado restante, habilita el botón de activación Usar valor predeterminado en la app.

Cómo borrar una condición del editor de parámetros de Remote Config

  1. Haz clic en Guardar para guardar los cambios y, luego, en Publicar cambios para publicarlos.Opción para publicar cambios en la página de Remote Config

5. Configura propiedades del usuario en las 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 encuentra en Assets > Hamster > Scripts > States).

Estas funciones establecen propiedades del usuario, que son formas 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.

Implementa SetUserBoredOfSubtitle y SetUserEnjoysSubtitle. Para ello, busca ​​las versiones existentes de estos elementos 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 que la propiedad esté disponible para las condiciones de Remote Config. Para llamar a SetUserBoredOfSubtitle desde un dispositivo móvil, inicia el juego y presiona el botón Debug Menu en el menú principal y, luego, presiona Set Bored of Subtitle.

6. Crea una dimensión personalizada

A continuación, configurarás varias variantes de subtítulos para el subtitle_override y verás qué subtítulo funciona mejor. Sin embargo, en tu prueba A/B, solo mostrarás estas variantes a los usuarios cuyos sentimientos sobre el subtítulo actual (registrados en subtitle_sentiment) incluyan la palabra "aburrido".

Usarás una dimensión personalizada para crear y hacer un seguimiento de los parámetros personalizados en los eventos de Analytics. Consulta Dimensiones y métricas personalizadas para obtener más información.

Para crear una nueva dimensión personalizada, sigue estos pasos:

  1. Abre Firebase console, expande el menú Analytics y selecciona Definiciones personalizadas.
  2. En la página Definiciones personalizadas, haz clic en Crear dimensiones personalizadas.
  3. En la ventana Nueva dimensión personalizada, configura el nombre de la dimensión como "Sentimiento del subtítulo" y, en el menú desplegable Alcance, selecciona Usuario.
  4. 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 para subtitle_override que se probarán entre sí para optimizar la retención de usuarios de dos a tres días.

  1. Primero, selecciona Editar en el parámetro subtitle_override de la página Remote Config de Firebase console:

El parámetro subtitle_override en la página de Remote Config, que muestra la opción Editar.

  1. En el cuadro de diálogo Editar parámetro que aparece, haz clic en Agregar nuevo.

Opción Agregar experimento nuevo en la página Editar parámetro de Remote Config

  1. En la lista que aparece, selecciona Experiment.

Página de parámetros de Remote Config: Agrega un experimento nuevo

  1. Ingresa un nombre y una descripción para tu experimento.

Sección de nombre y descripción del experimento

  1. A continuación, elige las condiciones de segmentación. Primero, selecciona tu aplicación en el menú desplegable.

El paso Segmentación de una configuración de A/B Testing, con una app seleccionada

  1. A continuación, haz clic en Y para agregar una condición nueva, selecciona Propiedad del usuario y elige subtitle_sentiment. Si no aparece, ingrésalo de forma manual.
  2. Como solo quieres establecer un subtítulo para aquellos cuyo sentimiento actual del subtítulo incluye "aburrido", elige contiene y escribe bored.
  3. De manera opcional, elige qué porcentaje del público que cumple con los criterios anteriores se expondrá a la prueba. Selecciona 100% para evitar la aleatoriedad que no puedes controlar fácilmente.

Sección Segmentación de la prueba A/B con subtitle_sentiment seleccionado

  1. A continuación, selecciona un objetivo que la prueba intentará maximizar. Elige Retención (de 2 a 3 días).

Sección Objetivos de la prueba A/B

  1. A continuación, configura los parámetros del experimento y crea diferentes variantes de subtítulos . Estas variantes son los diferentes valores que la prueba A/B publicará para los usuarios cuyo subtitle_sentiment contenga "aburrido", y la prueba A/B determinará qué variante es la mejor para maximizar la retención.
  2. 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}}
    
  3. Ingresa el siguiente valor de 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}}
    
  4. Establece las proporciones de las variantes con números enteros de la siguiente manera:
    • Referencia: 1
    • Variante A: 100
    • Variante B: 100
    Esto generará pesos totales del 0.5% para la versión de referencia, el 49.8% para la variante A y el 49.8% para la variante B.Sección de configuración de las ponderaciones de las variantesEstas variantes especifican que, una de cada 201 veces, A/B Testing mostrará el valor predeterminado a quienes estén aburridos de los subtítulos, pero 200 de cada 201 veces, mostrará uno de los dos valores nuevos y anulará la pantalla de título.
  5. Para guardar y enviar, haz clic en Iniciar experimento y, luego, en Iniciar en la ventana emergente de confirmación.Haz clic en Iniciar para comenzar el experimento.

8. Ejecuta el método Set User Property y actualiza la página

Ahora 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 el método SetUserProperty anteriormente o lo configuraste como enjoys, deberías ver el subtítulo predeterminado cuando abras el juego.

Si lo configuraste como bored (antes de volver a recuperar), deberías ver uno de los valores nuevos en 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 cambian y son persistentes por instalación. Por lo tanto, para recibir uno de los otros valores experimentales, debes crear una instalación nueva. Para ello, reinstala el juego en el mismo dispositivo o simulador, o bien instálalo en un dispositivo o simulador nuevo.

En una prueba A/B real que se lance en toda tu base de usuarios, debes darle a la referencia un peso similar al de las otras variantes. Sin embargo, en este caso, asignas probabilidades muy sesgadas para validar que el experimento funcione. Si (en el caso de 1/201) sigues recibiendo el valor predeterminado, intenta reinstalar el juego en tu dispositivo o simulador.

Otro efecto de esto es que cambiar la propiedad del usuario a enjoys no cambiará el valor al valor de referencia, pero, nuevamente, puedes hacerlo cambiando a enjoys y reinstalando.

9. ¡Felicitaciones!

Usaste las pruebas A/B de Remote Config para experimentar con diferentes valores de Remote Config y determinar cómo afecta cada uno a las métricas de Analytics.

Temas abordados

  • Cómo configurar A/B Testing con valores de Remote Config instrumentados
  • Cómo usar las propiedades del usuario de Google Analytics como parte de las condiciones para participar en experimentos de pruebas A/B

Próximos pasos

Una vez que finalice el experimento, puedes seleccionar uno de la lista de experimentos de tu proyecto para decidir qué quieres hacer con él. ¿Quieres elegir una como la "ganadora" o realizar más experimentos?