Show Menu
TÓPICOS×

Teste A/B

Se houver vários conteúdos para uma delivery de e-mail e quiser descobrir qual versão terá maior impacto na população direcionada, poderá enviar as diferentes versões para alguns dos recipients e, em seguida, selecionar aquela com a maior taxa de sucesso e enviá-la ao resto dos recipients.
Nesse caso de uso, vamos comparar dois conteúdos de delivery de e-mail por meio de um workflow para construção do target. A mensagem e o texto são idênticos nas duas remessas: apenas o layout é alterado.
A população direcionada é dividida em três grupos: dois grupos de teste e a população restante. Uma versão diferente da delivery é enviada para cada grupo de teste. Após a delivery, um período de espera de 5 dias é configurado antes de coletar os resultados das melhores taxas aberturas. O conteúdo da delivery com a pontuação mais alta é então recuperado por um script e enviado à população que não foi usada como um grupo de teste.
Observe que os critérios que decide qual delivery é o melhor pode ser alterado para atender às suas necessidades. Pode ser a taxa de abertura, a taxa de cliques, a taxa de subscrição, o reatividade, etc.
Além disso, o teste detalhado neste caso de uso aborda apenas duas deliveries, mas é possível testar quantas versões forem necessárias. Basta adicionar atividades ao workflow.
Para criar o teste A/B, aplique as seguintes etapas:

Etapa 1: criação de um workflow de direcionamento

É necessário criar o workflow na guia Targeting and Workflows de uma campanha. Ele é composto de uma atividade Query , uma atividade Split vinculada às duas atividades Email delivery , uma atividade Wait , uma atividade JavaScript code e uma atividade Delivery .
  1. Se ainda não tiver feito isso, crie uma campanha (para saber mais sobre isso, consulte esta seção ).
  2. Vá para a guia Targeting and Workflows .
  3. Altere o rótulo do workflow existente ou clique em Add para criar um novo (para mais informações sobre isso, consulte esta seção ).
  4. Use o mouse para arrastar e soltar atividades no diagrama do workflow, incluindo uma Query (guia Target ), um Split (guia Target ), dois Email deliveries (guia Deliveries ), uma atividade Wait atividade (guia Flow Control ), uma atividade JavaScript code (guia Actions ) e uma atividade Delivery (guia Actions ).

Etapa 2: configuração de amostras de população

Configuração da atividade Query

  • Clique duas vezes na atividade Query .
  • Clique no link Edit query e selecione o tipo de recipients que deseja direcionar.
  • Vincule a atividade Query à atividade Split .

Configuração da atividade Split

Esta atividade permite criar várias populações: a que recebe a delivery A, aquela que recebe a delivery B e a população restante. A utilização de seleção aleatória permite atingir apenas parte da população de cada delivery.
  1. Criação da população A:
    • Clique duas vezes na atividade Split .
    • Na guia existente, altere o rótulo para a população A.
    • Selecione a opção Limit the selected records .
    • Clique no link Edit , selecione Activate random sampling e clique em Next .
    • Defina o limite como 10% e clique em Finish .
  2. Criação da população B:
    • Clique em Add para criar uma nova guia para a população B.
    • Limite a população para 10% como anteriormente.
  3. Criação da população restante:
    • Vá para a guia General .
    • Selecione Generate complement .
    • Altere o rótulo para especificar que esta população não inclui A nem B e clique em OK para fechar a atividade.

Etapa 3: criação de dois templates de delivery

Agora devemos criar dois templates de delivery. Cada modelo será referenciado em uma atividade de Email delivery vinculada à atividade Split . Para obter mais informações, consulte esta seção .
  1. Vá para a pasta Resources > Delivery template .
  2. Duplicar o template de delivery Email .
  3. Crie o conteúdo a ser usado para a delivery A.
  4. Repita esse processo para criar um modelo para a delivery B.

Etapa 4: configuração de deliveries no workflow

A próxima etapa é configurar as deliveries. Estão destinados às três populações criadas na fase anterior: Etapa 2: configuração de amostras de população . As duas primeiras deliverys permitem enviar conteúdo diferente para a população A e B. A terceiro delivery é destinada à população que não recebeu A nem B. O conteúdo será calculado por um script e será idêntico a A ou ao B, dependendo de qual deles obteve a maior taxa de abertura. Precisamos configurar um período de espera para o terceiro delivery, para descobrir o resultado dos deliveries A e B. É por isso que o terceiro delivery inclui uma atividade Wait .
  1. Vá para a atividade Split e vincule a transição destinada à população A para uma das deliveries do e-mail já no workflow.
  2. Clique duas vezes na delivery para abri-la.
  3. Usando a lista suspensa, selecione o template para a delivery A.
  4. Clique em Continue para visualizar o delivery e, em seguida, a salve.
  5. Vincule a transição da atividade Split destinada à população B para o segundo delivery de e-mail.
  6. Abra delivery e selecione o template na delivery B e, em seguida, salve a delivery.
  7. Vincule a transição destinada à população restante para a atividade Wait .
  8. Abra a atividade Wait e configure um período de espera de 5 dias.
  9. Vincule a atividade Wait à atividade JavaScript code .

Etapa 5: criação do script

A escolha do conteúdo de delivery destinado à população restante é calculada por um script. Este script recupera as informações relacionadas à delivery com a mais alta taxa de abertura e copia o conteúdo para a delivery final.

Exemplo de um script

O script a seguir pode ser usado no workflow para construção do target. Para obter mais informações, consulte Implementation .
 // query the database to find the winner (best open rate)
   var winner = xtk.queryDef.create(
     <queryDef schema="nms:delivery" operation="get">
       <select>
         <node expr="@id"/>
         <node expr="@label"/>
         <node expr="[@operation-id]"/>
         <node expr="[@workflow-id]"/>
       </select>
       <where>
         <condition expr={"@FCP=0 and [@workflow-id]= " + instance.id}/>
       </where>
       <orderBy>
         <node expr="[indicators/@estimatedRecipientOpenRatio]" sortDesc="true"/>
       </orderBy>
     </queryDef>).ExecuteQuery()
   
   // create a new delivery object and initialize it by doing a copy of
   // the winner delivery
   var delivery = nms.delivery.create()
   delivery.Duplicate("nms:delivery|" + winner.@id)

   // append 'final' to the delivery label
   delivery.label = winner.@label + " final"

   // link the delivery to the operation to make sure it will be displayed in
   // the campaign dashboard. This attribute needs to be set manually here since 
   // the Duplicate() method has reset it to its default value => 0
   delivery.operation_id = winner.@["operation-id"]
   delivery.workflow_id = winner.@["workflow-id"]

   // adjust some delivery parameters to make it compatible with the 
   // "Prepare and start" option selected in the Delivery tab of this activity
   delivery.scheduling.validationMode = "manual"
   delivery.scheduling.delayed = 0
 
   // save the delivery in database
   delivery.save()
 
   // store the new delivery Id in event variables
   vars.deliveryId = delivery.id

Para obter uma explicação detalhada do script, consulte Detalhes do script .

Implementação

  1. Abra a atividade JavaScript code .
  2. Copie o script oferecido no Exemplo de um script na janela JavaScript code .
  3. No campo Label , digite o nome do script, ou seja,
    <%= vars.deliveryId %>
    
    
  4. Feche a atividade JavaScript code .
  5. Salve seu workflow.

Detalhes do script

Esta seção detalha as várias partes do script e seu modo operacional.
  • A primeira parte do script é uma query. O comando queryDef permite recuperar da tabela NmsDelivery os deliveries criados executando o workflow para construção do target e ordenando com base na taxa estimada de abertura, então as informações do delivery com a taxa mais alta de abertura são recuperadas.
    // query the database to find the winner (best open rate)
       var winner = xtk.queryDef.create(
         <queryDef schema="nms:delivery" operation="get">
           <select>
             <node expr="@id"/>
             <node expr="@label"/>
             <node expr="[@operation-id]"/>
           </select>
           <where>
             <condition expr={"@FCP=0 and [@workflow-id]= " + instance.id}/>
           </where>
           <orderBy>
             <node expr="[indicators/@estimatedRecipientOpenRatio]" sortDesc="true"/>
           </orderBy>
         </queryDef>).ExecuteQuery()
    
    
  • A delivery com a taxa mais alta de abertura é duplicada.
     // create a new delivery object and initialize it by doing a copy of
     // the winner delivery
    var delivery = nms.delivery.create()
    delivery.Duplicate("nms:delivery|" + winner.@id)
    
    
  • O rótulo da delivery duplicada é modificado e a palavra final é adicionada a ele.
    // append 'final' to the delivery label
    delivery.label = winner.@label + " final"
    
    
  • A delivery é copiada no painel de campanha.
    // link the delivery to the operation to make sure it will be displayed in
    // the campaign dashboard. This attribute needs to be set manually here since 
    // the Duplicate() method has reset it to its default value => 0
    delivery.operation_id = winner.@["operation-id"]
    delivery.workflow_id = winner.@["workflow-id"]
    
    
    // adjust some delivery parameters to make it compatible with the 
    // "Prepare and start" option selected in the Delivery tab of this activity
    delivery.scheduling.validationMode = "manual"
    delivery.scheduling.delayed = 0
    
    
  • A delivery é salva no banco de dados.
    // save the delivery in database
    delivery.save()
    
    
  • O identificador único da delivery duplicada é armazenado na variável do workflow.
    // store the new delivery Id in event variables
    vars.deliveryId = delivery.id
    
    

Outros critérios de seleção

O exemplo acima permite selecionar o conteúdo de uma delivery com base na taxa de abertura de e-mails. É possível adaptá-la se baseando em outros indicadores específicos de delivery:
  • Melhor rendimento de cliques: [indicators/@recipientClickRatio] ,
  • Taxa de reatividade mais alta (e-mail aberto e cliques na mensagem): [indicators/@reactivity] ,
  • Taxa de reclamação mais baixa: [indicators/@refusedRatio] (use o valor false para o atributo sortDesc),
  • Maior taxa de conversão: [indicators/@transactionRatio] ,
  • Número de páginas visitadas após a recepção de uma mensagem: [indicators/@totalWebPage] ,
  • Taxa de cancelamento de subscrição mais baixa: [indicators/@optOutRatio] ,
  • Valor da transação: [indicators/@amount] .

Etapa 6: definição do delivery final

Depois que o script for criado para selecionar o vencedor do teste A/B, é possível definir os parâmetros da delivery final.
  1. Conecte a atividade JavaScript code à atividade restante Delivery .
  2. Abra a atividade Delivery .
  3. Desmarque a opção Generate an outbound transition para finalizar o workflow com esta atividade.
  4. Deixe as outras opções em seus valores padrão.
Ao preparar o delivery especificado na transição (definido por meio da atividade Javascript Code ), é possível aprovar e iniciar o envio, conforme descrito na próxima etapa.

Etapa 7: início do workflow

  1. Clique em Start para iniciar o workflow.
  2. Aprove o target e o conteúdo para as remessas A e B via painel de campanha.
  3. Confirme a delivery.
  4. Aguarde até o final do período de 5 dias para descobrir qual conteúdo foi calculado após os resultados da abertura da delivery.
    Nesse caso, o template B foi escolhido.
  5. Após o conteúdo da terceira delivery ser determinado, aprove o target e o conteúdo.

Etapa 8: analisar o resultado

Depois que as deliveries forem enviadas, é possível verificar quais recipients receberam e se eles abriram ou não a entrega.
  • Para descobrir quais recipients foram selecionados, abra um delivery pelo painel de campanha e clique na guia Delivery .
  • Para saber se o delivery foi aberto, vá para a guia Tracking .
  • Compare com o outro fornecimento.
No nosso exemplo, a delivery B pontuou a maior taxa de abertura. Isso significa que o conteúdo B será usado para a delivery final.