Utilisation d’Offer Decisioning avec le SDK Web Platform

REMARQUE

L’utilisation d’Offer Decisioning dans le SDK web d’Adobe Experience Platform est actuellement possible en accès anticipé pour certains utilisateurs. Cette fonctionnalité n’est pas disponible pour toutes les organisations IMS.

Adobe Experience Platform Web SDK peut diffuser et générer des offres personnalisées gérées en Offer decisioning. Vous pouvez créer vos offres et d’autres objets associés à l’aide de l’interface utilisateur (IU) ou des API d’Offer decisioning.

Conditions préalables

  • L’organisation IMS est activée pour la prise de décision Edge
  • Offres, Activités créées
  • Datastream est publié

Terminologie

Il est important de comprendre la terminologie suivante lorsque vous utilisez Offer Decisioning. Pour plus d’informations et pour consulter d’autres termes, consultez le glossaire des Offers decisionings.

  • Conteneur : un conteneur est un mécanisme d’isolation qui permet de séparer les différentes préoccupations. L’ID de conteneur est le premier élément de chemin d’accès pour toutes les API du référentiel. Tous les objets de prise de décision résident dans un conteneur.

  • Portées de décision : pour l’Offer decisioning, il s’agit des chaînes codées Base64 de JSON contenant les identifiants d’activité et d’emplacement que vous souhaitez que le service d’offer decisioning utilise pour proposer des offres.

    Portée de décision JSON :

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

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

    "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTFjZmIxZmE5MzM4MWFjYSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExNzUwMDk2MTJiMDEwMGMifQ=="
    
    CONSEIL

    Vous pouvez copier la valeur de la portée de la décision à partir de la page Aperçu de l’activité de l’interface utilisateur.

  • Flux de données : Pour plus d’informations, consultez la documentation 🔗 datastreams.

  • Identité : Pour plus d’informations, consultez cette documentation décrivant comment le SDK Web de Platform exploite Identity Service.

Activation de l’Offer decisioning

Pour activer l’Offer decisioning, procédez comme suit :

  1. Activation de Adobe Experience Platform dans votre flux de données et cochez la case "Offer decisioning".

    offer-decisioning-edge-config

  2. Suivez les instructions pour installer le SDK (le SDK peut être installé seul ou via Adobe Experience Platform Launch. Voici un guide de démarrage rapide de Platform launch).

  3. Configurez le SDK pour Offer Decisioning. Vous trouverez ci-dessous d’autres étapes spécifiques à l’Offer decisioning.

    • SDK autonome installé

      1. Configurez l’action "sendEvent" avec votre decisionScopes

         alloy("sendEvent", {
            ...
            "decisionScopes": [
                "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTIxYWIwOWMxM2JkZDIyNCIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjEyMWFiMDZhODRkMDViMTEifQ==",
                "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTIxYWIyNWI5NTUwNWIxZiIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjEyMWFiMjFmOTQzMDE0MmIifQ=="
            ]
         })
        
    • SDK installé par platform launch

      1. Création d’une propriété de Platform launch

      2. Ajout du code incorporé de Platform launch

      3. Installez et configurez l’extension SDK Web Platform avec le Datastream que vous venez de créer en sélectionnant la configuration dans la liste déroulante "Datastream". Consultez la documentation sur les extensions.

        install-aep-web-sdk-extension

        configure-aep-web-sdk-extension

      4. Créez les Éléments de données nécessaires. Au minimum, vous devez créer une carte d’identité SDK Web Platform et un élément de données XDM d’objet SDK Web Platform.

        identity-map-data-element

        xdm-object-data-element

      5. Créez vos Règles.

        • Ajoutez une action Envoyer un événement via le SDK Web Platform et ajoutez la balise decisionScopes appropriée à la configuration de cette action.

          send-event-action-décisionScopes

      6. Créez et publiez une bibliothèque contenant toutes les règles, les éléments de données et les extensions que vous avez configurés appropriés.

Exemples de requêtes et de réponses

Une valeur decisionScopes

Requête

{
  "events": [
    {
      "xdm": {
        "identityMap": {
          "ECID": [
            {
              "id": "91133425615229052182584359620783097099"
            }
          ]
        }
      },
      "query": {
        "personalization": {
          "decisionScopes": [
            "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTFjZmIxZmE5MzM4MWFjYSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExNzUwMDk2MTJiMDEwMGMifQ=="
          ]
        }
      }
    }
  ]
}
Propriété Obligatoire Description Limites Exemple
identityMap Oui Reportez-vous à cette documentation Identity Service. Une identité par demande. { "identityMap": { "ECID": [ { "id": "91133425615229052182584359620783097099" } ] } }
decisionScopes Oui Tableau de chaînes codées Base64 de JSON contenant les identifiants d’activité et d’emplacement. 30 decisionScopes maximum par demande. "decisionScopes": ["eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTFjZmIxZmE5MzM4MWFjYSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExNzUwMDk2MTJiMDEwMGMifQ=="]

Réponse

{
  "requestId": "94c4f2f1-9218-43ce-afd3-eb0d853c5174",
  "handle": [
    {
      "payload": [
        {
          "id": "2862bb89-5df2-4bc6-85c2-d8f7e1a091de",
          "scope": "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTFjZmIxZmE5MzM4MWFjYSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExNzUwMDk2MTJiMDEwMGMifQ==",
          "activity": {
            "id": "xcore:offer-activity:11cfb1fa93381aca",
            "etag": "2"
          },
          "placement": {
            "id": "xcore:offer-placement:1175009612b0100c",
            "etag": "1"
          },
          "items": [
            {
              "id": "xcore:personalized-offer:124cc332095cfa74",
              "schema": "https://ns.adobe.com/experience/offer-management/content-component-html",
              "etag": "1",
              "data": {
                "id": "xcore:personalized-offer:124cc332095cfa74",
                "format": "text/html",
                "language": [
                  "en-US"
                ],
                "content": "<p>20% Off on shipping</p>",
                "characteristics": {
                  "foo": "bar",
                  "foo1": "bar1"
                }
              }
            }
          ]
        }
      ],
      "type": "personalization:decisions",
      "eventIndex": 0
    }
  ]
}
Propriété Description Exemple
scope Portée de décision qui a abouti aux offres proposé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 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 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 Caractéristiques associées à l’offre proposée au format d’un objet JSON. "characteristics": { "foo": "bar", "foo1": "bar1" }

Plusieurs decisionScopes valeurs

Requête

{
  "events": [
    {
      "xdm": {
        "identityMap": {
          "ECID": [
            {
              "id": "91133425615229052182584359620783097099"
            }
          ]
        }
      },
      "query": {
        "personalization": {
          "decisionScopes": [
            "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTFjZmIxZmE5MzM4MWFjYSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExNzUwMDk2MTJiMDEwMGMifQ==",
            "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTIyMjA4YjNhODc0MDU1OCIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjEyMjIwNDUyOTUxNGEyYzAifQ==",
            "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTIyYzkxMzg1Mjc2MDE4YyIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjEyMzMxZjU2MTYyYWEyZjcifQ=="
          ]
        }
      }
    }
  ]
}
Propriété Obligatoire Description Limites Exemple
identityMap Oui Reportez-vous à cette documentation Identity Service. Une identité par demande. { "identityMap": { "ECID": [ { "id": "91133425615229052182584359620783097099" } ] } }
decisionScopes Oui Tableau de chaînes codées Base64 de JSON contenant les identifiants d’activité et d’emplacement. 30 decisionScopes maximum par demande. "decisionScopes":["eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTFjZmIxZmE5MzM4MWFjYSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExNzUwMDk2MTJiMDEwMGMifQ==", "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTIyMjA4YjNhODc0MDU1OCIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjEyMjIwNDUyOTUxNGEyYzAifQ=="

Réponse

{
  "requestId": "94c4f2f1-9218-43ce-afd3-eb0d853c5174",
  "handle": [
    {
      "payload": [
        {
          "id": "a2804dfb-a0ec-4df9-8311-59d3ecdeb642",
          "scope": "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTFjZmIxZmE5MzM4MTEyMyIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExNzUwMDk2MTJiMDExMjMifQ==",
          "activity": {
            "id": "xcore:offer-activity:11cfb1fa93381123",
            "etag": "1"
          },
          "placement": {
            "id": "xcore:offer-placement:1175009612b01123",
            "etag": "3"
          },
          "items": [
            {
              "id": "xcore:personalized-offer:11e36d4a22954123",
              "schema": "https://ns.adobe.com/experience/offer-management/content-component-text",
              "etag": "2",
              "data": {
                "id": "xcore:personalized-offer:11e36d4a22954123",
                "format": "text/text",
                "language": [
                  "en"
                ],
                "content": "20% Off on shipping",
                "characteristics": {
                  "foo2": "bar2"
                }
              }
            }
          ]
        },
        {
          "id": "a2804dfb-a0ec-4df9-8311-59d3ecdeb642",
          "scope": "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTFjZmIxZmE5MzM4MWFjYSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExNzUwMDk2MTJiMDEwMGMifQ==",
          "activity": {
            "id": "xcore:offer-activity:11cfb1fa93381aca",
            "etag": "2"
          },
          "placement": {
            "id": "xcore:offer-placement:1175009612b0100c",
            "etag": "1"
          },
          "items": [
            {
              "id": "xcore:personalized-offer:11e36d4a2295415d",
              "schema": "https://ns.adobe.com/experience/offer-management/content-component-imagelink",
              "etag": "1",
              "data": {
                "id": "xcore:personalized-offer:11e36d4a2295415d",
                "format": "image/png",
                "language": [
                  "en"
                ],
                "deliveryURL": "https://image.jpeg",
                "characteristics": {
                  "foo": "bar",
                  "foo1": "bar1"
                }
              }
            }
          ]
        }
      ],
      "type": "personalization:decisions",
      "eventIndex": 0
    }
  ]
}
Propriété Description Exemple
scope Portée de décision qui a abouti aux offres proposées. "scope": "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTFjZmIxZmE5MzM4MWFjYSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExNzUwMDk2MTJiMDEwMGMifQ=="
activity.id Identifiant unique de l’activité d’offre. "id": "xcore:offer-activity:11cfb1fa93381123"
placement.id Identifiant unique de l’emplacement de l’offre. "xcore:offer-placement:1175009612b01123"
items.id L’identifiant de l’offre proposée. "id": "xcore:personalized-offer:11e36d4a22954123"
schema Le schéma du contenu associé à l’offre proposée. "schema": "https://ns.adobe.com/experience/offer-management/content-component-text"
data.id L’identifiant de l’offre proposée. "id": "xcore:personalized-offer:11e36d4a22954123"
format Format du contenu associé à l’offre proposée. "format": "text/text"
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 Caractéristiques associées à l’offre proposée au format d’un objet JSON. "characteristics": { "foo": "bar", "foo1": "bar1" }

Sur cette page