Évaluation des événements en temps quasi réel à l’aide de la segmentation par flux

REMARQUE

Le document suivant indique comment utiliser la segmentation par flux à l’aide de l’API. Pour plus d’informations sur l’utilisation de la segmentation par flux à l’aide de l’interface utilisateur, consultez le guide de l’interface utilisateur de la segmentation par flux.

La segmentation par flux sur Adobe Experience Platform permet aux clients d’effectuer une segmentation en temps quasi réel tout en se concentrant sur la richesse des données. Avec la segmentation par flux, la qualification de segment se produit maintenant lorsque les données en continu arrivent dans Platform, ce qui évite d’avoir à planifier et à exécuter des tâches de segmentation. Grâce à cette fonctionnalité, la plupart des règles de segmentation peuvent désormais être évaluées au fur et à mesure que les données sont transmises à Platform, ce qui signifie que l’adhésion au segment sera conservée à jour sans exécuter les tâches de segmentation planifiées.

REMARQUE

La segmentation par flux ne peut être utilisée que pour évaluer les données diffusées dans Platform. En d’autres termes, les données ingérées par l’ingestion par lots ne seront pas évaluées par la segmentation par flux et seront évaluées avec la tâche segmentée planifiée de nuit.

Prise en main

Ce guide de développement nécessite une compréhension pratique des différents services Adobe Experience Platform impliqués dans la segmentation par flux. Avant de commencer ce tutoriel, veuillez consulter la documentation relative aux services suivants :

  • Real-time Customer Profile: Fournit un profil client unifié en temps réel, basé sur des données agrégées provenant de plusieurs sources.
  • Segmentation: Permet de créer des segments et des audiences à partir de vos Real-time Customer Profile données.
  • Experience Data Model (XDM) : cadre normalisé selon lequel Platform organise les données de l’expérience client.

Les sections suivantes apportent des informations supplémentaires dont vous aurez besoin pour passer avec succès des appels à des API Platform.

Lecture d’exemples d’appels API

Ce guide de développement fournit des exemples d’appels API pour démontrer comment formater vos requêtes. Il s’agit notamment de chemins d’accès, d’en-têtes requis et de payloads de requêtes correctement formatés. L'exemple JSON renvoyé dans les réponses de l'API est également fourni. Pour plus d'informations sur les conventions utilisées dans la documentation pour les exemples d'appels d'API, voir la section concernant la lecture d'exemples d'appels d'API dans le guide de dépannageExperience Platform.

Collecte des valeurs des en-têtes requis

Pour lancer des appels aux API Platform, vous devez d'abord suivre le tutoriel d'authentification. Le tutoriel d'authentification fournit les valeurs de chacun des en-têtes requis dans tous les appels d'API Experience Platform, comme indiqué ci-dessous :

  • Authorization: Bearer {ACCESS_TOKEN}
  • x-api-key : {API_KEY}
  • x-gw-ims-org-id : {IMS_ORG}

Dans Experience Platform, toutes les ressources sont isolées dans des environnements de test virtuels spécifiques. Toutes les requêtes envoyées aux API Platform nécessitent un en-tête spécifiant le nom de l’environnement de test dans lequel l’opération sera effectuée :

  • x-sandbox-name : {SANDBOX_NAME}
REMARQUE

Pour plus d’informations sur les environnements de test dans Platform, consultez la documentation de présentation des environnements de test.

Toutes les requêtes contenant un payload (POST, PUT, PATCH) requièrent un en-tête supplémentaire :

  • Content-Type: application/json

Des en-têtes supplémentaires peuvent être nécessaires pour effectuer des requêtes spécifiques. Les en-têtes corrects sont présentés dans chacun des exemples de ce document. Accordez une attention particulière aux exemples de requêtes afin de vous assurer que tous les en-têtes requis sont inclus.

Types de requête permettant la segmentation par flux

REMARQUE

Vous devez activer la segmentation planifiée pour l’organisation afin que la segmentation par flux fonctionne. Vous trouverez des informations sur l’activation de la segmentation planifiée dans la section Activation de la segmentation planifiée.

Pour qu’un segment soit évalué à l’aide de la segmentation par flux, la requête doit respecter les instructions suivantes.

Type de requête Détails
Accès entrant Toute définition de segment qui fait référence à un seul événement entrant sans restriction temporelle.
Accès entrant dans un intervalle de temps relatif Toute définition de segment qui fait référence à un seul événement entrant.
Accès entrant avec intervalle de temps Toute définition de segment qui fait référence à un seul événement entrant avec une fenêtre temporelle.
Profil uniquement Toute définition de segment qui ne fait référence qu’à un attribut de profil.
Accès entrant qui fait référence à un profil Toute définition de segment qui fait référence à un seul événement entrant, sans restriction temporelle, et à un ou plusieurs attributs de profil.
Accès entrant qui fait référence à un profil dans une fenêtre temporelle relative Toute définition de segment qui fait référence à un seul événement entrant et à un ou plusieurs attributs de profil.
Segment de segments Toute définition de segment contenant un ou plusieurs segments par lot ou en flux continu. Remarque : Si un segment de segments est utilisé, la disqualification du profil se produit toutes les 24 heures.
Plusieurs événements faisant référence à un profil Toute définition de segment qui fait référence à plusieurs événements au cours des dernières 24 heures et (éventuellement) comporte un ou plusieurs attributs de profil.

Une définition de segment et ne sera pas activée pour la segmentation par flux dans les scénarios suivants :

  • La définition de segment inclut des segments ou des caractéristiques Adobe Audience Manager (AAM).
  • La définition de segment comprend plusieurs entités (requêtes d’entités multiples).

En outre, certaines instructions s’appliquent lors de la segmentation par flux :

Type de requête Instruction
Requête d’événement unique Il n’existe aucune limite à l’intervalle de recherche en amont.
Requête avec historique des événements
  • L’intervalle de recherche en amont est limité à un jour.
  • Une condition d’ordre du temps doit exister entre les événements.
  • Les requêtes comportant au moins un événement annulé sont prises en charge. Cependant, l’événement entier ne peut pas être une négation.

Récupération de tous les segments activés pour la segmentation par flux

Vous pouvez récupérer une liste de tous vos segments qui sont activés pour la segmentation par flux dans votre organisation IMS en envoyant une demande de GET au point de terminaison /segment/definitions .

Format d’API

Pour récupérer les segments activés dans le flux, vous devez inclure le paramètre de requête evaluationInfo.continuous.enabled=true dans le chemin de requête.

GET /segment/definitions?evaluationInfo.continuous.enabled=true

Requête

curl -X GET \
  'https://platform.adobe.io/data/core/ups/segment/definitions?evaluationInfo.continuous.enabled=true' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}'

Réponse

Une réponse réussie renvoie un tableau de segments de votre organisation IMS permettant une segmentation par flux.

{
    "segments": [
        {
            "id": "15063cb-2da8-4851-a2e2-bf59ddd2f004",
            "schema": {
                "name": "_xdm.context.profile"
            },
            "ttlInDays": 30,
            "imsOrgId": "{IMS_ORG_ID}",
            "sandbox": {
                "sandboxId": "",
                "sandboxName": "",
                "type": "production",
                "default": true
            },
            "name": " People who are NOT on their homepage ",
            "expression": {
                "type": "PQL",
                "format": "pql/text",
                "value": "select var1 from xEvent where var1._experience.analytics.endUser.firstWeb.webPageDetails.isHomePage = false"
            },
            "evaluationInfo": {
                "batch": {
                    "enabled": false
                },
                "continuous": {
                    "enabled": true
                },
                "synchronous": {
                    "enabled": false
                }
            },
            "creationTime": 1572029711000,
            "updateEpoch": 1572029712000,
            "updateTime": 1572029712000
        },
        {
            "id": "f15063cb-2da8-4851-a2e2-bf59ddd2f004",
            "schema": {
                "name": "_xdm.context.profile"
            },
            "ttlInDays": 30,
            "imsOrgId": "{IMS_ORG_ID}",
            "sandbox": {
                "sandboxId": "",
                "sandboxName": "",
                "type": "production",
                "default": true
            },
            "name": "Homepage_continuous",
            "description": "People who are on their homepage - continuous",
            "expression": {
                "type": "PQL",
                "format": "pql/text",
                "value": "select var1 from xEvent where var1._experience.analytics.endUser.firstWeb.webPageDetails.isHomePage = true"
            },
            "evaluationInfo": {
                "batch": {
                    "enabled": true
                },
                "continuous": {
                    "enabled": true
                },
                "synchronous": {
                    "enabled": false
                }
            },
            "creationTime": 1572021085000,
            "updateEpoch": 1572021086000,
            "updateTime": 1572021086000
        }
    ],
    "page": {
        "totalCount": 2,
        "totalPages": 1,
        "sortField": "creationTime",
        "sort": "desc",
        "pageSize": 2,
        "limit": 100
    },
    "link": {}
}

Création d’un segment activé dans le flux

Un segment est automatiquement activé par flux s’il correspond à l’un des types de segmentation par flux répertoriés ci-dessus.

Format d’API

POST /segment/definitions

Requête

curl -X POST \
  https://platform.adobe.io/data/core/ups/segment/definitions \
  -H 'Authorization: Bearer {ACCESS_TOKEN}'  \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -d '{
    "schema": {
        "name": "_xdm.context.profile"
    },
    "ttlInDays": 30,
    "name": "Homepage_continuous",
    "description": "People who are on their homepage - continuous",
    "expression": {
        "type": "PQL",
        "format": "pql/text",
        "value": "select var1 from xEvent where var1._experience.analytics.endUser.firstWeb.webPageDetails.isHomePage = true"
    }
}'
REMARQUE

Il s’agit d’une requête "créer un segment" standard. Pour plus d’informations sur la création d’une définition de segment, consultez le tutoriel sur la création d’un segment.

Réponse

Une réponse réussie renvoie les détails de la nouvelle définition de segment activée dans le flux.

{
    "id": "f15063cb-2da8-4851-a2e2-bf59ddd2f004",
    "schema": {
        "name": "_xdm.context.profile"
    },
    "ttlInDays": 30,
    "imsOrgId": "{IMS_ORG}",
    "sandbox": {
        "sandboxId": "{SANDBOX_ID}",
        "sandboxName": "{SANDBOX_NAME}",
        "type": "production",
        "default": true
    },
    "name": "Homepage_continuous",
    "description": "People who are on their homepage - continuous",
    "expression": {
        "type": "PQL",
        "format": "pql/text",
        "value": "select var1 from xEvent where var1._experience.analytics.endUser.firstWeb.webPageDetails.isHomePage = true"
    },
    "evaluationInfo": {
        "batch": {
            "enabled": false
        },
        "continuous": {
            "enabled": true,
                   },
        "synchronous": {
            "enabled": false
        }
    },
    "creationTime": 1572021085000,
    "updateEpoch": 1572021086000,
    "updateTime": 1572021086000
}

Activation de l’évaluation planifiée

Une fois l’évaluation par flux activée, une ligne de base doit être créée (ensuite le segment sera toujours à jour). L’évaluation planifiée (également appelée segmentation planifiée) doit d’abord être activée pour que le système effectue automatiquement la mise en base. Avec la segmentation planifiée, votre organisation IMS peut se conformer à un planning récurrent pour exécuter automatiquement les tâches d’exportation afin d’évaluer les segments.

REMARQUE

L’évaluation planifiée peut être activée pour les environnements de test avec un maximum de cinq (5) stratégies de fusion pour XDM Individual Profile. Si votre organisation possède plus de cinq stratégies de fusion pour XDM Individual Profile dans un seul environnement de test, vous ne pourrez pas utiliser l’évaluation planifiée.

Création d’un planning

En effectuant une requête POST sur le point de terminaison /config/schedules, vous pouvez créer un planning et inclure l’heure spécifique à laquelle le planning doit être déclenché.

Format d’API

POST /config/schedules

Requête

La requête suivante crée un planning en fonction des spécifications fournies dans le payload.

curl -X POST \
  https://platform.adobe.io/data/core/ups/config/schedules \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -d '{
        "name": "{SCHEDULE_NAME}",
        "type": "batch_segmentation",
        "properties": {
            "segments": ["*"]
        },
        "schedule": "0 0 1 * * ?",
        "state": "inactive"
        }'
Propriété Description
name (Obligatoire) Le nom du planning. Doit être une chaîne.
type (Obligatoire) Le type de tâche au format chaîne. Les types batch_segmentation et export sont pris en charge.
properties (Obligatoire) Un objet contenant des propriétés supplémentaires liées au planning.
properties.segments (Obligatoire lorsque type est égal à batch_segmentation) L’utilisation de ["*"] permet de s’assurer que tous les segments sont inclus.
schedule (Obligatoire) Une chaîne contenant le planning de la tâche. Vous ne pouvez planifier qu’une seule exécution de tâche par jour, ce qui signifie que vous ne pouvez pas planifier l’exécution d’une tâche plus d’une fois au cours d’une période de 24 heures. L’exemple illustré (0 0 1 * * ?) signifie que la tâche est déclenchée tous les jours à 1:00:00 UTC. Pour plus d’informations, consultez la documentation sur le format d’expression cron.
state (Facultatif) Chaîne contenant l’état du planning. Valeurs disponibles : active et inactive. La valeur par défaut est inactive. Une organisation IMS ne peut créer qu’un seul planning. Les étapes de mise à jour du planning sont disponibles plus loin dans ce tutoriel.

Réponse

Une réponse réussie renvoie les détails du planning créé.

{
    "id": "cd585edf-962d-420d-94ad-3be03e619ac2",
    "imsOrgId": "{IMS_ORG}",
    "sandbox": {
        "sandboxId": "e7e17720-c5bb-11e9-aafb-87c71c35cac8",
        "sandboxName": "prod",
        "type": "production",
        "default": true
    },
    "name": "{SCHEDULE_NAME}",
    "state": "inactive",
    "type": "batch_segmentation",
    "schedule": "0 0 1 * * ?",
    "properties": {
        "segments": [
            "*"
        ]
    },
    "createEpoch": 1568267948,
    "updateEpoch": 1568267948
}

Activation d’un planning

Par défaut, un planning est inactif lors de la création, sauf si la propriété state est définie sur active dans le corps de la requête de création (POST). Vous pouvez activer un planning (définissez state sur active) en effectuant une requête PATCH sur le point de terminaison /config/schedules et en incluant l’identifiant du planning dans le chemin.

Format d’API

POST /config/schedules/{SCHEDULE_ID}

Requête

La requête suivante utilise le format du correctif JSON pour mettre à jour l’état state du planning sur active.

curl -X POST \
  https://platform.adobe.io/data/core/ups/config/schedules/cd585edf-962d-420d-94ad-3be03e619ac2 \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -d '[
        {
          "op": "add",
          "path": "/state",
          "value": "active"
        }
      ]'

Réponse

Une mise à jour réussie renvoie un corps de réponse vide et un état HTTP 204 (No Content).

La même opération peut être utilisée pour désactiver un planning en remplaçant la « valeur » de la requête précédente par « inactif ».

Étapes suivantes

Maintenant que vous avez activé la segmentation par flux pour les segments nouveaux et existants, ainsi que la segmentation planifiée pour développer une ligne de base et effectuer des évaluations récurrentes, vous pouvez commencer à créer des segments activés par flux pour votre organisation.

Pour savoir comment effectuer des actions similaires et utiliser des segments à l’aide de l’interface utilisateur d’Adobe Experience Platform, consultez le guide d’utilisation du créateur de segments.

Sur cette page