Personnalisation via Offer Decisioning

Dernière mise à jour : 2023-11-01
  • Créé pour :
  • Developer
    User
    Admin
    Leader

Vue d’ensemble

L’API du serveur réseau Edge peut fournir des expériences personnalisées gérées dans Offer decisioning au canal web.

Offer Decisioning prend en charge une interface non visuelle pour créer, activer et diffuser vos activités et expériences de personnalisation.

Conditions préalables

Personnalisation via Offer Decisioning requiert que vous ayez accès à Adobe Journey Optimizer avant de configurer votre intégration.

Configuration de votre flux de données

Avant de pouvoir utiliser l’API serveur conjointement avec Offer Decisioning, vous devez activer la personnalisation Adobe Experience Platform sur votre configuration de flux de données et activer la variable Offer decisioning .

Voir guide sur l’ajout de services à un flux de données, pour obtenir des informations détaillées sur l’activation d’Offer Decisioning.

Image de l’interface utilisateur affichant l’écran de configuration du service de flux de données, avec Offer decisioning sélectionné

Création d’une audience

Offer Decisioning repose sur le service de segmentation Adobe Experience Platform pour la création d’audiences. Vous trouverez la documentation relative au Segmentation Service here.

Définition des portées de décision

La variable Offer Decision Engine utilise les données Adobe Experience Platform et Profils client en temps réel, ainsi que la variable Offer Library, afin de diffuser des offres aux bons clients et canaux au bon moment.

Pour en savoir plus sur la variable Offer Decisioning Engine, voir la section dédiée documentation.

Après configuration de votre flux de données, vous devez définir les portées de décision à utiliser dans votre campagne de personnalisation.

Portées de décision sont les chaînes JSON codées en Base64 contenant les identifiants d’activité et d’emplacement que vous souhaitez voir Offer Decisioning Service à utiliser lors de la proposition d’offres.

JSON d’étendue de décision

{
   "activityId":"xcore:offer-activity:11cfb1fa93381aca",
   "placementId":"xcore:offer-placement:1175009612b0100c"
}

Chaîne codée en Base64 du périmètre de décision

"eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTFjZmIxZmE5MzM4MWFjYSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExNzUwMDk2MTJiMDEwMGMifQ=="

Après avoir créé vos offres et collections, vous devez définir une portée de la décision.

Copiez la portée de décision codée en Base64. Vous l’utiliserez dans la variable query de la requête de l’API du serveur.

Image de l’interface utilisateur affichant l’interface utilisateur de l’Offer decisioning, mettant en évidence la portée de la décision.

"query":{
   "personalization":{
      "decisionScopes":[
         "eyJ4ZG06YWN0aXZpdHlJZCI6Inhjb3JlOm9mZmVyLWFjdGl2aXR5OjE0ZWZjYTg5NDE4OTUxODEiLCJ4ZG06cGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTJkNTQ0YWU1NGU3ZTdkYiJ9"
      ]
   }
}

Exemple d’appel API

Format d’API

POST /ee/v2/interact

Requête

Vous trouverez ci-dessous une requête complète comprenant un objet XDM, un objet de données et une requête d’Offer decisioning.

REMARQUE

La variable xdm et data sont facultatifs et ne sont nécessaires à l’Offer decisioning que si vous avez créé des segments avec des conditions qui utilisent des champs dans l’un de ces objets.

curl -X POST 'https://server.adobedc.net/ee/v2/interact?dataStreamId={DATASTREAM_ID}' \
--header 'x-api-key: {API_KEY}' \
--header 'x-gw-ims-org: {ORG_ID}' \
--header 'Authorization: Bearer {TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "event": {
        "xdm": {
            "eventType": "web.webpagedetails.pageViews",
            "identityMap": {
                "ECID": [
                    {
                        "id": "05907638112924484241029082405297151763",
                        "authenticatedState": "ambiguous",
                        "primary": true
                    }
                ]
            },
            "web": {
                "webPageDetails": {
                    "URL": "https://alloystore.dev",
                    "name": "Home Page"
                },
                "webReferrer": {
                    "URL": ""
                }
            },
            "device": {
                "screenHeight": 1440,
                "screenWidth": 3440,
                "screenOrientation": "landscape"
            },
            "environment": {
                "type": "browser",
                "browserDetails": {
                    "viewportWidth": 3440,
                    "viewportHeight": 1440
                }
            },
            "placeContext": {
                "localTime": "2022-03-22T22:45:21.193-06:00",
                "localTimezoneOffset": 360
            },
            "timestamp": "2022-03-23T04:45:21.193Z",
            "implementationDetails": {
                "name": "https://ns.adobe.com/experience/alloy/reactor",
                "version": "1.0",
                "environment": "serverapi"
            }
        },
        "data": {
            "page": {
                "pageInfo": {
                    "pageName": "Promotions",
                    "siteSection": "Home"
                },
                "promos": {
                    "heroPromos": "purse,shoes,sunglasses"
                },
                "customVariables": {
                    "testGroup": "orange/black theme"
                },
                "events": {
                    "homePage": true
                },
                "products": [
                    {
                        "productSKU": "abc123",
                        "productName": "shirt"
                    }
                ]
            },
            "__adobe.target": {
                "profile.eyeColor": "brown",
                "profile.hairColor": "brown"
            }
        }
    },
    "query": {
        "personalization": {
            "decisionScopes": [
                "eyJ4ZG06YWN0aXZpdHlJZCI6Inhjb3JlOm9mZmVyLWFjdGl2aXR5OjE0ZWZjYTg5NDE4OTUxODEiLCJ4ZG06cGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTJkNTQ0YWU1NGU3ZTdkYiJ9"
            ]
        }
    }
}'

Réponse

Le réseau Edge renvoie une réponse similaire à celle ci-dessous.

{
   "requestId":"b375077d-7e1d-4c18-b7d3-e4da0fb4fbc5",
   "handle":[
      {
         "payload":[

         ],
         "type":"personalization:decisions",
         "eventIndex":0
      },
      {
         "payload":[
            {
               "id":"120d5db7-181c-42c5-8653-88b3cd3e1e69",
               "scope":"eyJ4ZG06YWN0aXZpdHlJZCI6Inhjb3JlOm9mZmVyLWFjdGl2aXR5OjE0ZWZjYTg5NDE4OTUxODEiLCJ4ZG06cGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTJkNTQ0YWU1NGU3ZTdkYiJ9",
               "activity":{
                  "id":"xcore:offer-activity:14efca8941895181",
                  "etag":"1"
               },
               "placement":{
                  "id":"xcore:offer-placement:12d544ae54e7e7db",
                  "etag":"1"
               },
               "items":[
                  {
                     "id":"xcore:personalized-offer:14efc848a3577d92",
                     "etag":"2",
                     "schema":"https://ns.adobe.com/experience/offer-management/content-component-json",
                     "data":{
                        "id":"xcore:personalized-offer:14efc848a3577d92",
                        "format":"application/json",
                        "language":[
                           "en-us"
                        ],
                        "content":"{\n\t\"ODEFirstTest\" : \"Personalizaton Content\"\n}",
                        "characteristics":{
                           "reporting":"testRequest"
                        }
                     }
                  }
               ]
            }
         ],
         "type":"personalization:decisions",
         "eventIndex":0
      },
      {
         "payload":[
            {
               "key":"kndctr_53A16ACB5CC1D3760A495C99_AdobeOrg_identity",
               "value":"CiYwNTkwNzYzODExMjkyNDQ4NDI0MTAyOTA4MjQwNTI5NzE1MTc2M1IOCLr6xb39LxgBKgNPUjLwAbr6xb39Lw==",
               "maxAge":34128000
            }
         ],
         "type":"state:store"
      }
   ]
}

Si le visiteur est admissible pour une activité de personnalisation en fonction des données envoyées à Offer Decisioning, le contenu de l’activité concernée se trouve sous le handle , où le type est personalization:decisions.

Un autre contenu est renvoyé sous la variable handle également. D’autres types de contenu ne sont pas pertinents pour les Offer Decisioning personnalisation. Si le visiteur est admissible pour plusieurs activités, elles sont contenues dans un tableau .

Le tableau ci-dessous explique les éléments clés de cette partie de la réponse.

Propriété Description Exemple
scope Portée de décision associée aux offres proposées qui ont été renvoyées. "scope": "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTFjZmIxZmE5MzM4MWFjYSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExNzUwMDk2MTJiMDEwMGMifQ=="
activity.id Identifiant unique de l’activité d’offre. "id": "xcore:offer-activity:11cfb1fa93381aca"
placement.id Identifiant unique de l’emplacement de l’offre. "id": "xcore:offer-placement:1175009612b0100c"
items.id L’identifiant unique de l’offre proposée. "id": "xcore:personalized-offer:124cc332095cfa74"
schema Le schéma du contenu associé à l’offre proposée. "schema": "https://ns.adobe.com/experience/offer-management/content-component-html"
data.id L’identifiant unique de l’offre proposée. "id": "xcore:personalized-offer:124cc332095cfa74"
format Format du contenu associé à l’offre proposée. "format": "text/html"
language Tableau de langues associées au contenu de l’offre proposée. "language": [ "en-US" ]
content Contenu associé à l’offre proposée au format d’une chaîne. "content": "<p style="color:red;">20% Off on shipping</p>"
deliveryUrl Contenu de l'image associé à l'offre proposée au format d'une URL. "deliveryURL": "https://image.jpeg"
characteristics Objet JSON contenant les caractéristiques associées à l’offre proposée. "characteristics": { "foo": "bar", "foo1": "bar1" }

Sur cette page