Komma igång med Target SDK

Senaste uppdatering: 2023-07-27
  • Skapat för:
  • Developer

För att komma igång rekommenderar vi att du skapar din första beslut på enheten aktivitetsflaggan på det språk du väljer:

  • Node.js
  • Java
  • .NET
  • Python

Sammanfattning av steg

  1. Aktivera beslut på enheten för din organisation
  2. Installera SDK
  3. Initiera SDK
  4. Konfigurera funktionsflaggor i en Adobe Target A/B Test aktivitet
  5. Implementera och återge funktionen i ditt program
  6. Implementera spårning för händelser i ditt program
  7. Aktivera A/B Test aktivitet

1. Aktivera beslut på enheten för din organisation

Genom att aktivera beslut på enheten säkerställs att A/B Test -aktiviteten utförs vid latens nära noll. Om du vill aktivera den här funktionen går du till Administration > Implementation > Account details och aktivera On-Device Decisioning växla.

alt-bild

OBSERVERA

Du måste ha Admin eller Approver användarroll för att aktivera eller inaktivera On-Device Decisioning växla.

När du har aktiverat On-Device Decisioning växla, Adobe Target börjar generera regelartefakter för kunden.

2. Installera SDK

För Node.js, Java och Python kör du följande kommando i din projektkatalog i terminalen. För .NET lägger du till det som ett beroende av installera från 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. Initiera SDK

Regelartefakten hämtas under SDK-initieringssteget. Du kan anpassa initieringssteget för att avgöra hur artefakten hämtas och används.

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. Konfigurera funktionsflaggorna i en Adobe Target A/B Test aktivitet

  1. I Target, navigera till Activities sida och sedan välja Create Activity > A/B test.

    alt-bild

  2. I Create A/B Test Activity modal, lämna standardalternativet för webben markerat (1), välj Form som upplevelsedisposition (2) väljer du Default Workspace med No Property Restrictions(3) och sedan klicka på Next (4)

    alt-bild

  3. I Experiences skapa aktivitet, ange ett namn för aktiviteten (1) och lägg till ytterligare en upplevelse, Experience B, genom att klicka på Add Experience (2) Ange platsnamnet (3). Till exempel: ondevice-featureflag eller homepage-addtocart-featureflag är platsnamn som anger mål för funktionsflaggstestning. I exemplet nedan ondevice-featureflag är den plats som definieras för Experience B. Om du vill kan du lägga till Audience Refinements (4) för att begränsa behörigheten för aktiviteten.

    alt-bild

  4. I CONTENT på samma sida väljer Create JSON Offer i listrutan (1) enligt bilden.

    alt-bild

  5. I JSON Data textruta som visas anger du variabler för funktionsflaggan för varje upplevelse (1) med ett giltigt JSON-objekt (2).

    Ange funktionens flaggvariabler för Experience A.

    alt-bild

    (Exempel på JSON för upplevelse A ovan)

       {
       "enabled" : true,
       "flag" : "expA"
    }
    

    Ange funktionens flaggvariabler för Experience B.

    alt-bild

    (Exempel-JSON för upplevelse B ovan)

       {
       "enabled" : true,
       "flag" : "expB"
    }
    
  6. Klicka Next (1) att gå vidare till Targeting steg för att skapa aktiviteter.

    alt-bild

  7. I Targeting som visas nedan är målgruppsanpassning (2) fortfarande standardinställningen för alla besökare, vilket förenklar arbetet. Det innebär att aktiviteten inte är målinriktad. Observera dock att Adobe alltid rekommenderar att ni riktar in er på era målgrupper för produktionsaktiviteter. Klicka Next (3) att gå vidare till Goals & Settings steg för att skapa aktiviteter.

    alt-bild

  8. I Goals & Settings steg, ange Reporting Source till Adobe Target (1) Definiera Goal Metric as Conversion, och specificera detaljerna baserat på webbplatsens konverteringsmått (2). Klicka Save & Close (3) för att spara aktiviteten.

    alt-bild

5. Implementera och återge funktionen i ditt program

När du har konfigurerat variablerna för funktionsflagga i Target, ändra programkoden så att den används. När du har hämtat funktionsflaggan i programmet kan du till exempel använda den för att aktivera funktioner och återge den upplevelse som besökaren är kvalificerad för.

//... 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. Implementera ytterligare spårning för händelser i programmet

Du kan också skicka ytterligare händelser för att spåra konverteringar med funktionen 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. Aktivera A/B Test aktivitet

  1. Klicka Activate (1) aktivera A/B Test aktivitet.

    OBSERVERA

    Du måste ha Approver eller Publisher användarroll för att utföra det här steget.

    alt-bild

På denna sida