Aan de slag met Target SDK’s

Om in gebruik te worden, moedigen wij u aan om uw eerste ​ op-apparatenbesluit ​ activiteit van de eigenschapmarkering in de taal van uw keus tot stand te brengen:

  • Node.js
  • Java
  • .NET
  • Python

Overzicht van de stappen

  1. Beslissing op het apparaat voor uw organisatie inschakelen
  2. De SDK installeren
  3. De SDK initialiseren
  4. De functiemarkeringen instellen in een Adobe Target A/B Test -activiteit
  5. De functie implementeren en renderen in uw toepassing
  6. Bijhouden implementeren voor gebeurtenissen in uw toepassing
  7. Uw A/B Test activiteit activeren

​1. Beslissing op het apparaat voor uw organisatie inschakelen

Als u beslissingen op het apparaat inschakelt, zorgt u ervoor dat een A/B Test -activiteit wordt uitgevoerd met een latentie van bijna nul. Navigeer naar Administration > Implementation > Account details en schakel de On-Device Decisioning -toets in om deze functie in te schakelen.

​ alt beeld ​

NOTE
U moet de Admin of Approver ​ gebruikersrol ​ hebben om On-Device Decisioning knevel toe te laten of onbruikbaar te maken.

Na het toelaten van de On-Device Decisioning knevel, Adobe Target begint producerend ​ regelartefacten ​ voor uw cliënt.

​2. De SDK installeren

Voor Node.js, Java, en Python, stel het volgende bevel in uw projectfolder in de terminal in werking. Voor .NET, voeg het als gebiedsdeel toe door ​ te installeren van NuGet ​.

Node.js (NPM)
code language-js line-numbers
npm i @adobe/target-nodejs-sdk -P
Java (Gemaakt)
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. De SDK initialiseren

Het regelartefact wordt gedownload tijdens de SDK-initialisatiestap. U kunt de initialisatiestap aanpassen om te bepalen hoe het artefact wordt gedownload en gebruikt.

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 (Gemaakt)
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. De functiemarkeringen instellen in een Adobe Target A/B Test -activiteit

  1. Navigeer in Target naar de Activities -pagina en selecteer vervolgens Create Activity > A/B test .

    ​ alt beeld ​

  2. Laat in het modaal Create A/B Test Activity de standaardoptie Web geselecteerd (1), selecteer Form als uw ervaringscomposer (2), selecteer Default Workspace met No Property Restrictions (3) en klik vervolgens op Next (4).

    ​ alt beeld ​

  3. Geef in de Experiences -stap voor het maken van activiteiten een naam voor uw activiteit (1) en voeg een tweede ervaring, Experience B, toe door op Add Experience (2) te klikken. Voer de locatienaam van uw keuze in (3). ondevice-featureflag of homepage-addtocart-featureflag zijn bijvoorbeeld locatienamen die de doelen voor het testen van functiemarkeringen aangeven. In het onderstaande voorbeeld is ondevice-featureflag de locatie die is gedefinieerd voor Experience B. U kunt ook Audience Refinements (4) toevoegen om de kwalificatie te beperken tot de activiteit.

    ​ alt beeld ​

  4. Selecteer in de sectie CONTENT op dezelfde pagina de optie Create JSON Offer in de vervolgkeuzelijst (1), zoals weergegeven.

    ​ alt beeld ​

  5. Typ in het tekstvak JSON Data dat wordt weergegeven, voor elke ervaring (1) de kenmerkmarkeringsvariabelen met een geldig JSON-object (2).

    Voer de kenmerkmarkeringsvariabelen voor Experience A in.

    ​ alt beeld ​

    (Voorbeeld van JSON voor Experience A, hierboven)

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

    Voer de variabelen voor de functiemarkering in voor Experience B.

    ​ alt beeld ​

    (Voorbeeld van JSON voor Experience B, hierboven)

    code language-json line-numbers
    
    {
       "enabled" : true,
       "flag" : "expB"
    }
    
  6. Klik op Next (1) om door te gaan naar de stap Targeting voor het maken van activiteiten.

    ​ alt beeld ​

  7. In het onderstaande Targeting -stapvoorbeeld blijft Publiek gericht (2) op de standaardset met Alle bezoekers, voor de eenvoud. Dit betekent dat de activiteit niet gericht is. Opmerking: Adobe raadt u echter aan uw publiek altijd te richten op productieactiviteiten. Klik op Next (3) om door te gaan naar de stap Goals & Settings voor het maken van activiteiten.

    ​ alt beeld ​

  8. Stel in de stap Goals & Settings de waarde Reporting Source in op Adobe Target (1). Definieer Goal Metric als Conversion en geef de details op op basis van de conversiemetriek van uw site (2). Klik op Save & Close (3) om de activiteit op te slaan.

    ​ alt beeld ​

​5. De functie implementeren en renderen in uw toepassing

Nadat u de variabelen voor de functiemarkering in Target hebt ingesteld, wijzigt u de toepassingscode om deze te gebruiken. Nadat u bijvoorbeeld de functiemarkering in de toepassing hebt opgehaald, kunt u deze gebruiken om functies in te schakelen en de ervaring weer te geven waarvoor de bezoeker gekwalificeerd was.

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 (Gemaakt)
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. Extra tracering implementeren voor gebeurtenissen in uw toepassing

U kunt desgewenst aanvullende gebeurtenissen voor het bijhouden van conversies verzenden met de functie 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 (Gemaakt)
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. Uw A/B Test activiteit activeren

  1. Klik op Activate (1) om de A/B Test -activiteit te activeren.

    note
    NOTE
    U moet de Approver of Publisher ​ gebruikersrol ​ hebben om deze stap uit te voeren.

    ​ alt beeld ​

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