Introdução aos Target SDKs
- 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
- Ativar a decisão no dispositivo para sua organização
- Instalar o SDK
- Inicializar o SDK
- Configurar os sinalizadores de recursos em uma atividade Adobe Target A/B Test
- Implementar e renderizar o recurso em seu aplicativo
- Implementar o rastreamento de eventos no aplicativo
- 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.
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.
npm i @adobe/target-nodejs-sdk -P
<dependency>
<groupId>com.adobe.target</groupId>
<artifactId>java-sdk</artifactId>
<version>2.0</version>
</dependency>
dotnet add package Adobe.Target.Client
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.
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.
}
ClientConfig config = ClientConfig.builder()
.client("testClient")
.organizationId("ABCDEF012345677890ABCDEF0@AdobeOrg")
.build();
TargetClient targetClient = TargetClient.create(config);
var targetClientConfig = new TargetClientConfig.Builder("testClient", "ABCDEF012345677890ABCDEF0@AdobeOrg")
.Build();
this.targetClient.Initialize(targetClientConfig);
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
-
Em Target, navegue até a página Activities e selecione Create Activity > A/B test.
-
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).
-
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
ouhomepage-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. -
Na seção CONTENT na mesma página, selecione Create JSON Offer no menu suspenso (1), conforme mostrado.
-
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.
(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.
(Amostra de JSON para a Experiência B, acima)
{ "enabled" : true, "flag" : "expB" }
-
Clique em Next (1) para avançar para a etapa Targeting da criação da atividade.
-
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.
-
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.
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.
//... 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");
}
});
}
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");
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");
# ... 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().
//... 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"]
}
}
]
}
})
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);
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);
# ... 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
-
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.