使用数据集评估策略违规
您可以根据一个或多个数据集集评估策略违规,可以从这些数据集收集数据使用标签。 这是通过对特定营销操作的/constraints
端点执行POST请求并在请求正文中提供数据集ID的列表来完成的。
API格式
POST /marketingActions/core/{MARKETING_ACTION_NAME}/constraints
POST /marketingActions/custom/{MARKETING_ACTION_NAME}/constraints
参数 | 描述 |
---|---|
{MARKETING_ACTION_NAME} | 针对一个或多个数据集测试的营销操作的名称。 您可以通过向营销操作终结点🔗发出GET请求来检索可用营销操作的列表。 |
请求
以下请求对一组三个数据集执行crossSiteTargeting
营销操作以评估任何策略违规。
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"
}
]'
属性 | 描述 |
---|---|
entityType | ID在同级entityId 属性中指示的实体的类型。 当前,唯一接受的值为dataSet 。 |
entityId | 测试营销操作所针对的数据集的ID。 通过向Catalog Service API中的/dataSets 端点发出GET请求,可以获得数据集及其相应ID的列表。 有关详细信息,请参阅列表 Catalog 对象指南。 |
响应
成功的响应包括violatedPolicies
数组,其中包含对提供的数据集执行营销操作所违反的策略的详细信息。 如果未违反任何策略,则violatedPolicies
数组将为空。
{
"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"
}
]
}
属性 | 描述 |
---|---|
duleLabels | 响应对象包含一个duleLabels 数组,该数组包含在指定数据集中找到的所有标签的统一列表。 此列表在数据集中的所有字段上包含数据集级别和字段级别的标签。 |
discoveredLabels | 响应还包括一个包含每个数据集的对象的discoveredLabels 数组,其中显示datasetLabels 划分为数据集级别和字段级别的标签。 每个字段级标签都显示了带有该标签的特定字段的路径。 |
使用特定数据集字段评估策略违规
您可以基于一个或多个数据集中的字段子集评估策略违规,以便仅评估应用这些字段的数据使用标签。
在使用数据集字段评估策略时,请牢记以下几点:
- 字段名称区分大小写:提供字段时,必须完全按照它们在数据集中的显示方式写入(例如,
firstName
与firstname
)。 - 数据集标签继承:数据集中的各个字段继承已在数据集级别应用的任何标签。 如果策略评估未按预期返回,请务必检查任何可能从数据集级别向下继承到字段的标签,以及在字段级别应用的标签。
API格式
POST /marketingActions/core/{MARKETING_ACTION_NAME}/constraints
POST /marketingActions/custom/{MARKETING_ACTION_NAME}/constraints
参数 | 描述 |
---|---|
{MARKETING_ACTION_NAME} | 针对数据集字段子集进行测试的营销操作的名称。 您可以通过向营销操作终结点🔗发出GET请求来检索可用营销操作的列表。 |
请求
以下请求对属于三个数据集的特定字段集测试营销操作crossSiteTargeting
。 有效负载类似于仅涉及数据集的评估请求,为要从中收集标签的每个数据集添加特定字段。
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"
]
}
}
]'
属性 | 描述 |
---|---|
entityType | ID在同级entityId 属性中指示的实体的类型。 当前,唯一接受的值为dataSet 。 |
entityId | 要根据营销操作评估其字段的数据集的ID。 通过向Catalog Service API中的/dataSets 端点发出GET请求,可以获得数据集及其相应ID的列表。 有关详细信息,请参阅列表 Catalog 对象指南。 |
entityMeta.fields | 数据集架构中特定字段的路径数组,以JSON指针字符串形式提供。 有关这些字符串的接受语法的详细信息,请参阅API基础指南中有关JSON指针的部分。 |
响应
成功的响应包括violatedPolicies
数组,其中包含对提供的数据集字段执行营销操作所违反的策略的详细信息。 如果未违反任何策略,则violatedPolicies
数组将为空。
将下面的示例响应与仅涉及数据集🔗的响应进行比较,请注意,收集的标签列表较短。 还减少了每个数据集的discoveredLabels
,因为它们仅包含在请求正文中指定的字段。 此外,以前违反的策略Targeting Ads or Content
要求同时存在C4 AND C6
标签,因此不再违反violatedPolicies
空数组所指示的策略。
{
"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": []
}
批量评估策略
/bulk-eval
终结点允许您在一个API调用中运行多个评估作业。
API格式
POST /bulk-eval
请求
批量评估请求的有效负载应为一组对象;每个评估作业执行一个对象。 对于基于数据集和字段进行评估的作业,必须提供entityList
数组。 对于基于数据使用标签进行评估的作业,必须提供labels
数组。
entityList
和labels
数组,则会导致错误。 如果您要根据数据集和标签来评估相同的营销操作,则必须为该营销操作包含单独的评估作业。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"
]
}
}
]
}
]'
属性 | 描述 |
---|---|
evalRef | 营销操作的URI,用于针对违反策略的标签或数据集进行测试。 |
includeDraft | 默认情况下,只有启用的策略才参与评估。 如果includeDraft 设置为true ,则处于DRAFT 状态的策略也将参与。 |
labels | 用于测试营销操作的数据使用标签数组。 重要信息:使用此属性时,同一对象中不能包含 entityList 属性。 要使用数据集和/或字段评估相同的营销操作,您必须在包含entityList 数组的请求有效负载中包含单独的对象。 |
entityList | 这些数据集内用于测试营销操作的数据集和(可选)特定字段的数组。 重要信息:使用此属性时, labels 属性不能包含在同一个对象中。 要使用特定数据使用标签评估相同的营销操作,您必须在包含labels 数组的请求有效负载中包含单独的对象。 |
entityType | 测试营销操作的实体类型。 当前仅支持dataSet 。 |
entityId | 测试营销操作所针对的数据集的ID。 |
entityMeta.fields | (可选)数据集中用于测试营销操作的特定字段的列表。 |
响应
成功的响应将返回一系列评估结果;请求中发送的每个策略评估作业各一个。
[
{
"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"
}
}
}
]
}
}
]
Real-Time Customer Profile的策略评估
Policy Service API还可用于检查涉及使用Real-Time Customer Profile区段的策略违规。 有关详细信息,请参阅有关强制受众区段的数据使用合规性的教程。