Aan de slag met Target SDK's

We raden u aan om uw eerste Apparaatbeslissingen de activiteit van de eigenschapmarkering in de taal van uw keus:

  • 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. Activeer uw A/B Test activiteit

1. Schakel apparaatbeslissingen in voor uw organisatie

Het toelaten van op apparaat beslist verzekert en A/B Test activiteit wordt uitgevoerd bij bijna-nul latentie. Als u deze functie wilt inschakelen, navigeert u naar Administration > Implementation > Account details en de On-Device Decisioning schakelen.

alternatieve afbeelding

NOTE
U moet beschikken over Admin of Approver gebruikersrol om de On-Device Decisioning schakelen.

Nadat u het dialoogvenster On-Device Decisioning schakelen, Adobe Target Beginnen met genereren regelartefacten voor uw client.

2. Installeer de SDK

Voor Node.js, Java, en Python, stel het volgende bevel in uw projectfolder in de terminal in werking. Voor .NET, voeg het als gebiedsdeel door toe installeren vanaf 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. Initialiseer de SDK

Het regelartefact wordt gedownload tijdens de de initialiseringsstap van SDK. 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 (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. Stel de functiemarkeringen in een Adobe Target A/B Test activiteit

  1. In Target, navigeert u naar de Activities pagina, selecteert u vervolgens Create Activity > A/B test.

    alternatieve afbeelding

  2. In de Create A/B Test Activity modaal, verlaat de standaardoptie van het Web geselecteerd (1), selecteer Form als uw ervaringscomposer (2), selecteert u Default Workspace with No Property Restrictions(3) en klikt u vervolgens op Next (4)

    alternatieve afbeelding

  3. In de Experiences stap voor het maken van activiteiten, geef een naam voor uw activiteit (1) en voeg een tweede ervaring toe, Experience B, door op Add Experience (2) Voer de locatienaam van uw keuze in (3). Bijvoorbeeld: ondevice-featureflag of homepage-addtocart-featureflag zijn plaatsnamen die op de bestemmingen voor het testen van de eigenschapvlag wijzen. In het onderstaande voorbeeld: ondevice-featureflag Dit is de locatie die is gedefinieerd voor Ervaring B. U kunt ook Verfijningen van publiek toevoegen (4) om de kwalificatie te beperken tot de activiteit.

    alternatieve afbeelding

  4. In de CONTENT op dezelfde pagina selecteert u Create JSON Offer in de vervolgkeuzelijst (1), zoals weergegeven.

    alternatieve afbeelding

  5. In de JSON Data in het tekstvak dat wordt weergegeven, typt u de variabelen voor de functiemarkering voor elke ervaring (1) met een geldig JSON-object (2).

    Voer de kenmerkmarkeringsvariabelen voor Experience A in.

    alternatieve afbeelding

    (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.

    alternatieve afbeelding

    (Voorbeeld van JSON voor Experience B, hierboven)

    code language-json line-numbers
       {
       "enabled" : true,
       "flag" : "expB"
    }
    
  6. Klikken Next (1) aan de Targeting stap van het creëren van activiteit.

    alternatieve afbeelding

  7. In de Targeting In het volgende stapvoorbeeld blijft Audience Targeting (2) voor de eenvoud de standaardset met Alle bezoekers. Dit betekent dat de activiteit niet gericht is. Nota Adobe adviseert u altijd uw publiek voor productieactiviteiten richten. Klikken Next (3) aan de Goals & Settings stap van het creëren van activiteit.

    alternatieve afbeelding

  8. In de Goals & Settings stap, instellen Reporting Source tot Adobe Target (1) Definieer de Goal Metric als Conversion, waarbij u de details opgeeft op basis van de omzettingscijfers van uw site (2). Klikken Save & Close (3) om de activiteit op te slaan.

    alternatieve afbeelding

5. Implementeer en rendeer de functie in uw toepassing

Na het instellen van de kenmerkmarkeringsvariabelen in Targetwijzigt 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 (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. 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 (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. Activeer uw A/B Test activiteit

  1. Klikken Activate (1) om uw A/B Test activiteit.

    note note
    NOTE
    U moet beschikken over Approver of Publisher gebruikersrol om deze stap uit te voeren.

    alternatieve afbeelding

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