Évaluation des violations de politique à l’aide de libellés d’utilisation des données
Vous pouvez évaluer les violations de politique en fonction de la présence d’un ensemble spécifique de libellés d’utilisation des données à l’aide du paramètre de requête duleLabels
dans une requête GET.
Format d’API
GET /marketingActions/core/{MARKETING_ACTION_NAME}/constraints?duleLabels={LABELS_LIST}
GET /marketingActions/custom/{MARKETING_ACTION_NAME}/constraints?duleLabels={LABELS_LIST}
Paramètre | Description |
---|---|
{MARKETING_ACTION_NAME} | Nom de l’action marketing à tester en fonction d’un ensemble de libellés d’utilisation des données. Vous pouvez récupérer une liste d’actions marketing disponibles en effectuant une requête GET au point d’entrée des actions marketing. |
{LABELS_LIST} | Liste de noms de libellés d’utilisation des données séparés par des virgules en fonction desquels tester l’action marketing. Par exemple : duleLabels=C1,C2,C3 Notez que les noms de libellés sont sensibles à la casse. Assurez-vous d’utiliser la casse appropriée lorsque vous les répertoriez dans le paramètre duleLabels . |
Requête
L’exemple de requête ci-dessous évalue une action marketing en fonction des libellés C1 et C3.
AND
et OR
dans l’expression des politiques. Dans l’exemple ci-dessous, si l’un des libellés (C1
ou C3
) était apparu seul dans la requête, l’action marketing n’aurait pas enfreint cette politique. Les deux libellés (C1
et C3
) sont nécessaires pour renvoyer la politique enfreinte. Assurez-vous d’évaluer soigneusement les politiques et de bien définir l’expression des politiques.curl -X GET \
'https://platform.adobe.io/data/foundation/dulepolicy/marketingActions/custom/sampleMarketingAction/constraints?duleLabels=C1,C3' \
-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 comprend un tableau violatedPolicies
, qui contient les détails des politiques enfreintes suite à l’exécution de l’action marketing par rapport aux libellés fournis. Si aucune politique n’est enfreinte, le tableau violatedPolicies
apparaît vide.
{
"timestamp": 1551134846737,
"clientId": "{CLIENT_ID}",
"userId": "{USER_ID}",
"imsOrg": "{ORG_ID}",
"marketingActionRef": "https://platform.adobe.io/marketingActions/custom/sampleMarketingAction",
"duleLabels": [
"C1",
"C3"
],
"violatedPolicies": [
{
"name": "Export Data to Third Party",
"status": "ENABLED",
"marketingActionRefs": [
"https://platform.adobe.io/data/foundation/dulepolicy/marketingActions/custom/sampleMarketingAction"
],
"description": "NEW content for description.",
"deny": {
"operator": "AND",
"operands": [
{
"label": "C1"
},
{
"operator": "OR",
"operands": [
{
"label": "C3"
},
{
"label": "C7"
}
]
}
]
},
"imsOrg": "{ORG_ID}",
"created": 1550703519823,
"createdClient": "{CREATED_CLIENT}",
"createdUser": "{CREATED_USER}",
"updated": 1550714340335,
"updatedClient": "{UPDATED_CLIENT}",
"updatedUser": "{UPDATED_USER}",
"_links": {
"self": {
"href": "https://platform.adobe.io/data/foundation/dulepolicy/policies/custom/5c6ddb9f5c404513dc2dc454"
}
},
"id": "5c6ddb9f5c404513dc2dc454"
}
]
}
Évaluation des violations de politique à l’aide de jeux de données
Vous pouvez évaluer les violations de politique en fonction d’un ensemble constitué d’un ou de plusieurs jeux de données à partir desquels collecter les libellés d’utilisation des données. Pour ce faire, une requête POST est exécutée au point d’entrée /constraints
pour une action marketing spécifique et une liste d’ID de jeu de données est fournie dans le corps de la requête.
Format d’API
POST /marketingActions/core/{MARKETING_ACTION_NAME}/constraints
POST /marketingActions/custom/{MARKETING_ACTION_NAME}/constraints
Paramètre | Description |
---|---|
{MARKETING_ACTION_NAME} | Nom de l’action marketing en fonction de laquelle tester un ou plusieurs jeux de données. Vous pouvez récupérer une liste d’actions marketing disponibles en effectuant une requête GET au point d’entrée des actions marketing. |
Requête
La requête suivante exécute l’action marketing crossSiteTargeting
par rapport à un ensemble de trois jeux de données. Cela permet d’évaluer les violations de politique.
curl -X POST \
https://platform.adobe.io/data/foundation/dulepolicy/marketingActions/custom/crossSiteTargeting/constraints \
-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 '[
{
"entityType": "dataSet",
"entityId": "5c423dc25f2f2e00005e2319"
},
{
"entityType": "dataSet",
"entityId": "5cc323e15410ef14b749481e"
},
{
"entityType": "dataSet",
"entityId": "5cc1fb685410ef14b748c55f"
}
]'
Propriété | Description |
---|---|
entityType | Type d’entité dont l’ID est indiqué dans la propriété entityId voisine. Actuellement, la seule valeur acceptée est dataSet . |
entityId | ID d’un jeu de données en fonction duquel tester l’action marketing. Une liste de jeux de données et de leurs ID correspondants peut être obtenue en effectuant une requête GET au point d’entrée /dataSets de l’API Catalog Service. Pour plus d’informations, consultez le guide sur la façon de répertorier les objets du Catalog. |
Réponse
Une réponse réussie comprend un tableau violatedPolicies
, qui contient les détails des politiques enfreintes suite à l’exécution de l’action marketing par rapport aux jeux de données fournis. Si aucune politique n’est enfreinte, le tableau violatedPolicies
apparaît vide.
{
"timestamp": 1556324277895,
"clientId": "{CLIENT_ID}",
"userId": "{USER_ID}",
"imsOrg": "{ORG_ID}",
"marketingActionRef": "https://platform.adobe.io:443/data/foundation/dulepolicy/marketingActions/custom/crossSiteTargeting",
"duleLabels": [
"C1",
"C2",
"C4",
"C5",
"C6"
],
"discoveredLabels": [
{
"entityType": "dataSet",
"entityId": "5c423dc25f2f2e00005e2319",
"dataSetLabels": {
"connection": {
"labels": []
},
"dataSet": {
"labels": [
"C6"
]
},
"fields": [
{
"labels": [
"C2",
"C5"
],
"path": "/properties/_customer"
},
{
"labels": [
"C4",
"C5"
],
"path": "/properties/geoUnit"
},
{
"labels": [
"C4"
],
"path": "/properties/identityMap"
},
{
"labels": [
"C4"
],
"path": "/properties/journeyAI"
},
{
"labels": [
"C5"
],
"path": "/properties/createdByBatchID"
},
{
"labels": [
"C5"
],
"path": "/properties/faxPhone"
}
]
}
},
{
"entityType": "dataSet",
"entityId": "5cc323e15410ef14b749481e",
"dataSetLabels": {
"connection": {
"labels": []
},
"dataSet": {
"labels": [
"C5"
]
},
"fields": [
{
"labels": [
"C2",
],
"path": "/properties/_customer"
},
{
"labels": [
"C5"
],
"path": "/properties/geoUnit"
},
{
"labels": [
"C1"
],
"path": "/properties/identityMap"
}
]
}
},
{
"entityType": "dataSet",
"entityId": "5cc1fb685410ef14b748c55f",
"dataSetLabels": {
"connection": {
"labels": []
},
"dataSet": {
"labels": [
"C5"
]
},
"fields": [
{
"labels": [
"C5"
],
"path": "/properties/createdByBatchID"
},
{
"labels": [
"C5"
],
"path": "/properties/faxPhone"
}
]
}
}
],
"violatedPolicies": [
{
"name": "Targeting Ads or Content",
"status": "ENABLED",
"marketingActionRefs": [
"https://platform.adobe.io:443/data/foundation/dulepolicy/marketingActions/custom/crossSiteTargeting"
],
"description": "Data cannot be used for targeting any ads or content, either on-site or cross-site.",
"deny": {
"operator": "AND",
"operands": [
{
"label": "C4"
},
{
"label": "C6"
}
]
},
"imsOrg": "{ORG_ID}",
"created": 1551141210463,
"createdClient": "{CREATED_CLIENT}",
"createdUser": "{CREATED_USER}",
"updated": 1551146178603,
"updatedClient": "{UPDATED_CLIENT}",
"updatedUser": "{UPDATED_USER}",
"_links": {
"self": {
"href": "https://platform.adobe.io:443/data/foundation/dulepolicy/policies/custom/5c74895a74744d13dc2d87cc"
}
},
"id": "5c74895a74744d13dc2d87cc"
}
]
}
Propriété | Description |
---|---|
duleLabels | L’objet de la réponse comprend un tableau duleLabels qui contient une liste consolidée de tous les libellés trouvés dans les jeux de données spécifiés. Cette liste inclut des libellés de jeu de données et de champ pour tous les champs du jeu de données. |
discoveredLabels | La réponse comprend également un tableau discoveredLabels contenant des objets pour chaque jeu de données, divisant les datasetLabels entre les libellés de jeu de données et les libellés de champ. Chaque libellé de champ indique le chemin d’accès au champ spécifique portant ce libellé. |
Évaluation des violations de politique à l’aide de champs de jeux de données spécifiques
Vous pouvez évaluer les violations de politique en fonction d’un sous-ensemble de champs d’un ou de plusieurs jeux de données, de sorte que seuls les libellés d’utilisation des données appliqués à ces champs soient évalués.
Lors de l’évaluation des politiques à l’aide de champs de jeu de données, considérez les points suivants :
- Les noms des champs sont sensibles à la casse : lorsque vous spécifiez des champs, ils doivent être écrits exactement comme ils apparaissent dans le jeu de données (par exemple,
firstName
contrefirstname
). - Héritage des libellés des jeux de données : les champs individuels d’un jeu de données héritent des libellés qui ont été appliqués au niveau du jeu de données. Si le retour de vos évaluations de politique ne s’effectue pas comme prévu, recherchez les libellés qui ont pu être hérités depuis le niveau des jeux de données vers les champs, en plus de ceux appliqués au niveau des champs.
Format d’API
POST /marketingActions/core/{MARKETING_ACTION_NAME}/constraints
POST /marketingActions/custom/{MARKETING_ACTION_NAME}/constraints
Paramètre | Description |
---|---|
{MARKETING_ACTION_NAME} | Nom de l’action marketing à tester par rapport à un sous-ensemble de champs de jeux de données. Vous pouvez récupérer une liste d’actions marketing disponibles en effectuant une requête GET au point d’entrée des actions marketing. |
Requête
La requête suivante teste l’action marketing crossSiteTargeting
sur un ensemble spécifique de champs appartenant à trois jeux de données. La payload est similaire à une demande d’évaluation impliquant uniquement des jeux de données, ajoutant des champs spécifiques pour chaque jeu de données où collecter les libellés.
curl -X POST \
https://platform.adobe.io/data/foundation/dulepolicy/marketingActions/custom/crossSiteTargeting/constraints \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '[
{
"entityType": "dataSet",
"entityId": "5c423dc25f2f2e00005e2319",
"entityMeta": {
"fields": [
"/properties/_customer",
"/properties/faxPhone"
]
}
},
{
"entityType": "dataSet",
"entityId": "5cc323e15410ef14b749481e",
"entityMeta": {
"fields": [
"/properties/_customer",
"/properties/geoUnit"
]
}
},
{
"entityType": "dataSet",
"entityId": "5cc1fb685410ef14b748c55f",
"entityMeta": {
"fields": [
"/properties/faxPhone"
]
}
}
]'
Propriété | Description |
---|---|
entityType | Type d’entité dont l’ID est indiqué dans la propriété entityId voisine. Actuellement, la seule valeur acceptée est dataSet . |
entityId | ID d’un jeu de données dont les champs doivent être évalués par rapport à l’action marketing. Une liste de jeux de données et de leurs ID correspondants peut être obtenue en effectuant une requête GET au point d’entrée /dataSets de l’API Catalog Service. Pour plus d’informations, consultez le guide sur la façon de répertorier les objets du Catalog. |
entityMeta.fields | Tableau de chemins d’accès à des champs spécifiques dans le schéma du jeu de données, fourni sous la forme de chaînes de pointeurs JSON. Consultez la section sur les pointeurs JSON dans le guide des principes de base de l’API pour obtenir plus d’informations sur la syntaxe acceptée pour ces chaînes. |
Réponse
Une réponse réussie comprend un tableau violatedPolicies
, qui contient les détails des politiques qui ont été enfreintes suite à l’exécution de l’action marketing par rapport aux champs du jeu de données fournis. Si aucune politique n’est enfreinte, le tableau violatedPolicies
apparaît vide.
En comparant l’exemple de réponse ci-dessous à la réponse impliquant uniquement des jeux de données, notez que la liste des libellés collectés est plus courte. La valeur discoveredLabels
pour chaque jeu de données a également été réduite, car elle inclut uniquement les champs spécifiés dans le corps de la requête. En outre, la politique Targeting Ads or Content
précédemment enfreinte nécessite la présentation des deux libellés C4 AND C6
. Elle n’est donc plus enfreinte, comme indiqué par le tableau violatedPolicies
vide.
{
"timestamp": 1556325503038,
"clientId": "{CLIENT_ID}",
"userId": "{USER_ID}",
"imsOrg": "{ORG_ID}",
"marketingActionRef": "https://platform.adobe.io:443/data/foundation/dulepolicy/marketingActions/custom/crossSiteTargeting",
"duleLabels": [
"C2",
"C5",
"C6"
],
"discoveredLabels": [
{
"entityType": "dataSet",
"entityId": "5c423dc25f2f2e00005e2319",
"dataSetLabels": {
"connection": {
"labels": []
},
"dataSet": {
"labels": [
"C6"
]
},
"fields": [
{
"labels": [
"C2",
"C5"
],
"path": "/properties/_customer"
},
{
"labels": [
"C5"
],
"path": "/properties/faxPhone"
}
]
}
},
{
"entityType": "dataSet",
"entityId": "5cc323e15410ef14b749481e",
"dataSetLabels": {
"connection": {
"labels": []
},
"dataSet": {
"labels": [
"C5"
]
},
"fields": [
{
"labels": [
"C2",
"C5"
],
"path": "/properties/_customer"
},
{
"labels": [
"C5"
],
"path": "/properties/geoUnit"
}
]
}
},
{
"entityType": "dataSet",
"entityId": "5cc1fb685410ef14b748c55f",
"dataSetLabels": {
"connection": {
"labels": []
},
"dataSet": {
"labels": [
"C5"
]
},
"fields": [
{
"labels": [
"C5"
],
"path": "/properties/faxPhone"
}
]
}
}
],
"violatedPolicies": []
}
Évaluation des politiques en bloc
Le point d’entrée /bulk-eval
vous permet d’exécuter plusieurs traitements d’évaluation dans un seul appel API.
Format d’API
POST /bulk-eval
Requête
La payload d’une demande d’évaluation en bloc doit être un tableau d’objets, où chacun représente un traitement d’évaluation à exécuter. Pour les traitements d’évaluation basés sur les jeux de données et les champs, un tableau entityList
doit être fourni. Pour les traitements d’évaluation basés sur les libellés d’utilisation des données, un tableau labels
doit être fourni.
entityList
et un tableau labels
, une erreur se produit. Si vous souhaitez évaluer la même action marketing en fonction des jeux de données et des libellés, vous devez inclure des traitements d’évaluation distincts pour cette action marketing.curl -X POST \
https://platform.adobe.io/data/foundation/dulepolicy/bulk-eval \
-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 '[
{
"evalRef": "https://platform.adobe.io:443/data/foundation/dulepolicy/marketingActions/core/emailTargeting/constraints",
"includeDraft": false,
"labels": [
"C1",
"C2",
"C3"
]
},
{
"evalRef": "https://platform.adobe.io:443/data/foundation/dulepolicy/marketingActions/core/emailTargeting/constraints",
"includeDraft": false,
"entityList": [
{
"entityType": "dataSet",
"entityId": "5b67f4dd9f6e710000ea9da4",
"entityMeta": {
"fields": [
"address"
]
}
}
]
}
]'
Propriété | Description |
---|---|
evalRef | URI de l’action marketing à tester par rapport aux libellés ou aux jeux de données en cas de violations de politique. |
includeDraft | Par défaut, seules les politiques activées participent à l’évaluation. Si la valeur includeDraft est définie sur true , les politiques dont l’état est défini sur DRAFT participent également. |
labels | Tableau de libellés d’utilisation des données en fonction desquels tester l’action marketing. IMPORTANT : lors de l’utilisation de cette propriété, une propriété entityList ne doit PAS être incluse dans le même objet. Pour évaluer la même action marketing à l’aide de jeux de données et/ou de champs, vous devez inclure un objet distinct dans la payload de requête qui contient un tableau entityList . |
entityList | Tableau de jeux de données et de champs spécifiques (facultatifs) à ces jeux de données en fonction desquels tester l’action marketing. IMPORTANT : lors de l’utilisation de cette propriété, une propriété labels ne doit PAS être incluse dans le même objet. Pour évaluer la même action marketing à l’aide de libellés d’utilisation de données spécifiques, vous devez inclure un objet distinct dans la payload de requête qui contient un tableau labels . |
entityType | Type d’entité en fonction de laquelle tester l’action marketing. Actuellement, seul dataSet est pris en charge. |
entityId | ID d’un jeu de données en fonction duquel tester l’action marketing. |
entityMeta.fields | (Facultatif) Liste de champs spécifiques dans le jeu de données en fonction desquels tester l’action marketing. |
Réponse
Une réponse réussie renvoie un tableau reprenant les résultats de l’évaluation, où chaque résultat représente un traitement d’évaluation de politique envoyé dans la requête.
[
{
"status": 200,
"body": {
"timestamp": 1595866566165,
"clientId": "{CLIENT_ID}",
"userId": "{USER_ID}",
"imsOrg": "{ORG_ID}",
"sandboxName": "prod",
"marketingActionRef": "https://platform.adobe.io:443/data/foundation/dulepolicy/marketingActions/core/emailTargeting",
"duleLabels": [
"C1",
"C2",
"C3"
],
"violatedPolicies": []
}
},
{
"status": 200,
"body": {
"timestamp": 1595866566165,
"clientId": "{CLIENT_ID}",
"userId": "{USER_ID}",
"imsOrg": "{ORG_ID}",
"sandboxName": "prod",
"marketingActionRef": "https://platform.adobe.io:443/data/foundation/dulepolicy/marketingActions/core/emailTargeting",
"duleLabels": [
"C1",
"C2"
],
"discoveredLabels": [
{
"entityType": "dataset",
"entityId": "5b67f4dd9f6e710000ea9da4",
"dataSetLabels": {
"connection": {
"labels": [
]
},
"dataset": {
"labels": [
"C1",
"C2"
]
},
"fields": []
}
}
],
"violatedPolicies": [
{
"name": "Email Policy",
"status": "DRAFT",
"marketingActionRefs": [
"https://platform.adobe.io:443/data/foundation/dulepolicy/marketingActions/core/emailTargeting"
],
"description": "Conditions under which we won't send marketing-based email",
"deny": {
"label": "C1",
"operator": "AND",
"operands": [
{
"label": "C1"
},
{
"label": "C3"
}
]
},
"id": "76131228-7654-11e8-adc0-fa7ae01bbebc",
"imsOrg": "{ORG_ID}",
"created": 1529696681413,
"createdClient": "{CLIENT_ID}",
"createdUser": "{USER_ID}",
"updated": 1529697651972,
"updatedClient": "{CLIENT_ID}",
"updatedUser": "{USER_ID}",
"_links": {
"self": {
"href": "./76131228-7654-11e8-adc0-fa7ae01bbebc"
}
}
}
]
}
}
]
Évaluation des politiques pour Real-Time Customer Profile
L’API Policy Service peut également servir à vérifier les violations de politique impliquant l’utilisation de segments de Real-Time Customer Profile. Pour plus d’informations, consultez le tutoriel sur l’application de la conformité à l’utilisation des données pour les segments d’audience.