Eseguire test di funzionalità con attributi

Ultimo aggiornamento: 2023-07-27
  • Argomenti:
  • APIs/SDKs
    Visualizza ulteriori informazioni su questo argomento
  • Creato per:
  • Developer

Riepilogo dei passaggi

  1. Abilita decisioning sul dispositivo per la tua organizzazione
  2. Creare un Test A/B attività
  3. Definire A e B
  4. Aggiungere un pubblico
  5. Imposta allocazione traffico
  6. Impostare la distribuzione del traffico sulle varianti
  7. Configurare la generazione di rapporti
  8. Aggiungere metriche per il tracciamento dei KPI
  9. Implementare il codice per eseguire test di funzionalità con attributi
  10. Implementare il codice per tenere traccia degli eventi di conversione
  11. Attivare i test delle funzioni con gli attributi
NOTA

Supponiamo di essere una società di e-commerce per la vendita al dettaglio. Desideri aumentare il tasso di conversione quando i clienti sfogliano e ordinano il catalogo dei prodotti. Si ipotizza che alcuni algoritmi di ordinamento e strategie di impaginazione producano risultati migliori rispetto ad altri. Per testare questa teoria, decidi di eseguire un test di funzionalità che implica la riprogettazione del widget di ordinamento utilizzando diverse opzioni di ordinamento per gli utenti finali. Assicurati che questo test delle funzioni venga eseguito con latenza prossima allo zero, in modo che non influisca negativamente sulle esperienze utente e non distorca i risultati.

1. Abilita decisioning sul dispositivo per la tua organizzazione

L’abilitazione del decisioning sul dispositivo garantisce che un’attività A/B venga eseguita con latenza vicina allo zero. Per abilitare questa funzione, vai a Amministrazione > Implementazione > Dettagli account in Adobe Target, e abilita Decisioning sul dispositivo attivare/disattivare.

immagine alt

NOTA

È necessario disporre dell'amministratore o dell'approvatore ruolo utente per abilitare o disabilitare Decisioning sul dispositivo attivare/disattivare.

Dopo aver abilitato Decisioning sul dispositivo attivare/disattivare, Adobe Target inizia a generare artefatti regola per il tuo cliente.

2. Creare un Test A/B attività

  1. In entrata Adobe Target, passare alla Attività , quindi seleziona Crea attività > Test A/B.

    immagine alt

  2. In Crea attività test A/B , lascia il valore predefinito Web opzione selezionata (1), seleziona Modulo come compositore esperienza (2), seleziona Area di lavoro predefinita con Nessuna restrizione di proprietà (3) e fai clic su Successivo 4).

    immagine alt

3. Definire A e B

  1. In Esperienze fase di creazione dell’attività, fornisci un nome per l’attività (1) e aggiungi una seconda esperienza, Esperienza B, facendo clic sul pulsante Aggiungi esperienza (2) Inserisci il nome della posizione (3) all’interno dell’applicazione in cui desideri eseguire il test delle funzioni con gli attributi. Nell’esempio riportato di seguito, product-results-page è la posizione definita per l'Esperienza A (è anche la posizione definita per l'Esperienza B).

    immagine alt

    Esperienza A conterrà il JSON che indica la logica di business per eseguire le seguenti operazioni:

    • Avvia la funzione di algoritmo di ordinamento tramite test_sorting flag di funzione
    • Esegui l’algoritmo di ordinamento consigliato definito in sorting_algorithm _**_attribute
    • Restituisci 50 prodotti per pagina, in base a quanto definito dalla strategia di impaginazione di pagination_limit
  2. Nell’Esperienza A, fai clic su per modificare il contenuto da Contenuto predefinito al JSON selezionando Crea offerta JSON come illustrato di seguito (1).

    immagine alt

  3. Definire il JSON con test_sorting, sorting_algorithm, e pagination_limit flag e attributi che verranno utilizzati per avviare l’algoritmo di ordinamento consigliato con un limite di impaginazione di 50 prodotti.

    NOTA

    Quando Adobe Target Quando un utente riceve un bucket per visualizzare l’esperienza A, viene restituito il JSON con gli attributi definiti nell’esempio. Nel codice, dovrai controllare il valore del flag di funzione test_sorting per verificare se la funzione di ordinamento deve essere attivata. In tal caso, utilizzerai il valore consigliato di sorting_algorithm per mostrare i prodotti consigliati nella vista elenco prodotti. Il limite di prodotti da mostrare per l’applicazione sarà 50, poiché è il valore del pagination_limit attributo.

    immagine alt

    Esperienza B definirà il JSON che segnala la logica di business per eseguire le seguenti operazioni:

    • Avviare la feature dell'algoritmo di ordinamento tramite il flag della feature test_sorting
    • Esegui il best_sellers algoritmo di ordinamento definito in sorting_algorithm _**_attribute
    • Restituisci 50 prodotti per pagina, in base a quanto definito dalla strategia di impaginazione di pagination_limit
    NOTA

    Quando Adobe Target Quando un utente riceve un bucket per visualizzare l’esperienza B, viene restituito il JSON con gli attributi definiti nell’esempio. Nel codice, dovrai controllare il valore del flag di funzione test_sorting per verificare se la funzione di ordinamento deve essere attivata. In tal caso, utilizzerai best_sellers valore del sorting_algorithm per visualizzare i prodotti più venduti nella vista elenco prodotti. Il limite di prodotti da mostrare per l’applicazione sarà 50, poiché è il valore del pagination_limit attributo.

    immagine alt

4. Aggiungere un pubblico

In Targeting passaggio, mantieni Tutti i visitatori pubblico. Questo consente di comprendere l’impatto della funzione di ordinamento, nonché l’algoritmo e il numero di elementi che influenzano meglio i risultati.

immagine alt

5. Impostare l’allocazione del traffico

Definisci la percentuale di visitatori rispetto alla quale desideri testare gli algoritmi di ordinamento e la strategia di impaginazione. In altre parole, a quale percentuale degli utenti desideri eseguire il test? In questo esempio, per distribuire il test a tutti gli utenti connessi, mantieni l’allocazione del traffico al 100%.

immagine alt

6. Impostare la distribuzione del traffico sulle varianti

Definisci la percentuale di visitatori che vedranno l’algoritmo di ordinamento consigliato rispetto a quello dei best seller, con un limite di 50 prodotti per pagina. In questo esempio, mantieni la distribuzione del traffico come suddivisione 50/50 tra le esperienze A e B.

immagine alt

7. Impostare la generazione rapporti

In Obiettivi e impostazioni passo, scegli Adobe Target come Origine per la generazione di rapporti per visualizzare i risultati dei test A/B in Adobe Target UI o scegli Adobe Analytics per visualizzarli nell’interfaccia utente di Adobe Analytics.

immagine alt

8. Aggiungere metriche per il tracciamento dei KPI

Scegli un Metrica per obiettivo per misurare il test della funzione con gli attributi. In questo esempio, il successo si basa sull’acquisto di un prodotto da parte dell’utente, a seconda dell’algoritmo di ordinamento e della strategia di impaginazione mostrati.

9. Implementare nell’applicazione i test delle funzioni con gli attributi

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");
  });
}
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. Implementa il codice per tenere traccia degli eventi di conversione

//... 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"
          }
        }
      ]
    }
})
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. Attivare i test delle funzioni con gli attributi

immagine alt

In questa pagina