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

1. Introducción

En este codelab, aprenderá cómo crear un experimento de Remote Config usando pruebas A/B para el juego de muestra, MechaHamster: Level Up with Firebase edition , que modificó en Instrumentar su juego con Firebase Remote Config .

Las pruebas A/B con Remote Config te permiten probar cambios en la interfaz de usuario, las funciones o las campañas de participación de tu aplicación en una audiencia específica antes de implementarlos para una audiencia más amplia. También puede utilizar los resultados del experimento para:

  • Determine qué variantes de valores de parámetros mejoran métricas clave como los ingresos y la retención.
  • Descubra qué subgrupos de usuarios prefieren qué variantes.
  • Recopile y almacene datos de experimentos para realizar análisis adicionales sobre los efectos de establecer diferentes valores de parámetros.

Esta es la esencia de las pruebas A/B: le permite tomar código instrumentado para Remote Config y lanzar experimentos que controlan los valores que reciben los clientes, en función de las condiciones de Remote Config (incluidas las propiedades de usuario de Google Analytics), los porcentajes de implementación, los eventos de conversión de Analytics, y alguna combinación de estos.

Primero, implementará una condición que determina quiénes se incluirán en el experimento estableciendo propiedades de usuario basadas en las acciones del usuario. Luego, creará un experimento de prueba A/B que utiliza las propiedades de usuario de Google Analytics para determinar qué clientes se incluyen en el experimento. Y, finalmente, utilizará esos datos para comprender más sobre su audiencia.

lo que aprenderás

  • Cómo configurar pruebas A/B usando valores instrumentados de Remote Config
  • Cómo utilizar las propiedades de usuario de Google Analytics como parte de las condiciones de admisión a las pruebas A/B

Requisitos previos

Lo que necesitarás

  • Unity 2019.1.0f1 o superior con compatibilidad con versiones de iOS y/o Android

2. 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. Debe habilitar el botón para acceder a él desde el prefabricado MainMenu.

  1. En el editor de Unity, seleccione la pestaña Proyecto , luego en Activos , expanda Hamster > Prefabs > Menús y haga clic en Menú principal .

The Unity editor Project tab showing\nAssets. Hamster, Prefabs, Menus

  1. En la jerarquía prefabricada, busque el subobjeto deshabilitado llamado DebugMenuButton y haga clic en él para abrirlo en la pestaña Inspector .

The Unity editor shows the Main Menu,\nwith DebugMenu disabled

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

The Inspector tab for DebugMenuButton\nwith checkbox

  1. Guarde la casa prefabricada.

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

3. Habilite el submenú Configuración remota

  1. Desde la pestaña Proyecto en Unity Editor, expanda Activos > Hamster > Prefabs > Menús y haga doble clic en el objeto DebugMenu para abrirlo en la pestaña Jerarquía del editor.

    DebugMenu item nested under Assets,\nHamster, Prefabs, Menus
  2. En la pestaña Jerarquía , expanda la jerarquía y haga clic en el subobjeto en DebugMenu > Panel , que está etiquetado como Remote Config Actions .

Remote Config Actions nested under\nCanvas, DebugMenu

  1. En la pestaña Unity Inspector , habilite Acciones de configuración remota marcando la casilla a la izquierda del campo de texto que contiene el nombre del objeto.

Unity editor with Remote Config\nActions enabled under DebugMenu, Panel

Tiene dos elementos secundarios de GameObject llamados Set Bored Of Subtitle y Set Enjoys Subtitle, ambos configurados para llamar a métodos existentes pero no implementados en DebugMenu.cs .

4. Restablezca la anulación de subtítulos a los valores predeterminados en la aplicación.

En el codelab anterior , anulaste el valor predeterminado de un parámetro como JSON y usaste condiciones para ofrecer diferentes variantes. Como parte de este codelab, eliminarás la condición que creaste y reintroducirás el valor predeterminado en la aplicación, y solo lo anularás con el resultado de las pruebas A/B.

Para volver a habilitar el valor predeterminado en la aplicación:

  1. Abra la página Remote Config en Firebase console y haga clic en el ícono de lápiz al lado del parámetro subtitle_override para abrir el panel lateral Editar parámetro .
  2. Haga clic en el ícono X al lado de la condición para eliminarla.
  3. Junto al valor predeterminado restante, habilite la opción Usar valor predeterminado en la aplicación .

Deleting a condition from the Remote\nConfig parameter editor

  1. Haga clic en Guardar para guardar sus cambios, luego haga clic en Publicar cambios para publicar sus cambios. Publish\nchanges option on the Remote Config page

5. Establecer propiedades de usuario en funciones de depuración

Ahora escribirá cuerpos de funciones para algunas funciones de Google Analytics preconfiguradas pero no implementadas en DebugMenu.cs (que se puede encontrar en Activos > Hamster > Scripts > Estados).

Estas funciones establecen propiedades de usuario , que son formas de describir segmentos de su base de usuarios y se utilizan para registrar cómo se siente el usuario acerca del subtítulo del juego.

Implemente SetUserBoredOfSubtitle y SetUserEnjoysSubtitle buscando sus versiones existentes en DebugMenu.cs y sobrescribiéndolas de la siguiente manera:

void SetUserBoredOfSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}

Si su aplicación está configurada correctamente con Google Analytics, puede llamar a una de estas funciones para que la propiedad esté disponible para las condiciones de Remote Config. Para llamar SetUserBoredOfSubtitle desde un dispositivo móvil, inicia el juego y presiona el botón Menú de depuración en el menú principal, luego presiona Set Bored of Subtitle .

6. Cree una dimensión personalizada

A continuación, configurará varias variantes de subtítulos para subtitle_override para ver qué subtítulo funciona mejor. Pero, en su prueba A/B, solo ofrecerá estas variantes a los usuarios cuyos sentimientos sobre el subtítulo actual (como se registra en subtitle_sentiment ) incluyan la palabra "aburrido".

Utilizará una dimensión personalizada para crear y realizar un seguimiento de parámetros personalizados en eventos de Analytics. Consulte Dimensiones y métricas personalizadas para obtener más información.

Para crear una nueva dimensión personalizada:

  1. Abra Firebase console , expanda el menú Analytics y seleccione Definiciones personalizadas.
  2. En la página Definiciones personalizadas, haga clic en Crear dimensiones personalizadas .
  3. En la ventana Nueva dimensión personalizada , establezca el nombre de la Dimensión en "Sentimiento de subtítulo" y, en el menú desplegable Alcance, seleccione Usuario .
  4. Para el campo Propiedad del usuario , seleccione subtitle_sentiment.

7. Configure el experimento de prueba A/B

A continuación, cree un experimento de prueba A/B 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, seleccione Editar en el parámetro subtitle_override en la página de configuración remota de la consola Firebase:

The subtitle_override parameter on\nthe Remote Config page, showing the Edit option.

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

The Add new experiment option on the\nRemote Config Edit parameter page.

  1. En la lista que aparece, seleccione Experimentar .

Remote Config parameter page: Add new\nexperiment

  1. Ingrese un nombre y una descripción para su experimento.

Experiment name and description\nsection

  1. A continuación, elija las condiciones de orientación. Primero, seleccione su aplicación en el menú desplegable.

The Targeting step of an A/B Testing\nconfiguration, with an app selected

  1. A continuación, haga clic en Y para agregar una nueva condición, luego seleccione Propiedad del usuario y elija subtitle_sentiment . Si no aparece, ingréselo manualmente.
  2. Dado que solo desea establecer un subtítulo para aquellos cuyo sentimiento de subtítulo actual incluye "aburrido", elija contiene y escriba bored .
  3. Opcionalmente, elija qué porcentaje de la audiencia que coincide con los criterios anteriores se expondrá a la prueba. Seleccione 100% para evitar aleatoriedad que no puede controlar fácilmente.

A/B Testing Targeting section with\nsubtitle_sentiment selected

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

A/B Testing Goals section

  1. A continuación, configure los parámetros del experimento y cree diferentes variantes de subtítulos. Estas variantes son los diferentes valores que las pruebas A/B ofrecerán a los usuarios cuyo subtitle_sentiment contenga "aburrido", y las pruebas A/B determinarán qué variante es mejor para maximizar la retención.
  2. Ingrese el siguiente valor de 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. Ingrese 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. Establezca las proporciones variantes con números enteros de la siguiente manera:
    • Línea de base : 1
    • Variante A : 100
    • Variante B : 100
    Esto dará como resultado ponderaciones totales del 0,5% para la Línea de Base, el 49,8% para la Variante A y el 49,8% para la Variante B. Variant weights configuration\nsection Estas variantes especifican que una de cada 201 veces, las pruebas A/B sirven el valor predeterminado para aquellos que están aburridos de los subtítulos, pero 200/201 veces, servirá uno de dos valores nuevos y anulará la pantalla de título.
  5. Guarde y envíe haciendo clic en Iniciar experimento y luego haga clic en Iniciar en la ventana emergente de confirmación. Click Start to start the\nexperiment

8. Ejecute el método Establecer propiedad de usuario y actualice

Ahora has establecido varias propiedades sobre el usuario, que luego pueden usarse para dirigir la lógica o la presentación de tu juego.

Si no has ejecutado previamente el método SetUserProperty o lo has configurado en enjoys , aún deberías ver el subtítulo predeterminado al abrir el juego.

Si lo configuró como bored (antes de volver a buscarlo), debería ver uno de los nuevos valores en una proporción aproximada de 50/50.

Una vez que un dispositivo ha ingresado a un experimento de prueba A/B, los valores que recibe de ese experimento no cambiarán y son persistentes 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/simulador o instalando el juego en un nuevo dispositivo/simulador.

En una prueba A/B real lanzada entre su base de usuarios, debe darle a la línea de base 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) aún recibes el valor predeterminado, intenta reinstalar el juego en tu dispositivo/simulador.

Otro efecto de esto es que volver a cambiar la propiedad del usuario a enjoys no cambiará el valor a la línea base, pero nuevamente, puede hacerlo cambiando a enjoys y reinstalando.

9. ¡Felicitaciones!

Ha utilizado 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.

Lo que hemos cubierto

  • Cómo configurar pruebas A/B usando valores instrumentados de Remote Config
  • Cómo utilizar las propiedades de usuario de Google Analytics como parte de las condiciones de admisión a experimentos de pruebas A/B

Próximos pasos

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