Créez une connexion source et un flux de données pour diffuser LAVA données à l’aide de l’API Flow Service
Prise en main
Ce guide nécessite une compréhension professionnelle des composants suivants d’Experience Platform :
- Sources : utilisez les sources dans Experience Platform pour importer facilement des données provenant de divers systèmes. Les sources vous aident à collecter, organiser et préparer vos données afin de tirer le meilleur parti des fonctionnalités d’Experience Platform.
- Sandbox : les sandbox vous permettent de créer, de tester et d’expérimenter en toute sécurité dans Experience Platform sans affecter vos données de production. Ils créent des environnements distincts afin que vous puissiez tester différentes fonctionnalités, développer de nouvelles fonctionnalités ou collaborer sans risque avec votre équipe.
Charger le package LAVA
LAVA fournit un package qui inclut nos groupes de champs, schémas, espaces de noms d’identité et jeux de données recommandés pour l’utilisation de LAVA dans Experience Platform. L’utilisation de ces packages est recommandée, mais pas obligatoire.
Lisez cette section pour savoir comment importer ceci dans votre sandbox et obtenir les identifiants requis pour les étapes suivantes.
Format d’API
POST /transfer/pullRequest
Requête
La requête suivante charge le package pour LAVA :
curl -X POST \
'https://platform.adobe.io/data/foundation/exim/transfer/pullRequest' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"imsOrgId": "1EF71E43679AAD1E0A495C77@AdobeOrg",
"packageId": "416a0c2a32794092aa1a957cbe9a6698"
}'
imsOrgId1EF71E43679AAD1E0A495C77@AdobeOrg.packageId416a0c2a32794092aa1a957cbe9a6698.Réponse
Une réponse réussie renvoie des détails sur le package public importé.
{
"id": "{ID}",
"version": 0,
"createdDate": 1729658890425,
"modifiedDate": 1729658890425,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}",
"sourceIMSOrgId": "{ORG_ID}",
"targetIMSOrgId": "{TARGET_ID}",
"packageId": "{PACKAGE_ID}",
"status": "PENDING",
"initiatedBy": "{INITIATED_BY}",
"pipelineMessageId": "{MESSAGE_ID}",
"requestType": "PUBLIC"
}
Récupération des schémas
Après avoir importé le package, récupérez les schémas LAVA Events et LAVA Profile :
Requête
curl -X GET \
'https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas?name=LAVA*' \
-H 'Authorization: Bearer {{ACCESS_TOKEN}}' \
-H 'x-api-key: {{API_KEY}}' \
-H 'x-gw-ims-org-id: {{ORG_ID}}' \
-H 'x-sandbox-name: {{SANDBOX_NAME}}' \
-H 'Accept: application/vnd.adobe.xed-id+json'
Réponse
Une réponse réussie renvoie une liste de schémas. Utilisez ces identifiants comme schémas XDM cibles lors d’une étape ultérieure.
{
"results": [
...
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/7ff102f217d394e8beff48dcc2c27baae14e28e210d36492",
"meta:altId": "_{TENANT_ID}.schemas.7ff102f217d394e8beff48dcc2c27baae14e28e210d36492",
"version": "1.4",
"title": "LAVA Events"
},
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/991bed7f1d94ccf47bd392bc345ee51e7e0bd19b1de3dbff",
"meta:altId": "_{TENANT_ID}.schemas.991bed7f1d94ccf47bd392bc345ee51e7e0bd19b1de3dbff",
"version": "1.2",
"title": "LAVA Profile"
},
//...
]
}
Récupérer des jeux de données
Ensuite, utilisez les appels suivants pour récupérer vos identifiants de jeu de données.
Requête
curl -X GET \
'https://platform.adobe.io/data/foundation/catalog/dataSets?name=LAVA*' \
-H 'Authorization: Bearer {{ACCESS_TOKEN}}' \
-H 'x-api-key: {{API_KEY}}' \
-H 'x-gw-ims-org-id: {{ORG_ID}}' \
-H 'x-sandbox-name: {{SANDBOX_NAME}}' \
-H 'Accept: application/json'
Réponse
{
"6920eb494131bfcc10305302": {
"id": "6920eb494131bfcc10305302",
"name": "LAVA Member Profiles",
//...
},
"6920eb7565bd3ed93a35cd0e": {
"id": "6920eb7565bd3ed93a35cd0e",
"name": "LAVA Member Rewards",
//...
},
"6924aecd8d9c85e2d56261e3": {
"id": "6924aecd8d9c85e2d56261e3",
"name": "LAVA Events",
"schemaRef": {
"id": "https://ns.adobe.com/{TENANT_ID}/schemas/7ff102f217d394e8beff48dcc2c27baae14e28e210d36492",
"contentType": "application/vnd.adobe.xed-full+json;version=1"
},
//...
}
}
Connexion de LAVA à Experience Platform à l’aide de l’API Flow Service
Le tutoriel suivant vous guide tout au long des étapes nécessaires à la création d’une connexion source LAVA et d’un flux de données pour importer des données LAVA dans Experience Platform à l’aide de l’Flow Service API.
Créer une connexion source source-connection
Créez une connexion source en adressant une requête POST à l’API Flow Service, tout en fournissant l’identifiant de spécification de connexion de votre source, des détails tels que le nom et la description, ainsi que le format de vos données.
Format d’API
POST /sourceConnections
Requête
La requête suivante crée une connexion source pour LAVA :
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/sourceConnections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Streaming Source Connection for a Streaming SDK source",
"description": "Streaming Source Connection for a Streaming SDK source",
"connectionSpec": {
"id": "232dfabe-27aa-41c0-a7cf-9961661dc68b",
"version": "1.0"
},
"data": {
"format": "json"
}
}'
namedescriptionconnectionSpec.id232dfabe-27aa-41c0-a7cf-9961661dc68b pour LAVA.data.formatjson est le seul à être pris en charge.Réponse
Une réponse réussie renvoie l’identifiant unique (id) de la nouvelle connexion source. Cet identifiant est requis lors d’une étape ultérieure pour créer un flux de données.
{
"id": "246d052c-da4a-494a-937f-a0d17b1c6cf5",
"etag": "\"712a8c08-fda7-41c2-984b-187f823293d8\""
}
Créer un schéma XDM cible target-schema
Pour que les données sources soient utilisées dans Experience Platform, un schéma cible doit être créé pour structurer les données sources en fonction de vos besoins. Le schéma cible est ensuite utilisé pour créer un jeu de données Experience Platform contenant les données sources. Si vous utilisez plusieurs jeux de données LAVA, par exemple des soldes de membres et des événements d’analyse de ticket, vous pouvez vouloir ou avoir besoin de plusieurs schémas XDM cibles.
Un schéma XDM cible peut être créé en adressant une requête POST à l’API Schema Registry.
Pour obtenir des instructions détaillées sur la création d’un schéma XDM cible, suivez le tutoriel sur la création d’un schéma à l’aide de l’API.
Créer un jeu de données cible target-dataset
Un jeu de données cible peut être créé en adressant une requête POST à l’API Catalog Service et en fournissant l’identifiant du schéma cible dans la payload.
Pour obtenir des instructions détaillées sur la création d’un jeu de données cible, suivez le tutoriel sur la création d’un jeu de données à l’aide de l’API.
Créer une connexion cible target-connection
Une connexion cible représente la connexion à la destination où les données ingérées doivent être stockées. Pour créer une connexion cible, vous devez fournir l’identifiant fixe de spécification de connexion qui correspond au lac de données. Cet identifiant est c604ff05-7f1a-43c0-8e18-33bf874cb11c.
Vous disposez désormais des identifiants uniques d’un schéma cible, d’un jeu de données cible et de l’identifiant de spécification de connexion pour le lac de données. À lʼaide de ces identifiants, vous pouvez créer une connexion cible à l’aide de l’API Flow Service pour spécifier le jeu de données qui contiendra les données source entrantes.
Format d’API
POST /targetConnections
Requête
La requête suivante crée une connexion cible pour LAVA :
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/targetConnections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Streaming Target Connection for a Streaming SDK source",
"description": "Streaming Target Connection for a Streaming SDK source",
"connectionSpec": {
"id": "c604ff05-7f1a-43c0-8e18-33bf874cb11c",
"version": "1.0"
},
"data": {
"format": "json",
"schema": {
"id": "{TARGET_XDM_SCHEMA}",
"version": "application/vnd.adobe.xed-full+json;version=1"
}
},
"params": {
"dataSetId": "{TARGET_DATASET}"
}
}'
namedescriptionconnectionSpec.idc604ff05-7f1a-43c0-8e18-33bf874cb11c.data.formatparams.dataSetIdRéponse
Une réponse réussie renvoie l’identifiant unique de la nouvelle connexion cible (id). Cet identifiant est requis aux étapes suivantes.
{
"id": "7c96c827-3ffd-460c-a573-e9558f72f263",
"etag": "\"a196f685-f5e8-4c4c-bfbd-136141bb0c6d\""
}
Créer un mappage mapping
Pour que les données sources soient ingérées dans un jeu de données cible, elles doivent d’abord être mappées au schéma cible auquel le jeu de données cible se rattache. Pour ce faire, il suffit d’adresser une requête POST à Data Prep API avec des mappages de données définis dans la payload de la requête.
Lors de l’utilisation du schéma fourni par LAVA, le mappage suivant est recommandé :
| code language-json |
|---|
|
| code language-json |
|---|
|
| code language-json |
|---|
|
| code language-json |
|---|
|
| code language-json |
|---|
|
| code language-json |
|---|
|
Format d’API
POST /conversion/mappingSets
Requête
curl -X POST \
'https://platform.adobe.io/data/foundation/mappingSets' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"version": 0,
"xdmSchema": "{TARGET_XDM_SCHEMA}",
"xdmVersion": "1.0",
"mappings": [
{
"destinationXdmPath": "_{TENANT_ID}.lavaId",
"sourceAttribute": "lavaId",
"identity": false,
"version": 0
},
{
"destinationXdmPath": "_{TENANT_ID}.balances",
"sourceAttribute": "balances",
"identity": false,
"version": 0
}
]
}'
xdmSchemamappings.destinationXdmPathmappings.sourceAttributemappings.identityRéponse
Une réponse réussie renvoie les détails du mappage nouvellement créé, y compris son identifiant unique (id). Cette valeur est requise lors d’une étape ultérieure pour créer un flux de données.
{
"id": "bf5286a9c1ad4266baca76ba3adc9366",
"version": 0,
"createdDate": 1597784069368,
"modifiedDate": 1597784069368,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}"
}
Créer un flux flow
La dernière étape pour importer des données de LAVA vers Experience Platform consiste à créer un flux de données. Vous disposez à présent des valeurs requises suivantes :
Un flux de données est chargé de planifier et de collecter les données provenant d’une source. Vous pouvez créer un flux de données en exécutant une requête POST et en fournissant les valeurs mentionnées précédemment dans la payload.
Format d’API
POST /flows
Requête
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/flows' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Streaming Dataflow for a Streaming SDK source",
"description": "Streaming Dataflow for a Streaming SDK source",
"flowSpec": {
"id": "e77fde5a-22a8-11ed-861d-0242ac120002",
"version": "1.0"
},
"sourceConnectionIds": [
"246d052c-da4a-494a-937f-a0d17b1c6cf5"
],
"targetConnectionIds": [
"7c96c827-3ffd-460c-a573-e9558f72f263"
],
"transformations": [
{
"name": "Mapping",
"params": {
"mappingId": "bf5286a9c1ad4266baca76ba3adc9366",
"mappingVersion": 0
}
}
]
}'
namedescriptionflowSpec.ide77fde5a-22a8-11ed-861d-0242ac120002.flowSpec.version1.0.sourceConnectionIdstargetConnectionIdstransformationstransformations.nametransformations.params.mappingIdtransformations.params.mappingVersion0.Réponse
Une réponse réussie renvoie l’identifiant (id) du flux de données nouvellement créé. Vous pouvez utiliser cet identifiant pour surveiller, mettre à jour ou supprimer votre flux de données.
{
"id": "993f908f-3342-4d9c-9f3c-5aa9a189ca1a",
"etag": "\"510bb1d4-8453-4034-b991-ab942e11dd8a\""
}
Obtention de l’URL du point d’entrée de diffusion en continu
Une fois votre flux de données créé, vous pouvez récupérer votre URL de point d’entrée de diffusion en continu. Vous utiliserez cette URL de point d’entrée pour abonner votre source à un webhook, ce qui permettra à votre source de communiquer avec Experience Platform.
Pour récupérer l’URL de votre point d’entrée de diffusion en continu, envoyez une requête GET au point d’entrée /flows et indiquez l’identifiant de votre flux de données.
Format d’API
GET /flows/{FLOW_ID}
Requête
curl -X GET \
'https://platform.adobe.io/data/foundation/flowservice/flows/993f908f-3342-4d9c-9f3c-5aa9a189ca1a' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
Réponse
Une réponse réussie renvoie des informations sur votre flux de données, y compris votre URL de point d’entrée, marquée comme inletUrl.
{
"items": [
{
"id": "993f908f-3342-4d9c-9f3c-5aa9a189ca1a",
"createdAt": 1669238699119,
"updatedAt": 1669238699119,
"createdBy": "acme@AdobeID",
"updatedBy": "acme@AdobeID",
"createdClient": "{CREATED_CLIENT}",
"updatedClient": "{UPDATED_CLIENT}",
"sandboxId": "{SANDBOX_ID}",
"sandboxName": "{SANDBOX_NAME}",
"imsOrgId": "{ORG_ID}",
"name": "Streaming Dataflow for a Streaming SDK source",
"description": "Streaming Dataflow for a Streaming SDK source",
"flowSpec": {
"id": "e77fde5a-22a8-11ed-861d-0242ac120002",
"version": "1.0"
},
"state": "enabled",
"version": "\"a1011225-0000-0200-0000-63c78ae60000\"",
"etag": "\"a1011225-0000-0200-0000-63c78ae60000\"",
"sourceConnectionIds": [
"246d052c-da4a-494a-937f-a0d17b1c6cf5"
],
"targetConnectionIds": [
"7c96c827-3ffd-460c-a573-e9558f72f263"
],
"inheritedAttributes": {
"properties": {
"isSourceFlow": true
},
"sourceConnections": [
{
"id": "246d052c-da4a-494a-937f-a0d17b1c6cf5",
"connectionSpec": {
"id": "bdb5b792-451b-42de-acf8-15f3195821de",
"version": "1.0"
}
}
],
"targetConnections": [
{
"id": "7c96c827-3ffd-460c-a573-e9558f72f263",
"connectionSpec": {
"id": "c604ff05-7f1a-43c0-8e18-33bf874cb11c",
"version": "1.0"
}
}
]
},
"options": {
"errorDiagnosticsEnabled": true,
"inletUrl": "https://dcs-int.adobedc.net/collection/ab65636c31778fb0455c439ffb48a5433a34d443f4c83c4b5beda9c5688797c5"
},
"transformations": [
{
"name": "Mapping",
"params": {
"mappingVersion": 0,
"mappingId": "bf5286a9c1ad4266baca76ba3adc9366"
}
}
],
"runs": "/runs?property=flowId==e1514b79-f031-43b4-aab5-381a42f86ad4",
"providerRefId": "c9809ab5-71e0-4c7f-887b-61c95e4e20b5",
"lastOperation": {
"started": 0,
"updated": 0,
"operation": "enable"
}
}
]
}
Intégration de LAVA à votre webhook
Dans la console LAVA, accédez à Resources > Data Export.
Sélectionnez Create New Export. Sélectionnez Adobe Source Connector comme type de destination, puis les données source à envoyer. Utilisez l’URL du point d’entrée de diffusion en continu et l’identifiant du flux de données.
Annexe
La section suivante fournit des informations sur les étapes que vous pouvez suivre pour surveiller, mettre à jour et supprimer votre flux de données.
Surveiller votre flux de données
Une fois votre flux de données créé, vous pouvez surveiller les données ingérées pour afficher des informations sur les exécutions du flux, le statut d’achèvement et les erreurs. Pour obtenir des exemples d’API complets, consultez le guide sur la surveillance des flux de données sources à l’aide de l’API.
Mettre à jour votre flux de données
Mettez à jour les détails de votre flux de données, tels que son nom et sa description, ainsi que son planning d’exécution et les jeux de mappages associés en envoyant une requête PATCH au point d’entrée /flows de l’API Flow Service, tout en fournissant l’identifiant de votre flux de données. Lors de l’exécution d’une requête PATCH, vous devez fournir le etag unique de votre flux de données dans l’en-tête If-Match. Pour obtenir des exemples d’API complets, consultez le guide sur la mise à jour des flux de données sources à l’aide de l’API.
Mettre à jour votre compte
Mettez à jour le nom, la description et les informations d’identification de votre compte source en adressant une requête PATCH à l’API Flow Service et en fournissant votre identifiant de connexion de base comme paramètre de requête. Lors de l’exécution d’une requête PATCH, vous devez indiquer le etag unique de votre compte source dans l’en-tête If-Match. Pour obtenir des exemples d’API complets, consultez le guide sur la mise à jour de votre compte source à l’aide de l’API.
Supprimer le flux de données
Supprimez votre flux de données en adressant une requête DELETE à l’API Flow Service et en fournissant l’identifiant du flux de données à supprimer dans le cadre du paramètre de requête. Pour obtenir des exemples d’API complets, consultez le guide sur la suppression de vos flux de données à l’aide de l’API.
Supprimer votre compte
Supprimez votre compte en adressant une requête DELETE à l’API Flow Service et en fournissant l’identifiant de connexion de base du compte que vous souhaitez supprimer. Pour obtenir des exemples d’API complets, consultez le guide sur la suppression de votre compte source à l’aide de l’API.