Edit in GitHubLog an issue

Deliver personalization

Summary of steps#

  1. Enable On-Device Decisioning for your organization
  2. Create an Experience Targeting (XT) activity
  3. Define personalized experience per audience
  4. Verify personalized experience per audience
  5. Set up reporting
  6. Add metrics for tracking KPIs
  7. Implement personalized offers in your application
  8. Implement code to track conversion events
  9. Activate your XT personalization activity

Suppose you are a touring company. You want to deliver a personalized offer of 25% off certain travel packages. In order for the offer to resonate with your users, you decide to show a landmark of the destination city. You also want to ensure that delivery of your personalized offers is executed at near-zero latency so it doesn't negatively impact user experiences and skew the results.

Enable On-Device Decisioning for your organization#

  1. Enabling on-device decisioning ensures an A/B activity is executed at near-zero latency. To enable this feature, navigate to Administration > Implementation > Account details in Adobe Target, and enable the On-Device Decisioning toggle.

    alt image

    NOTE: You must have the Admin or Approver user role to enable or disable the On-Device Decisioning toggle.

    After enabling the On-Device Decisioning toggle, Adobe Target begins generating rule artifacts for your client.

Create an Experience Targeting (XT) activity#

  1. In Adobe Target, navigate to the Activities page, then select Create Activity > Experience Targeting.

    alt image

  1. In the Create Experience Targeting Activity modal, leave the default Web option selected (1), select Form as your experience composer (2), select a workspace and property (3), and click Next (4).

    alt image

Define a personalized experience per audience#

  1. In the Experiences step of activity creation, click Change Audience to create an audience of those visitors who want to travel to San Francisco, California.

    alt image

  2. In the Create Audience modal, define a custom rule where destinationCity = San Francisco. This defines the group of users who want to travel to San Francisco.

    alt image

  3. Still in the Experiences step, enter the name of the location (1) within your application where you want to render a special offer regarding the Golden Gate Bridge, but only for those headed to San Francisco. In the example shown here, homepage is the location selected for the HTML offer (2), which is defined in the Content area.

    alt image

  4. Add another targeting audience by clicking Add Experience Targeting. This time, target an audience that would like to travel to New York by defining an audience rule where destinationCity = New York. Define the location within your application where you want to render a special offer regarding the Empire State Building. In the example shown here, homepage is the location selected for the HTML offer (2), which is defined in the Content area.

    alt image

Verify personalized experience per audience#

In the Targeting step, verify you have configured the desired personalized experience per audience.

alt image

Set up reporting#

In the Goals & Settings step, choose Adobe Target as the Reporting Source to view activity results in the Adobe Target UI, or choose Adobe Analytics to view them in the Adobe Analytics UI.

alt image

Add metrics for tracking KPIs#

Choose a Goal Metric to measure the success of the activity. In this example, a successful conversion is based on whether the user clicks on the personalized destination offer.

Implement your personalized offers in your application#

Node.js

Copied to your clipboard
1const TargetClient = require("@adobe/target-nodejs-sdk");
2
3const CONFIG = {
4 client: "acmeclient",
5 organizationId: "1234567890@AdobeOrg"
6};
7
8const targetClient = TargetClient.create(CONFIG);
9
10targetClient.getOffers({
11 request: {
12 execute: {
13 pageLoad: {
14 parameters: {
15 destinationCity: "San Francisco"
16 }
17 }
18 }
19 }
20})
21.then(console.log)
22.catch(console.error);

Java

Copied to your clipboard
1ClientConfig config = ClientConfig.builder()
2 .client("acmeclient")
3 .organizationId("1234567890@AdobeOrg")
4 .build();
5TargetClient targetClient = TargetClient.create(config);
6
7Context context = new Context().channel(ChannelType.WEB);
8
9ExecuteRequest executeRequest = new ExecuteRequest();
10
11RequestDetails pageLoad = new RequestDetails();
12pageLoad.setParameters(
13 new HashMap<String, String>() {
14 {
15 put("destinationCity", "San Francisco");
16 }
17 });
18
19executeRequest.setPageLoad(pageLoad);
20
21TargetDeliveryRequest request = TargetDeliveryRequest.builder()
22 .context(context)
23 .execute(executeRequest)
24 .build();
25
26TargetDeliveryResponse offers = targetClient.getOffers(request);

Implement code to track conversion events#

Node.js

Copied to your clipboard
1//... Code removed for brevity
2
3//When a conversion happens
4TargetClient.sendNotifications({
5 targetCookie,
6 "request" : {
7 "notifications" : [
8 {
9 type: "click",
10 timestamp : Date.now(),
11 id: "conversion",
12 mbox : {
13 name : "destinationOffer"
14 }
15 }
16 ]
17 }
18})

Java

Copied to your clipboard
1ClientConfig config = ClientConfig.builder()
2 .client("acmeclient")
3 .organizationId("1234567890@AdobeOrg")
4 .build();
5TargetClient targetClient = TargetClient.create(config);
6
7Context context = new Context().channel(ChannelType.WEB);
8
9ExecuteRequest executeRequest = new ExecuteRequest();
10
11RequestDetails pageLoad = new RequestDetails();
12pageLoad.setParameters(
13 new HashMap<String, String>() {
14 {
15 put("destinationCity", "San Francisco");
16 }
17 });
18
19executeRequest.setPageLoad(pageLoad);
20NotificationDeliveryService notificationDeliveryService = new NotificationDeliveryService();
21
22Notification notification = new Notification();
23notification.setId("conversion");
24notification.setImpressionId(UUID.randomUUID().toString());
25notification.setType(MetricType.CLICK);
26notification.setTimestamp(System.currentTimeMillis());
27notification.setTokens(
28 Collections.singletonList(
29 "IbG2Jz2xmHaqX7Ml/YRxRGqipfsIHvVzTQxHolz2IpSCnQ9Y9OaLL2gsdrWQTvE54PwSz67rmXWmSnkXpSSS2Q=="));
30
31TargetDeliveryRequest targetDeliveryRequest =
32 TargetDeliveryRequest.builder()
33 .context(context)
34 .execute(executeRequest)
35 .notifications(Collections.singletonList(notification))
36 .build();
37
38TargetDeliveryResponse offers = targetClient.getOffers(request);
39notificationDeliveryService.sendNotification(request);

Activate your experience targeting (XT) activity#

alt image

Was this helpful?
  • Privacy
  • Terms of Use
  • Do not sell my personal information
  • AdChoices
Copyright © 2022 Adobe. All rights reserved.