Erste Schritte mit Target SDKs

Um die Arbeit zu starten, empfehlen wir, die erste Feature Flag-Aktivität on-device decisioning in der Sprache Ihrer Wahl zu erstellen:

  • Node.js
  • Java
  • .NET
  • Python

Zusammenfassung der Schritte

  1. Aktivieren der geräteübergreifenden Entscheidungsfindung für Ihre Organisation
  2. SDK installieren
  3. Initialisieren des SDK
  4. Einrichten der Funktionsmarkierungen in einer Adobe Target A/B Test -Aktivität
  5. Funktion in Ihre Anwendung implementieren und rendern
  6. Implementieren des Trackings für Ereignisse in Ihrer Anwendung
  7. Aktivieren Ihrer A/B Test -Aktivität

1. Aktivieren Sie die Entscheidungsfindung auf dem Gerät für Ihre Organisation

Durch die Aktivierung der Entscheidungsfindung auf dem Gerät wird sichergestellt, dass eine A/B Test -Aktivität mit nahezu Nulllatenz ausgeführt wird. Um diese Funktion zu aktivieren, navigieren Sie zu Administration > Implementation > Account details und aktivieren Sie den Umschalter On-Device Decisioning .

alt image

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

Nachdem Sie den Umschalter On-Device Decisioning aktiviert haben, beginnt Adobe Target mit der Generierung von Regel-Artefakten für Ihren Client.

2. Installieren des SDK

Führen Sie für Node.js, Java und Python den folgenden Befehl in Ihrem Projektverzeichnis im Terminal aus. Fügen Sie .NET als Abhängigkeit von aus 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. Initialisieren des SDK

Das Regelartefakt wird während des Initialisierungsschritts des SDK 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. Einrichten der Funktionsmarkierungen in einer Adobe Target A/B Test -Aktivität

  1. Navigieren Sie in Target zur Seite Activities und wählen Sie dann Create Activity > A/B test aus.

    alt image

  2. Lassen Sie im Modal Create A/B Test Activity die standardmäßige Web-Option ausgewählt (1), wählen Sie Form als Ihren Experience Composer (2), wählen Sie Default Workspace mit No Property Restrictions(3) und klicken Sie dann auf Next (4).

    alt image

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

    alt image

  4. Wählen Sie im Abschnitt CONTENT auf derselben Seite Create JSON Offer in der Dropdown-Liste (1) aus, wie unten dargestellt.

    alt image

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

    Geben Sie die Variablen für die Funktionskennzeichnung für Erlebnis A ein.

    alt image

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

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

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

    alt image

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

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

    alt image

  7. Im unten gezeigten Beispiel Targeting-Schrittbeispiel bleibt Zielgruppen-Targeting (2) aus Gründen der Einfachheit im Standardsatz Alle Besucher enthalten. Dies bedeutet, dass die Aktivität nicht zielgerichtet ist. Beachten Sie jedoch die Adobe, dass Sie immer Ihre Zielgruppen für Produktionsaktivitäten auswählen. Klicken Sie auf Next (3) , um zum Schritt Goals & Settings der Aktivitätserstellung zu gelangen.

    alt image

  8. Setzen Sie im Schritt Goals & Settings Reporting Source auf Adobe Target (1). Definieren Sie den Goal Metric als Conversion und geben Sie die Details basierend auf den Konversionsmetriken Ihrer Site an (2). Klicken Sie auf Save & Close (3) , um die Aktivität zu speichern.

    alt image

5. Implementieren und Rendern der Funktion in Ihrer Anwendung

Nachdem Sie die Variablen für die Feature Flag in Target eingerichtet haben, ändern Sie Ihren Anwendungscode so, dass er sie verwendet. Nachdem Sie beispielsweise das Feature Flag in der Anwendung erhalten haben, können Sie damit Funktionen aktivieren und das Erlebnis 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 Sie zusätzliches Tracking für Ereignisse in Ihrer Anwendung

Optional können Sie mithilfe der Funktion sendNotification() zusätzliche Ereignisse zum Verfolgen 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 Sie Ihre A/B Test -Aktivität

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

    note note
    NOTE
    Sie müssen über die Benutzerrolle Approver oder Publisher 3} verfügen, um diesen Schritt durchzuführen.

    alt image

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