Compartir a través de


Programa tu aplicación para la experimentación

Después de crear un proyecto y definir variables remotas en el Centro de Partners, estará listo para actualizar el código de su aplicación UWP (Plataforma Universal de Windows) para:

  • Recibir valores de variables remotas desde el Centro de Partners.
  • Use variables remotas para configurar experiencias de aplicación para los usuarios.
  • Registrar eventos en el Centro de Partners que indican cuándo los usuarios han visto su experimento y han realizado una acción deseada (también denominada conversión).

Para agregar este comportamiento a la aplicación, usará las API proporcionadas por el SDK de servicios de Microsoft Store.

En las secciones siguientes se describe el proceso general de obtener variantes para tu experimento y registrar eventos en el Centro de Partners. Después de codificar la aplicación para la experimentación, puede definir un experimento en el Centro de socios. Para ver un tutorial que muestra el proceso completo de creación y ejecución de un experimento, consulte Crear y ejecutar el primer experimento con pruebas A/B.

Nota:

Algunas de las API de experimentación del SDK de Servicios de Microsoft Store usan el patrón asincrónico para recuperar datos del Centro de partners. Esto significa que parte de la ejecución de estos métodos puede tener lugar después de invocar los métodos, por lo que la interfaz de usuario de la aplicación puede seguir respondiendo mientras se completan las operaciones. El patrón asincrónico requiere que la aplicación use la palabra clave asincrónica y await operador al llamar a las API, como se muestra en los ejemplos de código de este artículo. Por convención, los métodos asincrónicos terminan con Async.

Configuración del proyecto

Para empezar, instale el SDK de Servicios de Microsoft Store en el equipo de desarrollo y agregue las referencias necesarias al proyecto.

  1. Instalar el SDK de Servicios de Microsoft Store.
  2. Abra el proyecto en Visual Studio.
  3. En el Explorador de soluciones, expanda el nodo del proyecto, haga clic con el botón derecho en Referenciasy haga clic en Agregar referencia.
  4. En el Administrador de referencias, expanda Windows universal y haga clic en Extensiones.
  5. En la lista de los SDK, active la casilla situada junto a Microsoft Engagement Framework y haga clic en Aceptar.

Nota:

En los ejemplos de código de este artículo se supone que el archivo de código tiene mediante instrucciones para los System.Threading.Tasks de y los espacios de nombres Microsoft.Services.Store.Engagement.

Obtener datos de variación y registrar el evento de visualización de tu experimento

En el proyecto, busque el código de la característica que desea modificar en el experimento. Agregue código que recupere datos de una variación, use estos datos para modificar el comportamiento de la funcionalidad que está probando y, a continuación, registre el evento de vista del experimento en el servicio de pruebas A/B en el Centro de Partners.

El código específico que necesita dependerá de la aplicación, pero en el ejemplo siguiente se muestra el proceso básico. Para obtener un ejemplo de código completo, vea Crear y ejecutar el primer experimento con pruebas A/B.

private StoreServicesExperimentVariation variation;
private StoreServicesCustomEventLogger logger;

// Assign this variable to the project ID for your experiment from Dev Center.
// The project ID shown below is for example purposes only.
private string projectId = "F48AC670-4472-4387-AB7D-D65B095153FB";

private async Task InitializeExperiment()
{
    // Get the current cached variation assignment for the experiment.
    var result = await StoreServicesExperimentVariation.GetCachedVariationAsync(projectId);
    variation = result.ExperimentVariation;

    // Refresh the cached variation assignment if necessary.
    if (result.ErrorCode != StoreServicesEngagementErrorCode.None || result.ExperimentVariation.IsStale)
    {
        result = await StoreServicesExperimentVariation.GetRefreshedVariationAsync(projectId);

        if (result.ErrorCode == StoreServicesEngagementErrorCode.None)
        {
            variation = result.ExperimentVariation;
        }
    }

    // Get the remote variable named "buttonText" and assign the value
    // to the button.
    var buttonText = variation.GetString("buttonText", "Grey Button");
    await button.Dispatcher.RunAsync(
        Windows.UI.Core.CoreDispatcherPriority.Normal,
        () =>
        {
            button.Content = buttonText;
        });

    // Log the view event named "userViewedButton" to Dev Center.
    if (logger == null)
    {
        logger = StoreServicesCustomEventLogger.GetDefault();
    }

    logger.LogForVariation(variation, "userViewedButton");
}

En los pasos siguientes se describen las partes importantes de este proceso en detalle.

  1. Declare un objeto StoreServicesExperimentVariation que represente la asignación de variación actual y un objeto StoreServicesCustomEventLogger que usted usará para registrar eventos de visualización y conversión en el Centro de Partners.

    private StoreServicesExperimentVariation variation;
    private StoreServicesCustomEventLogger logger;
    
  2. Declare una variable de cadena asignada al ID del proyecto para el experimento que quieres recuperar.

    Nota:

    Obtiene un identificador de proyecto al crear un proyecto en el Centro de partners. El identificador del proyecto que se muestra a continuación es solo con fines de ejemplo.

    private string projectId = "F48AC670-4472-4387-AB7D-D65B095153FB";
    
  3. Obtenga la asignación de variación almacenada en caché actual para su experimento llamando al método estático GetCachedVariationAsync y pasando el identificador del proyecto a dicho método. Este método devuelve un objeto StoreServicesExperimentVariationResult que proporciona acceso a la asignación de variación a través de la propiedad ExperimentVariation.

    var result = await StoreServicesExperimentVariation.GetCachedVariationAsync(projectId);
    variation = result.ExperimentVariation;
    
  4. Compruebe la propiedad IsStale para determinar si es necesario actualizar la asignación de variación almacenada en caché con una asignación de variación remota desde el servidor. Si es necesario actualizarlo, llame al método estático GetRefreshedVariationAsync para comprobar si hay una asignación de variación actualizada del servidor y actualizar la variación almacenada en caché local.

    if (result.ErrorCode != StoreServicesEngagementErrorCode.None || result.ExperimentVariation.IsStale)
    {
        result = await StoreServicesExperimentVariation.GetRefreshedVariationAsync(projectId);
    
        if (result.ErrorCode == StoreServicesEngagementErrorCode.None)
        {
            variation = result.ExperimentVariation;
        }
    }
    
  5. Use los métodosGetBoolean , GetDouble, GetInt32o GetString del objeto StoreServicesExperimentVariation para obtener los valores de la asignación de variación. En cada método, el primer parámetro es el nombre de la variación que quieres recuperar (este es el mismo nombre de una variación que escribes en el Centro de partners). El segundo parámetro es el valor predeterminado que el método debe devolver si no puede recuperar el valor especificado del Centro de partners (por ejemplo, si no hay conectividad de red) y una versión almacenada en caché de la variación no está disponible.

    En el ejemplo siguiente se usa getString para obtener una variable denominada buttonText y especifica un valor de variable predeterminado de Botón gris.

    var buttonText = variation.GetString("buttonText", "Grey Button");
    
  6. En el código, use los valores de variable para modificar el comportamiento de la característica que está probando. Por ejemplo, el código siguiente asigna el buttonText valor al contenido de un botón de la aplicación. En este ejemplo se supone que ya ha definido este botón en otra parte del proyecto.

    await button.Dispatcher.RunAsync(
        Windows.UI.Core.CoreDispatcherPriority.Normal,
        () =>
        {
            button.Content = buttonText;
        });
    
  7. Por último, registre el evento de visualización para su experimento en el servicio de pruebas A/B en el Centro de Partners. Inicialice el campo logger en un objeto StoreServicesCustomEventLogger y llame al método LogForVariation. Pase el objeto StoreServicesExperimentVariation que representa la asignación de variación actual (este objeto proporciona contexto sobre el evento al Centro de Partners) y el nombre del evento de visualización para su experimento. Debe coincidir con el nombre del evento de vista que introduzca en su experimento en el Centro de asociados. El código debe registrar el evento de vista cuando el usuario empiece a ver una variación que forma parte del experimento.

    En el ejemplo siguiente se muestra cómo registrar un evento de vista denominado userViewedButton. En este ejemplo, el objetivo del experimento es que el usuario haga clic en un botón de la aplicación, por lo que el evento de vista se registra después de que la aplicación haya recuperado los datos de variación (en este caso, el texto del botón) y lo haya asignado al contenido del botón.

    if (logger == null)
    {
        logger = StoreServicesCustomEventLogger.GetDefault();
    }
    
    logger.LogForVariation(variation, "userViewedButton");
    

Registrar eventos de conversión en el Centro de Partners

A continuación, agregue código que registra eventos de conversión al servicio de pruebas A/B en el Centro de partners. El código debe registrar un evento de conversión cuando el usuario alcanza un objetivo para el experimento. El código específico que necesita dependerá de la aplicación, pero estos son los pasos generales. Para obtener un ejemplo de código completo, vea Crear y ejecutar el primer experimento con pruebas A/B.

  1. En el código que se ejecuta cuando el usuario alcanza un objetivo para uno de los objetivos del experimento, llame al método LogForVariation de nuevo y pase el objeto StoreServicesExperimentVariation y el nombre de un evento de conversión para el experimento. Debe coincidir con uno de los nombres de evento de conversión que escriba para su experimento en el Centro de Partners.

    En el siguiente ejemplo, se registra un evento de conversión denominado userClickedButton desde el controlador de eventos Click para un botón. En este ejemplo, el objetivo del experimento es que el usuario haga clic en el botón.

    private void button_Click(object sender, RoutedEventArgs e)
    {
        if (logger == null)
        {
            logger = StoreServicesCustomEventLogger.GetDefault();
        }
    
        logger.LogForVariation(variation, "userClickedButton");
    }
    

Pasos siguientes

Después de codificar el experimento en la aplicación, está listo para los pasos siguientes:

  1. Define tu experimento en el Centro de Partners. Cree un experimento que defina los eventos de vista, los eventos de conversión y las variaciones únicas de la prueba A/B.
  2. Ejecute y gestione su experimento en el Centro de Partners.