Erste Schritte mit Target SDKs

Um loszulegen, empfehlen wir Ihnen, Ihre erste On-Device Decisioning Feature Flag-Aktivität in der Sprache Ihrer Wahl zu erstellen:

  • Node.js
  • Java
  • .NET
  • Python

Zusammenfassung der Schritte

  1. Aktivieren der geräteinternen Entscheidungsfindung für Ihre Organisation
  2. Installieren von SDK
  3. SDK initialisieren
  4. Richten Sie die Feature Flags in einer Adobe TargetA/BTest-Aktivität ein
  5. Implementieren und Rendern der Funktion in der Anwendung
  6. Implementieren des Trackings für Ereignisse in der Anwendung
  7. Aktivieren der A/B-Test-Aktivität

​1. Aktivieren der geräteinternen Entscheidungsfindung für Ihre Organisation

Durch die Aktivierung der geräteinternen Entscheidungsfindung wird sichergestellt, dass eine A/B-Test-Aktivität mit einer Latenz von nahezu null ausgeführt wird. Um diese Funktion zu aktivieren, navigieren Sie zu Administration > Implementierung > Kontodetails und aktivieren Sie den Umschalter On-Device Decisioning.

ALT-Bild

NOTE
Sie müssen über die Admin- oder GenehmigerBenutzerrolle verfügen, um den Umschalter On-Device Decisioning zu aktivieren oder zu deaktivieren.

Nach der Aktivierung Umschalters On-Device Decisioning“ beginnt Adobe Target mit der Erstellung Regelartefakte für Ihren Client.

​2. Installieren von SDK

Führen Sie für Node.js, Java und Python den folgenden Befehl in Ihrem Projektverzeichnis im Terminal aus. Für .NET fügen Sie es als Abhängigkeit hinzu, indem Sie von NuGet installieren.

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. SDK initialisieren

Das Regelartefakt wird während des SDK-Initialisierungsschritts heruntergeladen. Sie können den Initialisierungsschritt anpassen, um zu bestimmen, wie das Artefakt heruntergeladen und verwendet wird.

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. Richten Sie die Feature Flags in einer Adobe TargetA/BTest-Aktivität ein

  1. Navigieren Sie in Target zur Seite Aktivitäten und wählen Sie dann Aktivität erstellen > A/B-Test.

    ALT-Bild

  2. Lassen Sie im Modal A/B-Test-Aktivität erstellen die standardmäßige Web-Option ausgewählt (1), wählen Sie Form als Experience Composer (2) aus, wählen Sie Standard-Workspace mit Keine Eigenschaftsbeschränkungen(3) aus und klicken Sie dann auf Weiter (4).

    ALT-Bild

  3. Geben im Schritt Erlebnisse“ der Aktivitätserstellung einen Namen für Ihre Aktivität ein (1) und fügen Sie ein zweites Erlebnis hinzu, Erlebnis B, indem Sie auf Erlebnis hinzufügen klicken (2). Geben Sie den gewünschten Speicherort ein (3). Beispielsweise sind ondevice-featureflag oder homepage-addtocart-featureflag Ortsnamen, die die Ziele für Feature Flag-Tests angeben. Im folgenden Beispiel ist ondevice-featureflag der für Erlebnis B definierte Speicherort. Optional können Sie Zielgruppenverfeinerungen (4) hinzufügen, um die Qualifizierung auf die Aktivität zu beschränken.

    ALT-Bild

  4. Wählen Sie im CONTENT auf derselben Seite in der Dropdown-(1) die Option JSON-Angebot erstellen“ aus, wie dargestellt.

    ALT-Bild

  5. Geben Sie im angezeigten Textfeld JSON Daten“ Ihre Feature Flag-Variablen für jedes Erlebnis ein (1), wobei Sie ein gültiges JSON-Objekt verwenden (2).

    Geben Sie die Feature Flag-Variablen für Erlebnis A ein.

    ALT-Bild

    (Beispiel-JSON für Erlebnis A, oben)

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

    Geben Sie die Feature Flag-Variablen für Erlebnis B ein.

    ALT-Bild

    (Beispiel-JSON für Erlebnis B, oben)

    code language-json line-numbers
    
    {
       "enabled" : true,
       "flag" : "expB"
    }
    
  6. Klicken Sie Weiter (1), um zum Schritt Targeting der Aktivitätserstellung zu gelangen.

    ALT-Bild

  7. Im unten gezeigten-Beispiel bleibt Zielgruppen-Targeting (2) der Einfachheit halber auf dem Standardsatz „Alle Besucher“. Dies bedeutet, dass die Aktivität nicht zielgerichtet ist. Beachten Sie jedoch, dass Adobe empfiehlt, Ihre Zielgruppen immer für Produktionsaktivitäten anzusprechen. Klicken Sie Weiter (3), um zum Schritt Ziele und Einstellungen der Aktivitätserstellung zu gelangen.

    ALT-Bild

  8. Legen Sie Schritt „Ziele Einstellungen“ Reporting-Source auf Adobe Target (1) fest. Definieren Sie Zielmetrik als Konversion und geben Sie die Details basierend auf den Konversionsmetriken Ihrer Site an (2). Klicken Sie auf Speichern und schließen (3), um die Aktivität zu speichern.

    ALT-Bild

​5. Implementieren und Rendern der Funktion in der Anwendung

Nachdem Sie die Feature Flag-Variablen in Target eingerichtet haben, ändern Sie den Anwendungs-Code, um sie zu verwenden. Nachdem Sie beispielsweise das Feature Flag in der Anwendung erhalten haben, können Sie es verwenden, um Funktionen zu aktivieren und das Erlebnis zu rendern, für das sich der Besucher qualifiziert hat.

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. Implementieren des zusätzlichen Trackings für Ereignisse in der Anwendung

Optional können Sie mit der Funktion sendNotification() zusätzliche Ereignisse zum Tracking von Konversionen senden.

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. Aktivieren der A/B-Test-Aktivität

  1. Klicken Sie Aktivieren (1), um Ihre A/B-Test -Aktivität zu aktivieren.

    note
    NOTE
    Sie müssen über die Genehmiger oder Publisher Benutzerrolle verfügen, um diesen Schritt auszuführen.

    ALT-Bild

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