Prise en main des Target SDK

Pour être opérationnel, nous vous encourageons à créer votre première activité d’indicateur de fonctionnalité prise de décision sur l’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 activité Adobe Target A/B Test
  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. Activation de votre activité A/B Test

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 qu’une activité A/B Test est exécutée à une latence proche de zéro. Pour activer cette fonction, accédez à Administration > Implementation > Account details et activez le bouton d’activation/désactivation On-Device Decisioning.

alt image

NOTE
Vous devez disposer du Admin ou du Approver rôle utilisateur pour activer ou désactiver le bouton d’activation/désactivation de On-Device Decisioning.

Après avoir activé le bouton d’activation On-Device Decisioning, Adobe Target commence à générer des 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 en installant à 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 activité Adobe Target A/B Test

  1. Dans Target, accédez à la page Activities, puis sélectionnez Create Activity > A/B test.

    alt image

  2. Dans le modal Create A/B Test Activity, laissez l’option Web par défaut sélectionnée (1), sélectionnez Form comme compositeur d’expérience (2), sélectionnez Default Workspace avec No Property Restrictions(3), puis cliquez sur Next (4).

    alt image

  3. À l’étape Experiences de la création de l’activité, donnez un nom à votre activité (1) et ajoutez une seconde expérience, l’expérience B, en cliquant sur Add Experience (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é.

    alt image

  4. Dans la section CONTENT de la même page, sélectionnez Create JSON Offer dans la liste déroulante (1) comme indiqué.

    alt image

  5. Dans la zone de texte JSON Data qui s’affiche, saisissez vos 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.

    alt image

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

    alt image

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

    code language-json line-numbers
       {
       "enabled" : true,
       "flag" : "expB"
    }
    
  6. Cliquez sur Next (1) pour passer à l’étape Targeting de la création de l’activité.

    alt image

  7. Dans l’exemple d’étape Targeting 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 Next (3) pour passer à l’étape Goals & Settings de la création de l’activité.

    alt image

  8. À l’étape Goals & Settings, définissez Reporting Source sur Adobe Target (1). Définissez le Goal Metric comme Conversion, en spécifiant les détails en fonction des mesures de conversion de votre site (2). Cliquez sur Save & Close (3) pour enregistrer l’activité.

    alt image

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 activité A/B Test

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

    note note
    NOTE
    Pour effectuer cette étape, vous devez disposer du Approver ou du Publisher rôle utilisateur.

    alt image

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