DocumentaçãoTargetGuia do desenvolvedor do Target

Introdução aos Target SDKs

Última atualização: 5 de maio de 2025
  • Tópicos:
  • APIs/SDKs

Criado para:

  • Desenvolvedor

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 Adobe Target A/B Test
  5. Implementar e renderizar o recurso em seu aplicativo
  6. Implementar o rastreamento de eventos no aplicativo
  7. Ativar a atividade A/B Test

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

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

alt imagem

OBSERVAÇÃO
Você deve ter a Admin ou Approver função de usuário para habilitar ou desabilitar a alternância 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. 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)
npm i @adobe/target-nodejs-sdk -P
Java (Maven)
<dependency>
   <groupId>com.adobe.target</groupId>
   <artifactId>java-sdk</artifactId>
   <version>2.0</version>
</dependency>
.NET (Bash)
dotnet add package Adobe.Target.Client
Python (pip)
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
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)
ClientConfig config = ClientConfig.builder()
   .client("testClient")
   .organizationId("ABCDEF012345677890ABCDEF0@AdobeOrg")
   .build();
TargetClient targetClient = TargetClient.create(config);
.NET (C#)
var targetClientConfig = new TargetClientConfig.Builder("testClient", "ABCDEF012345677890ABCDEF0@AdobeOrg")
   .Build();
this.targetClient.Initialize(targetClientConfig);
Python
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. Configure os sinalizadores de recursos em uma atividade Adobe Target A/B Test

  1. Em 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 da 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. 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 em Add Experience (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 na mesma página, selecione Create JSON Offer no menu suspenso (1), conforme mostrado.

    alt imagem

  5. Na caixa de texto JSON Data 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)

       {
       "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)

       {
       "enabled" : true,
       "flag" : "expB"
    }
    
  6. Clique em Next (1) para avançar para a etapa Targeting da criação da atividade.

    alt imagem

  7. No exemplo de etapa Targeting mostrado abaixo, o Direcionamento de público-alvo (2) permanece no conjunto padrão 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 Next (3) para avançar para a etapa Goals & Settings da criação da atividade.

    alt imagem

  8. Na etapa Goals & Settings, defina Reporting Source como Adobe Target (1). Defina o Goal Metric como Conversion, especificando os detalhes com base nas métricas de conversão do site (2). Clique em Save & Close (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 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)
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#)
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 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 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)
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#)
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 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. Ative sua atividade A/B Test

  1. Clique em Activate (1) para ativar sua atividade A/B Test.

    NOTE
    Você deve ter Approver ou Publisher função de usuário para executar esta etapa.

    alt imagem

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