Introdução aos Target SDKs

Para começar a usar o, recomendamos que você crie sua primeira atividade de sinalizador de recursos decisão no dispositivo no idioma de sua escolha:

  • Node.js
  • Java
  • .NET
  • Python

Resumo das etapas

  1. Ativar a decisão no dispositivo para sua organização
  2. Instalar o SDK
  3. Inicializar o SDK
  4. Configurar os sinalizadores de recursos em uma atividade de Adobe Target Teste A/B
  5. Implementar e renderizar o recurso em seu aplicativo
  6. Implementar o rastreamento de eventos no aplicativo
  7. Ativar sua atividade Teste A/B

​1. Ativar a decisão no dispositivo para sua organização

A habilitação da decisão no dispositivo garante que uma atividade de Teste A/B seja executada com latência próxima a zero. Para habilitar este recurso, navegue até Administração > Implementação > Detalhes da conta e habilite a opção Decisão no Dispositivo.

alt imagem

NOTE
Você deve ter a função de Administrador ou Aprovador função de usuário para habilitar ou desabilitar a opção Decisão no Dispositivo.

Depois de habilitar a opção Decisão no Dispositivo, o Adobe Target começa a gerar artefatos de regra para o seu cliente.

​2. Instalar o SDK

Para Node.js, Java e Python, execute o comando a seguir no diretório do projeto no terminal. Para .NET, adicione-o como uma dependência instalando do NuGet.

Node.js (NPM)
code language-js line-numbers
npm i @adobe/target-nodejs-sdk -P
Java (Maven)
code language-javascript line-numbers
<dependency>
   <groupId>com.adobe.target</groupId>
   <artifactId>java-sdk</artifactId>
   <version>2.0</version>
</dependency>
.NET (Bash)
code language-bash line-numbers
dotnet add package Adobe.Target.Client
Python (pip)
code language-python line-numbers
pip install target-python-sdk

​3. Inicializar o SDK

O artefato da regra é baixado durante a etapa de inicialização do SDK. Você pode personalizar a etapa de inicialização para determinar como o artefato é baixado e usado.

Node.js
code language-js line-numbers
const TargetClient = require("@adobe/target-nodejs-sdk");

const CONFIG = {
   client: "<your target client code>",
   organizationId: "your EC org id",
   decisioningMethod: "on-device",
   events: {
      clientReady: targetClientReady
      }
};

const tClient = TargetClient.create(CONFIG);

function targetClientReady() {
   //Adobe Target SDK has now downloaded the JSON artifact locally, which contains the activity details.
   //We will see how to use the artifact here very soon.
}
Java (Maven)
code language-javascript line-numbers
ClientConfig config = ClientConfig.builder()
   .client("testClient")
   .organizationId("ABCDEF012345677890ABCDEF0@AdobeOrg")
   .build();
TargetClient targetClient = TargetClient.create(config);
.NET (C#)
code language-csharp line-numbers
var targetClientConfig = new TargetClientConfig.Builder("testClient", "ABCDEF012345677890ABCDEF0@AdobeOrg")
   .Build();
this.targetClient.Initialize(targetClientConfig);
Python
code language-python line-numbers
from target_python_sdk import TargetClient

def target_client_ready():
   # Adobe Target SDK has now downloaded the JSON artifact locally, which contains the activity details.
   # We will see how to use the artifact here very soon.

CONFIG = {
   "client": "<your target client code>",
   "organization_id": "your EC org id",
   "decisioning_method": "on-device",
   "events": {
      "client_ready": target_client_ready
   }
}

target_client = TargetClient.create(CONFIG)

​4. Configurar os sinalizadores de recursos em uma atividade de Adobe Target Teste A/B

  1. Em Target, navegue até a página Atividades e selecione Criar atividade > Teste A/B.

    alt imagem

  2. No modal Criar Atividade de Teste A/B, deixe a opção padrão da Web selecionada (1), selecione Formulário como seu compositor de experiência (2), selecione Workspace Padrão com Sem Restrições de Propriedade(3) e clique em Avançar (4).

    alt imagem

  3. Na etapa de criação da atividade Experiências, forneça um nome para a atividade (1) e adicione uma segunda experiência, Experiência B, clicando em Adicionar Experiência (2). Digite o nome do local de sua escolha (3). Por exemplo, ondevice-featureflag ou homepage-addtocart-featureflag são nomes de localização indicando os destinos para teste de sinalizador de recursos. No exemplo mostrado abaixo, ondevice-featureflag é o local definido para a Experiência B. Como opção, você pode adicionar Refinamentos de público-alvo (4) para restringir a qualificação à atividade.

    alt imagem

  4. Na seção CONTENT da mesma página, selecione Criar oferta JSON na lista suspensa (1), conforme mostrado.

    alt imagem

  5. Na caixa de texto Dados JSON exibida, digite suas variáveis de sinalizador de recurso para cada experiência (1), usando um objeto JSON válido (2).

    Insira as variáveis de sinalizador de recurso para a Experiência A.

    alt imagem

    (Exemplo de JSON para a Experiência A acima)

    code language-json line-numbers
    
    {
       "enabled" : true,
       "flag" : "expA"
    }
    

    Insira as variáveis de sinalizador de recurso para a Experiência B.

    alt imagem

    (Amostra de JSON para a Experiência B, acima)

    code language-json line-numbers
    
    {
       "enabled" : true,
       "flag" : "expB"
    }
    
  6. Clique em Avançar (1) para avançar para a etapa Direcionamento da criação da atividade.

    alt imagem

  7. No exemplo da etapa Direcionamento mostrado abaixo, o Direcionamento de público-alvo (2) permanece no conjunto padrão de Todos os visitantes, para simplificar. Isso significa que a atividade não tem direcionamento. No entanto, observe que a Adobe recomenda que você sempre direcione os públicos-alvo para atividades de produção. Clique em Avançar (3) para avançar para a etapa de criação da atividade Metas e Configurações.

    alt imagem

  8. Na etapa Metas e Configurações, defina Source de Relatórios como Adobe Target (1). Defina a Métrica de meta como Conversão, especificando os detalhes com base nas métricas de conversão do site (2). Clique em Salvar e fechar (3) para salvar a atividade.

    alt imagem

​5. Implementar e renderizar o recurso em seu aplicativo

Depois de configurar as variáveis de sinalizador de recursos no Target, modifique o código do aplicativo para usá-las. Por exemplo, depois de obter o sinalizador de recurso no aplicativo, você pode usá-lo para ativar recursos e renderizar a experiência para a qual o visitante se qualificou.

Node.js
code language-js line-numbers
//... Code removed for brevity
​
let featureFlags = {};
​
function targetClientReady() {
   tClient.getAttributes(["ondevice-featureflag"]).then(function(response) {
      const featureFlags = response.asObject("ondevice-featureflag");
      if(featureFlags.enabled && featureFlags.flag !== "expA") { //Assuming "expA" is control
         console.log("Render alternate experience" + featureFlags.flag);
      }
      else {
         console.log("Render default experience");
      }
   });
}
Java (Maven)
code language-javascript line-numbers
MboxRequest mbox = new MboxRequest().name("ondevice-featureflag").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, "ondevice-featureflag");
String flag = attributes.getString("ondevice-featureflag", "flag");
.NET (C#)
code language-csharp line-numbers
var mbox = new MboxRequest(index: 0, name: "ondevice-featureflag");
var deliveryRequest = new TargetDeliveryRequest.Builder()
   .SetContext(new Context(ChannelType.Web))
   .SetExecute(new ExecuteRequest(mboxes: new List<MboxRequest> { mbox }))
   .Build();
var attributes = targetClient.GetAttributes(request, "ondevice-featureflag");
var flag = attributes.GetString("ondevice-featureflag", "flag");
Python
code language-python line-numbers
# ... Code removed for brevity

feature_flags = {}

def target_client_ready():
   attribute_provider = target_client.get_attributes(["ondevice-featureflag"])
   feature_flags = attribute_provider.as_object(mbox_name="ondevice-featureflag")
   if feature_flags.get("enabled") and feature_flags.get("flag") != "expA": # Assuming "expA" is control
      print("Render alternate experience {}".format(feature_flags.get("flag")))
   else:
      print("Render default experience")

​6. Implementar rastreamento adicional para eventos em seu aplicativo

Como opção, você pode enviar eventos adicionais para rastrear conversões usando a função sendNotification().

Node.js
code language-js line-numbers
//... Code removed for brevity
​
//When a conversion happens
TargetClient.sendNotifications({
   targetCookie,
   "request" : {
      "notifications" : [
      {
         type: "display",
         timestamp : Date.now(),
         id: "conversion",
         mbox : {
            name : "orderConfirm"
         },
         order : {
            id: "BR9389",
            total : 98.93,
            purchasedProductIds : ["J9393", "3DJJ3"]
         }
      }
      ]
   }
})
Java (Maven)
code language-javascript line-numbers
Notification notification = new Notification();
notification.setId("conversion");
notification.setImpressionId(UUID.randomUUID().toString());
notification.setType(MetricType.DISPLAY);
notification.setTimestamp(System.currentTimeMillis());
Order order = new Order("BR9389");
order.total(98.93);
order.purchasedProductIds(["J9393", "3DJJ3"]);
notification.setOrder(order);

TargetDeliveryRequest notificationRequest =
   TargetDeliveryRequest.builder()
      .context(new Context().channel(ChannelType.WEB))
      .notifications(Collections.singletonList(notification))
      .build();

NotificationDeliveryService notificationDeliveryService = new NotificationDeliveryService();
notificationDeliveryService.sendNotification(notificationRequest);
.NET (C#)
code language-csharp line-numbers
var order = new Order
{
   Id = "BR9389",
   Total = 98.93M,
   PurchasedProductIds = new List<string> { "J9393", "3DJJ3" },
};
​
var notification = new Notification
{
   Id = "conversion",
   ImpressionId = Guid.NewGuid().ToString(),
   Type = MetricType.Display,
   Timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(),
   Order = order,
};
​
var notificationRequest = new TargetDeliveryRequest.Builder()
   .SetContext(new Context(ChannelType.Web))
   .SetNotifications(new List<Notification> {notification})
   .Build();
​
targetClient.SendNotifications(notificationRequest);
Python
code language-python line-numbers
# ... Code removed for brevity

# When a conversion happens
notification_mbox = NotificationMbox(name="orderConfirm")
order = Order(id="BR9389, total=98.93, purchased_product_ids=["J9393", "3DJJ3"])
notification = Notification(
   id="conversion",
   type=MetricType.DISPLAY,
   timestamp=1621530726000,  # Epoch time in milliseconds
   mbox=notification_mbox,
   order=order
)
notification_request = DeliveryRequest(notifications=[notification])

target_client.send_notifications({
   "target_cookie": target_cookie,
   "request" : notification_request
})

​7. Ativar sua atividade Teste A/B

  1. Clique em Ativar (1) para ativar sua atividade de Teste A/B.

    note
    NOTE
    Você deve ter a função de aprovador ou editor função de usuário para executar esta etapa.

    alt imagem

recommendation-more-help
target-dev-help-dev