Programar tu aplicación para los experimentos.
Después de crear un proyecto y definir variables remotas en el Centro de partners, está listo para actualizar el código de la aplicación de Plataforma universal de Windows (UWP) a:
- 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 el 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 obtención de variaciones para el experimento y el registro de 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 partners. Para ver un tutorial que muestra el proceso completo de creación y ejecución de un experimento, consulte Creación y ejecución del 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 async y el operador await 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.
Configurar el proyecto
Para empezar, instale el SDK de Servicios de Microsoft Store en el equipo de desarrollo y agregue las referencias necesarias al proyecto.
- Instale el SDK de Servicios de Microsoft Store.
- Abra el proyecto en Visual Studio.
- En Explorador de soluciones, expanda el nodo del proyecto, haga clic con el botón derecho en Referencias y haga clic en Agregar referencia.
- En el Administrador de referencias, expanda Windows universal y haga clic en Extensiones.
- En la lista de 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 instrucciones using para los espacios de nombres System.Threading.Tasks y Microsoft.Services.Store.Engagement .
Obtención de datos de variación y registro del evento de vista del 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 característica 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, consulte Creación y ejecución del 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.
Declare un objeto StoreServicesExperimentVariation que represente la asignación de variación actual y un objeto StoreServicesCustomEventLogger que usará para registrar eventos de vista y conversión en el Centro de partners.
private StoreServicesExperimentVariation variation; private StoreServicesCustomEventLogger logger;
Declare una variable de cadena que se asigna al identificador del proyecto para el experimento que desea 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";
Obtenga la asignación de variación almacenada en caché actual para el experimento llamando al método estático GetCachedVariationAsync y pase el identificador del proyecto para el experimento al 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;
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 desde el 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; } }
Usa los métodos GetBoolean, GetDouble, GetInt32 o 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 se especifica un valor de variable predeterminado de Grey Button.
var buttonText = variation.GetString("buttonText", "Grey Button");
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 valor buttonText 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; });
Por último, registre el evento de vista del experimento en el servicio de pruebas A/B en el Centro de partners. Inicialice el
logger
campo 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 vista del experimento. Debe coincidir con el nombre del evento de vista que escriba para el experimento en el Centro de partners. 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 los 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, consulte Creación y ejecución del primer experimento con pruebas A/B.
En el código que se ejecuta cuando el usuario alcanza un objetivo para uno de los objetivos del experimento, llame de nuevo al método LogForVariation 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 el experimento en el Centro de partners.
En el ejemplo siguiente 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:
- Defina el 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 de A/B.
- Ejecute y administre el experimento en el Centro de partners.
Temas relacionados
- Creación de un proyecto y definición de variables remotas en el Centro de partners
- Definir el experimento en el Centro de partners
- Administrar el experimento en el Centro de partners
- Creación y ejecución del primer experimento con pruebas A/B
- Ejecución de experimentos para aplicaciones con pruebas A/B