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

You need to create your workflow in the Targeting and Workflows tab of a campaign. It is made up of a Query activity, a Split activity linked to two Email delivery activities, a Wait activity, a JavaScript code activity, and a Delivery activity.
  1. Se ainda não tiver feito isso, crie uma campanha (para saber mais sobre isso, consulte esta seção ).
  2. Acesse 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 the mouse to drag and drop activities into the workflow diagram, including a Query ( Target tab), a Split ( Target tab), two Email deliveries ( Deliveries tab), a Wait activity ( Flow Control tab), a JavaScript code activity ( Actions tab), and a Delivery activity ( Actions tab).

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

Configuração da atividade Query

  • Double-click the Query activity.
  • Clique no link Edit query e selecione o tipo de recipients que deseja direcionar.
  • Link the Query activity to the Split activity.

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:
    • Double-click the Split activity.
    • Na guia existente, altere o rótulo para a população A.
    • Selecione a opção Limit the selected records .
    • Click the Edit link, select Activate random sampling , and click 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:
    • Acesse 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. Each template will be referenced in an Email delivery activity linked to the Split activity. Para obter mais informações, consulte esta seção .
  1. Vá para a pasta de Resources > Delivery template .
  2. Duplicate the Email delivery template.
  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. Link the Wait activity to the JavaScript code activity.

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. Close the JavaScript code activity.
  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. Connect the JavaScript code activity to the remaining Delivery activity.
  2. Open the Delivery activity.
  3. Uncheck the Generate an outbound transition option to finish the workflow with this activity.
  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. Click Start the 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 pelo painel de campanha e clique na guia Delivery 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.