Codificar seu aplicativo para experimentação
Depois de criar um projeto e definir variáveis remotas no Partner Center, você estará pronto para atualizar o código em seu aplicativo UWP (Plataforma Universal do Windows) para:
- Receba valores de variáveis remotas do Partner Center.
- Use variáveis remotas para configurar experiências de aplicativo para seus usuários.
- Registre eventos no Partner Center que indicam quando os usuários visualizaram seu experimento e executaram uma ação desejada (também chamada de conversão).
Para adicionar esse comportamento ao seu aplicativo, você usará APIs fornecidas pelo SDK de Serviços da Microsoft Store.
As seções a seguir descrevem o processo geral de obtenção de variações para seu experimento e eventos de log no Partner Center. Depois de codificar seu aplicativo para experimentação, você pode definir um experimento no Partner Center. Para obter um passo a passo que demonstra o processo de ponta a ponta de criar e executar um experimento, consulte Criar e executar seu primeiro experimento com testes A/B.
Observação
Algumas das APIs de experimentação no SDK de Serviços da Microsoft Store usam o padrão assíncrono para recuperar dados do Partner Center. Isso significa que parte da execução desses métodos pode ocorrer depois que os métodos são invocados, para que a interface do usuário do aplicativo possa permanecer responsiva enquanto as operações são concluídas. O padrão assíncrono exige que seu aplicativo use a palavra-chave async e o operador await ao chamar as APIs, conforme demonstrado pelos exemplos de código neste artigo. Por convenção, os métodos assíncronos terminam com Async.
Configurar seu projeto
Para começar, instale o SDK de Serviços da Microsoft Store em seu computador de desenvolvimento e adicione as referências necessárias ao seu projeto.
- Instale o SDK de Serviços da Microsoft Store.
- Abra o projeto no Visual Studio.
- No Gerenciador de Soluções, expanda o nó do projeto, clique com o botão direito do mouse em Referências e clique em Adicionar Referência.
- No Gerenciador de Referências, expanda Janelas Universais e clique em Extensões.
- Na lista de SDKs, marque a caixa de seleção ao lado de Microsoft Engagement Framework e clique em OK.
Observação
Os exemplos de código neste artigo pressupõem que seu arquivo de código tenha instruções using para os namespaces System.Threading.Tasks e Microsoft.Services.Store.Engagement .
Obter dados de variação e registrar o evento de visualização do seu experimento
Em seu projeto, localize o código do recurso que você deseja modificar em seu experimento. Adicione código que recupere dados para uma variação, use esses dados para modificar o comportamento do recurso que você está testando e, em seguida, registre o evento de exibição do seu experimento no serviço de teste A/B no Partner Center.
O código específico necessário dependerá do seu aplicativo, mas o exemplo a seguir demonstra o processo básico. Para obter um exemplo de código completo, consulte Criar e executar seu primeiro experimento com testes 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");
}
As etapas a seguir descrevem as partes importantes desse processo em detalhes.
Declare um objeto StoreServicesExperimentVariation que representa a atribuição de variação atual e um objeto StoreServicesCustomEventLogger que você usará para registrar eventos de exibição e conversão no Partner Center.
private StoreServicesExperimentVariation variation; private StoreServicesCustomEventLogger logger;
Declare uma variável de cadeia de caracteres atribuída à ID do projeto para o experimento que você deseja recuperar.
Observação
Você obtém uma ID do projeto ao criar um projeto no Partner Center. A ID do projeto mostrada abaixo é apenas para fins de exemplo.
private string projectId = "F48AC670-4472-4387-AB7D-D65B095153FB";
Obtenha a atribuição de variação armazenada em cache atual para seu experimento chamando o método estático GetCachedVariationAsync e passe a ID do projeto para o experimento. Esse método retorna um objeto StoreServicesExperimentVariationResult que fornece acesso à atribuição de variação por meio da propriedade ExperimentVariation .
var result = await StoreServicesExperimentVariation.GetCachedVariationAsync(projectId); variation = result.ExperimentVariation;
Verifique a propriedade IsStale para determinar se a atribuição de variação armazenada em cache precisa ser atualizada com uma atribuição de variação remota do servidor. Se ele precisar ser atualizado, chame o método estático GetRefreshedVariationAsync para verificar se há uma atribuição de variação atualizada do servidor e atualizar a variação armazenada em cache local.
if (result.ErrorCode != StoreServicesEngagementErrorCode.None || result.ExperimentVariation.IsStale) { result = await StoreServicesExperimentVariation.GetRefreshedVariationAsync(projectId); if (result.ErrorCode == StoreServicesEngagementErrorCode.None) { variation = result.ExperimentVariation; } }
Use os métodos GetBoolean, GetDouble, GetInt32 ou GetString do objeto StoreServicesExperimentVariation para obter os valores para a atribuição de variação. Em cada método, o primeiro parâmetro é o nome da variação que você deseja recuperar (esse é o mesmo nome de uma variação que você insere no Partner Center). O segundo parâmetro é o valor padrão que o método deve retornar se não for capaz de recuperar o valor especificado do Partner Center (por exemplo, se não houver conectividade de rede) e uma versão armazenada em cache da variação não estiver disponível.
O exemplo a seguir usa GetString para obter uma variável chamada buttonText e especifica um valor de variável padrão de Grey Button.
var buttonText = variation.GetString("buttonText", "Grey Button");
Em seu código, use os valores de variável para modificar o comportamento do recurso que você está testando. Por exemplo, o código a seguir atribui o valor buttonText ao conteúdo de um botão em seu aplicativo. Este exemplo pressupõe que você já tenha definido esse botão em outro lugar do projeto.
await button.Dispatcher.RunAsync( Windows.UI.Core.CoreDispatcherPriority.Normal, () => { button.Content = buttonText; });
Por fim, registre o evento de exibição do seu experimento no serviço de teste A/B no Partner Center. Inicialize o
logger
campo para um objeto StoreServicesCustomEventLogger e chame o método LogForVariation . Passe o objeto StoreServicesExperimentVariation que representa a atribuição de variação atual (esse objeto fornece contexto sobre o evento para o Partner Center) e o nome do evento de exibição para seu experimento. Isso deve corresponder ao nome do evento de exibição inserido para seu experimento no Partner Center. Seu código deve registrar o evento de exibição quando o usuário começar a exibir uma variação que faz parte do seu experimento.O exemplo a seguir mostra como registrar um evento de exibição chamado userViewedButton. Neste exemplo, o objetivo do experimento é fazer com que o usuário clique em um botão no aplicativo, para que o evento de exibição seja registrado depois que o aplicativo recuperar os dados de variação (nesse caso, o texto do botão) e atribuí-los ao conteúdo do botão.
if (logger == null) { logger = StoreServicesCustomEventLogger.GetDefault(); } logger.LogForVariation(variation, "userViewedButton");
Registrar eventos de conversão no Partner Center
Em seguida, adicione o código que registra eventos de conversão ao serviço de teste A/B no Partner Center. Seu código deve registrar um evento de conversão quando o usuário atingir um objetivo para seu experimento. O código específico de que você precisa dependerá do seu aplicativo, mas aqui estão as etapas gerais. Para obter um exemplo de código completo, consulte Criar e executar seu primeiro experimento com testes A/B.
No código que é executado quando o usuário atinge um objetivo para uma das metas do experimento, chame o método LogForVariation novamente e passe o objeto StoreServicesExperimentVariation e o nome de um evento de conversão para seu experimento. Isso deve corresponder a um dos nomes de evento de conversão inseridos para seu experimento no Partner Center.
O exemplo a seguir registra um evento de conversão chamado userClickedButton do manipulador de eventos Click para um botão. Neste exemplo, o objetivo do experimento é fazer com que o usuário clique no botão.
private void button_Click(object sender, RoutedEventArgs e) { if (logger == null) { logger = StoreServicesCustomEventLogger.GetDefault(); } logger.LogForVariation(variation, "userClickedButton"); }
Próximas etapas
Depois de codificar o experimento em seu aplicativo, você estará pronto para as seguintes etapas:
- Defina seu experimento no Partner Center. Crie um experimento que defina os eventos de visualização, os eventos de conversão e as variações exclusivas para o teste A/B.
- Execute e gerencie seu experimento no Partner Center.