Executar testes de recursos com atributos

Resumo das etapas

  1. Habilitar on-device decisioning para sua organização
  2. Criar uma atividade A/B Test
  3. Defina seus A e B
  4. Adicionar um público
  5. Definir alocação de tráfego
  6. Definir a distribuição do tráfego para variações
  7. Configurar relatórios
  8. Adicionar métricas para KPIs de rastreamento
  9. Implementar código para executar testes de recursos com atributos
  10. Implementar código para rastrear eventos de conversão
  11. Ative seus testes de recursos com atributos
NOTE
Suponha que você seja uma empresa de comércio eletrônico varejista. Você deseja aumentar a taxa de conversão quando os clientes navegarem e classificarem o catálogo de produtos. Você tem uma hipótese de que certos algoritmos de classificação e estratégias de paginação produzem resultados melhores do que outros. Para testar essa teoria, você decide executar um teste de recurso que envolve o redesign do widget de classificação usando diferentes opções de classificação para os usuários finais. Certifique-se de que esse teste de recurso seja executado com latência próxima de zero para que ele não afete negativamente as experiências do usuário e distorça os resultados.

1. Habilitar on-device decisioning para sua organização

A ativação da decisão no dispositivo garante que uma atividade A/B seja executada com latência próxima a zero. Para habilitar este recurso, navegue até Administration > Implementation > Account details em Adobe Target e habilite a alternância On-Device Decisioning.

alt imagem

NOTE
Você deve ter a função de usuário de Administrador ou Aprovador para habilitar ou desabilitar a On-Device Decisioning.

Depois de habilitar a alternância On-Device Decisioning, Adobe Target começa a gerar artefatos de regra para o seu cliente.

2. Criar uma atividade A/B Test

  1. Em Adobe Target, navegue até a página Activities e selecione Create Activity > A/B test.

    alt imagem

  2. No modal Create A/B Test Activity, deixe a opção padrão Web selecionada (1), selecione Form como compositor de experiência (2), selecione Default Workspace com No Property Restrictions (3) e clique em Next (4).

    alt imagem

3. Defina seus A e B

  1. Na etapa de criação da atividade Experiences, forneça um nome para a atividade (1) e adicione uma segunda experiência, Experiência B, clicando no botão Add Experience (2). Digite o nome do local (3) no aplicativo onde deseja executar o teste de recurso com atributos. No exemplo mostrado abaixo, product-results-page é o local definido para a Experiência A. (Também é o local definido para a Experiência B.)

    alt imagem

    Experience A conterá o JSON que sinaliza à sua lógica comercial o seguinte:

    • Iniciar o recurso de algoritmo de classificação por meio do sinalizador de recurso test_sorting
    • Executar o algoritmo de classificação recomendado definido no sorting_algorithm _**_attribute
    • Retorne 50 produtos por página, conforme definido pela estratégia de paginação definida no pagination_limit
  2. Na Experiência A, clique para alterar o conteúdo de Default Content para JSON ao selecionar Create JSON Offer conforme mostrado abaixo (1).

    alt imagem

  3. Defina o JSON com os sinalizadores e atributos test_sorting, sorting_algorithm e pagination_limit que serão usados para iniciar o algoritmo de classificação recomendado com um limite de paginação de 50 produtos.

    note note
    NOTE
    Quando Adobe Target agrupa um usuário para ver a Experiência A, o JSON com os atributos definidos no exemplo serão retornados. Em seu código, será necessário verificar o valor do sinalizador de recurso test_sorting para ver se o recurso de classificação deve ser ativado. Em caso afirmativo, você usará o valor recomendado do atributo sorting_algorithm para mostrar os produtos recomendados na exibição da lista de produtos. O limite de produtos a ser exibido para seu aplicativo será 50, pois esse é o valor do atributo pagination_limit.

    alt imagem

    O Experience B definirá o JSON que sinaliza à sua lógica comercial o seguinte:

    • Iniciar o recurso de algoritmo de classificação por meio do sinalizador de recurso test_sorting
    • Executar o algoritmo de classificação best_sellers definido em sorting_algorithm _**_attribute
    • Retorne 50 produtos por página, conforme definido pela estratégia de paginação definida no pagination_limit
    note note
    NOTE
    Quando Adobe Target agrupa um usuário para ver a Experiência B, o JSON com os atributos definidos no exemplo serão retornados. Em seu código, será necessário verificar o valor do sinalizador de recurso test_sorting para ver se o recurso de classificação deve ser ativado. Em caso afirmativo, você usará o valor best_sellers do atributo sorting_algorithm para mostrar os produtos mais vendidos na exibição da lista de produtos. O limite de produtos a ser exibido para seu aplicativo será 50, pois esse é o valor do atributo pagination_limit.

    alt imagem

4. Adicionar um público-alvo

Na etapa Targeting, mantenha o público-alvo All Visitors. Isso permitirá entender o impacto do recurso de classificação, bem como qual algoritmo e número de itens influenciam melhor os resultados.

alt imagem

5. Definir a alocação de tráfego

Defina a porcentagem de seus visitantes em relação à qual você deseja testar os algoritmos de classificação e a estratégia de paginação. Em outras palavras, para que porcentagem de seus usuários você deseja implantar esse teste? Neste exemplo, para implantar este teste para todos os usuários conectados, mantenha a alocação de tráfego em 100%.

alt imagem

6. Definir a distribuição do tráfego para variações

Defina a porcentagem de seus visitantes que verão o algoritmo de classificação recomendado em comparação com os melhores vendedores, com um limite de 50 produtos por página. Neste exemplo, mantenha a distribuição do tráfego dividida em 50/50 entre as Experiências A e B.

alt imagem

7. Configurar relatórios

Na etapa Goals & Settings, escolha Adobe Target como Reporting Source para exibir os resultados do teste A/B na interface do usuário Adobe Target, ou Adobe Analytics para exibi-los na interface do usuário do Adobe Analytics.

alt imagem

8. Adicionar métricas para rastrear KPIs

Escolha um Goal Metric para medir o teste de recurso com atributos. Neste exemplo, o sucesso se baseia no fato de o usuário comprar um produto, dependendo do algoritmo de classificação e da estratégia de paginação mostrada.

9. Implementar testes de recursos com atributos no aplicativo

Node.js
code language-js line-numbers
const TargetClient = require("@adobe/target-nodejs-sdk");
const options = {
  client: "testClient",
  organizationId: "ABCDEF012345677890ABCDEF0@AdobeOrg",
  decisioningMethod: "on-device",
  events: {
    clientReady: targetClientReady
  }
};
const targetClient = TargetClient.create(options);

function targetClientReady() {
  return targetClient.getAttributes(["product-results-page"]).then(function(attributes) {
    const test_sorting = attributes.getValue("product-results-page", "test-sorting");
    const sorting_algorithm = attributes.getValue("product-results-page", "sorting_algorithm");
    const pagination_limit = attributes.getValue("product-results-page", "pagination_limit");
  });
}
Java
code language-java line-numbers
import com.adobe.target.edge.client.ClientConfig;
import com.adobe.target.edge.client.TargetClient;
import com.adobe.target.delivery.v1.model.ChannelType;
import com.adobe.target.delivery.v1.model.Context;
import com.adobe.target.delivery.v1.model.ExecuteRequest;
import com.adobe.target.delivery.v1.model.MboxRequest;
import com.adobe.target.edge.client.entities.TargetDeliveryRequest;
import com.adobe.target.edge.client.model.TargetDeliveryResponse;

ClientConfig config = ClientConfig.builder()
    .client("testClient")
    .organizationId("ABCDEF012345677890ABCDEF0@AdobeOrg")
    .build();
TargetClient targetClient = TargetClient.create(config);
MboxRequest mbox = new MboxRequest().name("product-results-page").index(0);
TargetDeliveryRequest request = TargetDeliveryRequest.builder()
    .context(new Context().channel(ChannelType.WEB))
    .execute(new ExecuteRequest().mboxes(Arrays.asList(mbox)))
    .build();
Attributes attributes = targetClient.getAttributes(request, "product-results-page");
String testSorting = attributes.getString("product-results-page", "test-sorting");
String sortingAlgorithm = attributes.getString("product-results-page", "sorting_algorithm");
String paginationLimit = attributes.getString("product-results-page", "pagination_limit");

10. Implementar código para rastrear eventos de conversão

Node.js
code language-js line-numbers
//... Code removed for brevity

//When a conversion happens
TargetClient.sendNotifications({
    targetCookie,
    "request" : {
      "notifications" : [
        {
          type: "click",
          timestamp : Date.now(),
          id: "conversion",
          mbox : {
            name : "product-results-page"
          }
        }
      ]
    }
})
Java
code language-java line-numbers
ClientConfig config = ClientConfig.builder()
  .client("acmeclient")
  .organizationId("1234567890@AdobeOrg")
  .build();
TargetClient targetClient = TargetClient.create(config);

Context context = new Context().channel(ChannelType.WEB);

ExecuteRequest executeRequest = new ExecuteRequest();

NotificationDeliveryService notificationDeliveryService = new NotificationDeliveryService();

Notification notification = new Notification();
notification.setId("conversion");
notification.setImpressionId(UUID.randomUUID().toString());
notification.setType(MetricType.CLICK);
notification.setTimestamp(System.currentTimeMillis());
notification.setTokens(
    Collections.singletonList(
        "IbG2Jz2xmHaqX7Ml/YRxRGqipfsIHvVzTQxHolz2IpSCnQ9Y9OaLL2gsdrWQTvE54PwSz67rmXWmSnkXpSSS2Q=="));

TargetDeliveryRequest targetDeliveryRequest =
    TargetDeliveryRequest.builder()
        .context(context)
        .execute(executeRequest)
        .notifications(Collections.singletonList(notification))
        .build();

TargetDeliveryResponse offers = targetClient.getOffers(request);
notificationDeliveryService.sendNotification(request);

Attributes attributes = targetClient.getAttributes(request, "product-results-page");
String testSorting = attributes.getString("product-results-page", "test-sorting");
String sortingAlgorithm = attributes.getString("product-results-page", "sorting_algorithm");
String paginationLimit = attributes.getString("product-results-page", "pagination_limit");

11. Ative seus testes de recursos com atributos

alt imagem

recommendation-more-help
6906415f-169c-422b-89d3-7118e147c4e3