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 mediante 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 cambios en la IU, las funciones o las campañas de participación de tu app en un público objetivo antes de lanzarlos para un público más amplio. También puedes usar los resultados del experimento para hacer lo siguiente:

  • Determina qué variantes de los valores de los parámetros mejoran métricas clave, como los ingresos y la retención.
  • Descubre qué subgrupos de usuarios prefieren cada variante.
  • Recopila y almacena datos de experimentos para realizar análisis adicionales sobre los efectos de configurar diferentes valores de parámetros.

Esta es la esencia de A/B Testing: te permite tomar código instrumentado para Remote Config, así como 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 quienes se incluirán en el experimento configurando propiedades del usuario basadas en las acciones de los usuarios. Luego, crearás un experimento de A/B Testing que utilice las propiedades del usuario de Google Analytics para determinar qué clientes se incluyen en el experimento. Y, por último, usarás esos datos para conocer 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 para admitir a las pruebas A/B

Requisitos previos

Requisitos

  • Unity 2019.1.0f1 o una versión posterior compatible con compilaciones 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, luego, haz clic en MainMenu.

La pestaña Project del editor de Unity muestra\nAssets. Hámster, Prefabs, menús

  1. En la jerarquía de prefab, 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\ncon DebugMenu inhabilitado.

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

La pestaña Inspector de DebugMenuButton\ncon una casilla de verificación.

  1. Guarda el prefab.

Si ejecutas el juego en el editor o en tu dispositivo, debería poder accederse 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,\nHamster, Prefabs, Menus
  2. En la pestaña Hierarchy, expande la jerarquía y haz clic en el subobjeto que se encuentra en DebugMenu > Panel, etiquetado como Acciones de Remote Config.

Acciones de Remote Config anidadas en\nCanvas, DebugMenu

  1. En la pestaña Inspector de Unity, marca la casilla a la izquierda del campo de texto que contiene el nombre del objeto para habilitar las Remote Config Actions.

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

Tiene dos elementos secundarios de GameObject llamados Set Bored Of Subtitle y Set loves 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 de la app

En el codelab anterior, anulaste el valor predeterminado de un parámetro por JSON y usaste condiciones para entregar diferentes variantes. Como parte de este codelab, borrarás la condición que creaste y volverás a introducir la configuración predeterminada en la app. Solo la anularás con el resultado de las pruebas A/B.

Para volver a habilitar la configuración predeterminada en la app, haz lo siguiente:

  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 X junto a la condición para borrarla.
  3. Junto al valor predeterminado restante, habilita el botón de activación Usar la configuración predeterminada de la app.

Borrar una condición del editor de parámetros\nde Remote\nConfig

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

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 Assets > Hamster > Scripts > Estados).

Estas funciones establecen propiedades del usuario, que son formas de describir segmentos de la base de usuarios y se usan para registrar cómo se siente el usuario con respecto al subtítulo del juego.

Busca las versiones existentes de ellos en DebugMenu.cs para implementar SetUserBoredOfSubtitle y SetUserEnjoysSubtitle 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 y presiona el botón Debug Menu en el menú principal. Luego, presiona Set Bored of Subtitle.

6. Cómo crear una dimensión personalizada

A continuación, configurarás varias variantes de subtítulos para el subtitle_override a fin de ver cuál funciona mejor. Sin embargo, en tu prueba A/B, solo mostrarás estas variantes a los usuarios cuyos sentimientos sobre el subtítulo actual (como se grabó en subtitle_sentiment) incluyen la palabra "aburrido".

Utilizarás una dimensión personalizada para crear parámetros personalizados y hacerles un seguimiento en 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, establece el nombre de la dimensión en "Opinión de subtítulos" 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 pruebas A/B para establecer valores diferentes de subtitle_override que se compararán entre sí y, así, 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 de Remote Config de Firebase console:

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

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

La opción Agregar experimento nuevo en la\npágina Editar parámetros de Remote Config.

  1. En la lista que aparece, selecciona Experimento.

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

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

Sección de nombre y descripción\ndel experimento

  1. Luego, elige las condiciones de segmentación. Primero, seleccione su aplicación en el menú desplegable.

El paso de segmentación de una configuración\nde A/B Testing, con una app seleccionada

  1. 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.
  2. Como solo quieres establecer un subtítulo para las personas cuyas opiniones de subtítulos actuales incluyan "aburrido", elige contiene y escribe bored.
  3. De forma opcional, elige qué porcentaje del público que coincida con los criterios anteriores que deseas exponer a la prueba. Selecciona 100% para evitar la aleatoriedad que no se puede controlar fácilmente.

Sección de segmentación de A/B Testing con\nsubtitle_sentiment seleccionado

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

Sección de objetivos de A/B Testing

  1. 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", y A/B Testing 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 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}}
    
  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 el modelo de referencia, 49.8% para la variante A y 49.8% para la variante B.Sección\nde configuración de ponderaciones de variantesEstas variantes especifican que una de cada 201 veces, A/B Testing muestra el valor predeterminado para quienes se aburren de los subtítulos, pero 200 de 201 veces, mostrará uno de dos valores nuevos en la pantalla y anulará el 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\npara iniciar el experimento

8. Ejecuta el método Configurar propiedades del usuario y actualiza la página

Ya estableciste 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 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 con una proporción de aproximadamente 50/50.

Una vez que un dispositivo participa en un experimento de A/B Testing, los valores que recibe de ese experimento no cambiarán y son persistentes por instalación. En consecuencia, para recibir uno de los otros valores experimentales, debes crear una instalación nueva, ya sea reinstalando el juego en el mismo dispositivo o simulador, o instalándolo en un dispositivo o simulador nuevo.

En una prueba A/B real iniciada 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 esté funcionando. Si en el caso 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 de nuevo a enjoys no cambiará el valor de nuevo al modelo de referencia, pero, de nuevo, puedes hacerlo cambiando a enjoys y reinstalando.

9. ¡Felicitaciones!

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

Temas abordados

  • Cómo configurar A/B Testing con valores instrumentados de Remote Config
  • Cómo usar las propiedades del usuario de Google Analytics como parte de las condiciones para admitir en 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 el "ganador" o realizar más experimentos?