Prise en main de Target SDK

Pour être opérationnel, nous vous encourageons à créer votre première prise de décision sur appareil dans la langue de votre choix :

  • Node.js
  • Java
  • .NET
  • Python

Résumé des étapes

  1. Activation de la prise de décision sur les appareils pour votre entreprise
  2. Installation du SDK
  3. Initialisation du SDK
  4. Configuration des indicateurs de fonctionnalité dans une Adobe Target Test A/B activité
  5. Mise en oeuvre et rendu de la fonctionnalité dans votre application
  6. Mise en oeuvre du suivi des événements dans votre application
  7. Activez votre Test A/B activité

1. Activez la prise de décision sur l’appareil pour votre organisation.

L’activation de la prise de décision sur l’appareil garantit une Test A/B est exécutée à une latence proche de zéro. Pour activer cette fonction, accédez à Administration > Implémentation > Détails du compte et activez la variable Prise de décision sur appareil bascule.

image alternative

NOTE
Vous devez disposer de la variable Administration ou Approbateur rôle utilisateur pour activer ou désactiver la fonction Prise de décision sur appareil bascule.

Après avoir activé la variable Prise de décision sur appareil basculer, Adobe Target commence à générer artefacts de règle pour votre client.

2. Installation du SDK

Pour Node.js, Java et Python, exécutez la commande suivante dans le répertoire de votre projet dans le terminal. Pour .NET, ajoutez-le en tant que dépendance par installation à partir de 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. Initialisation du SDK

L’artefact de règle est téléchargé lors de l’étape d’initialisation du SDK. Vous pouvez personnaliser l’étape d’initialisation pour déterminer comment l’artefact est téléchargé et utilisé.

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. Configurez les indicateurs de fonctionnalité dans une Adobe Target Test A/B activité

  1. Dans Target, accédez à la Activités page, puis sélectionnez Créer une activité > Test A/B.

    image alternative

  2. Dans le Créer une activité de test A/B modale, laissez l’option Web par défaut sélectionnée (1), sélectionnez Formulaire en tant que compositeur d’expérience (2), sélectionnez Espace de travail par défaut avec Aucune restriction de propriété(3), puis cliquez sur Suivant (4).

    image alternative

  3. Dans le Expériences étape de création d’une activité, attribuez un nom à votre activité (1) et ajoutez une deuxième expérience, l’expérience B, en cliquant sur Ajouter une expérience (2). Saisissez le nom de l’emplacement de votre choix (3). Par exemple : ondevice-featureflag ou homepage-addtocart-featureflag sont des noms d’emplacement indiquant les destinations pour les tests d’indicateur de fonctionnalité. Dans l’exemple ci-dessous, ondevice-featureflag est l’emplacement défini pour l’expérience B. Vous pouvez éventuellement ajouter des perfectionnements d’audience (4) pour limiter la qualification à l’activité.

    image alternative

  4. Dans le CONTENU , sélectionnez Création d’une offre JSON dans la liste déroulante (1), comme indiqué.

    image alternative

  5. Dans le Données JSON zone de texte qui s’affiche, saisissez les variables d’indicateur de fonctionnalité pour chaque expérience (1) à l’aide d’un objet JSON valide (2).

    Saisissez les variables d’indicateur de fonctionnalité pour l’expérience A.

    image alternative

    (Exemple de fichier JSON pour l’expérience A, ci-dessus)

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

    Saisissez les variables d’indicateur de fonctionnalité pour l’expérience B.

    image alternative

    (Exemple JSON pour l’expérience B, ci-dessus)

    code language-json line-numbers
       {
       "enabled" : true,
       "flag" : "expB"
    }
    
  6. Cliquez sur Suivant (1) pour accéder à la variable Ciblage de la création de l’activité.

    image alternative

  7. Dans le Ciblage exemple d’étape illustré ci-dessous, le ciblage d’audience (2) reste sur l’ensemble par défaut de Tous les visiteurs, pour plus de simplicité. Cela signifie que l’activité n’est pas ciblée. Notez toutefois que l’Adobe vous recommande de toujours cibler vos audiences pour les activités de production. Cliquez sur Suivant (3) pour accéder à la variable Objectifs et paramètres de la création de l’activité.

    image alternative

  8. Dans le Objectifs et paramètres étape, définir Source de création de rapports to Adobe Target (1). Définissez la variable Mesure de l’objectif as Conversion, en spécifiant les détails en fonction des mesures de conversion de votre site (2). Cliquez sur Enregistrer et fermer (3) pour enregistrer l’activité.

    image alternative

5. Implémentez et effectuez le rendu de la fonctionnalité dans votre application.

Après avoir configuré les variables d’indicateur de fonctionnalité dans Target, modifiez le code de votre application pour les utiliser. Par exemple, après avoir obtenu l’indicateur de fonctionnalité dans l’application, vous pouvez l’utiliser pour activer les fonctionnalités et générer le rendu de l’expérience pour laquelle le visiteur a rempli les critères.

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. Implémentation du suivi supplémentaire pour les événements dans votre application

Vous pouvez éventuellement envoyer des événements supplémentaires pour le suivi des conversions à l’aide de la fonction 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. Activez votre Test A/B activité

  1. Cliquez sur Activer (1) pour activer votre Test A/B activité.

    note note
    NOTE
    Vous devez disposer de la variable Approbateur ou Éditeur rôle utilisateur pour effectuer cette étape.

    image alternative

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