合作伙伴架构配置
Experience Platform使用架构以一致且可重用的方式描述数据结构。 当数据被摄取到Platform中时,它会根据XDM架构进行构建。 有关架构组合模型的更多信息,包括设计原则和最佳实践,请参阅架构组合的基础知识。
使用Destination SDK构建目标时,您可以定义自己的合作伙伴架构以供目标平台使用。 这使用户能够将配置文件属性从Platform映射到目标平台可识别的特定字段,所有这些字段均在Platform UI中。
在为目标配置合作伙伴架构时,您可以优化目标平台支持的字段映射,例如:
- 允许用户将
phoneNumber
XDM属性映射到目标平台支持的phone
属性。 - 创建动态合作伙伴架构,Experience Platform可以动态调用这些架构以检索目标中所有受支持属性的列表。
- 定义目标平台所需的必填字段映射。
若要了解此组件在何处适合使用Destination SDK创建的集成,请参阅配置选项文档中的关系图,或参阅如何使用Destination SDK配置基于文件的目标的指南。
您可以通过/authoring/destinations
端点配置架构设置。 有关详细的API调用示例,请参阅以下API参考页面,您可以在其中配置此页面中显示的组件。
本文介绍了可用于目标的所有受支持的架构配置选项,并显示了客户将在Platform UI中看到的内容。
支持的集成类型 supported-integration-types
有关哪些类型的集成支持此页面上描述的功能,请参阅下表。
支持的架构配置 supported-schema-types
Destination SDK支持多种架构配置:
- 静态架构是通过
schemaConfig
部分中的profileFields
数组定义的。 在静态架构中,您定义了profileFields
数组中应显示在Experience PlatformUI中的每个目标属性。 如果需要更新架构,您必须更新目标配置。 - 动态架构使用名为动态架构服务器的其他目标服务器类型来动态检索支持的目标属性,并根据您自己的API生成架构。 动态架构不使用
profileFields
数组。 如果需要更新架构,则无需更新目标配置。 动态架构服务器而是从API中检索更新的架构。 - 在架构配置中,您可以选择添加所需的(或预定义的)映射。 用户可以在Platform UI中查看这些映射,但在设置与目标的连接时,无法修改这些映射。 例如,您可以强制电子邮件地址字段始终发送到目标。
schemaConfig
部分根据所需的架构类型使用多个配置参数,如下部分所示。
创建静态架构 attributes-schema
要创建具有配置文件属性的静态架构,请在profileFields
数组中定义目标属性,如下所示。
"schemaConfig":{
"profileFields":[
{
"name":"phoneNo",
"title":"phoneNo",
"description":"This is a fixed attribute on your destination side that customers can map profile attributes to. For example, the mobilePhone.number value in Experience Platform could be phoneNo on your side.",
"type":"string",
"isRequired":false,
"readOnly":false,
"hidden":false
},
{
"name":"firstName",
"title":"firstName",
"description":"This is a fixed attribute on your destination side that customers can map profile attributes to. For example, the person.name.firstName value in Experience Platform could be firstName on your side.",
"type":"string",
"isRequired":false,
"readOnly":false,
"hidden":false
},
{
"name":"lastName",
"title":"lastName",
"description":"This is a fixed attribute on your destination side that customers can map profile attributes to. For example, the person.name.lastName value in Experience Platform could be phoneNo on your side.",
"type":"string",
"isRequired":false,
"readOnly":false,
"hidden":false
}
],
"useCustomerSchemaForAttributeMapping":false,
"profileRequired":true,
"segmentRequired":true,
"identityRequired":true,
"segmentNamespaceAllowList": ["someNamespace"],
"segmentNamespaceDenyList": ["someOtherNamespace"]
}
profileFields
profileFields
数组时,可以完全省略useCustomerSchemaForAttributeMapping
参数。useCustomerSchemaForAttributeMapping
启用或禁用从客户架构到您在profileFields
数组中定义的属性的映射。
- 如果设置为
true
,则用户仅在映射字段中看到源列。profileFields
不适用于这种情况。 - 如果设置为
false
,则用户可以将源属性从其架构映射到您在profileFields
数组中定义的属性。
默认值为 false
。
profileRequired
true
。segmentRequired
true
。segmentNamespaceAllowList
segmentNamespaceDenyList
.一起使用
示例:
"segmentNamespaceAllowList": ["AudienceManager"]
将允许用户仅将受众从AudienceManager
命名空间映射到此目标。要允许用户将任何受众导出到您的目标,您可以忽略此参数。
如果您的配置中同时缺少
segmentNamespaceAllowList
和segmentNamespaceDenyList
,则用户将只能导出源自分段服务的受众。segmentNamespaceDenyList
segmentNamespaceAllowed
一起使用。示例:
"segmentNamespaceDenyList": ["AudienceManager"]
将阻止用户将受众从AudienceManager
命名空间映射到此目标。要允许用户将任何受众导出到您的目标,您可以忽略此参数。
如果您的配置中同时缺少
segmentNamespaceAllowed
和segmentNamespaceDenyList
,则用户将只能导出源自分段服务的受众。若要允许导出所有受众,而不管其来源如何,请设置
"segmentNamespaceDenyList":[]
。生成的UI体验如下图所示。
当用户选择目标映射时,他们可以看到profileFields
数组中定义的字段。
选择属性后,他们可以在目标字段列中看到这些属性。
创建动态架构 dynamic-schema-configuration
Destination SDK支持创建动态合作伙伴架构。 与静态架构相反,动态架构不使用profileFields
数组。 动态架构会改用动态架构服务器,该服务器会连接到您自己的API,并在其中检索架构配置。
在动态架构配置中,profileFields
数组已由dynamicSchemaConfig
部分替换,如下所示。
"schemaConfig":{
"dynamicSchemaConfig":{
"dynamicEnum": {
"authenticationRule":"CUSTOMER_AUTHENTICATION",
"destinationServerId":"DYNAMIC_SCHEMA_SERVER_ID",
"value": "Schema Name",
"responseFormat": "SCHEMA"
}
},
"profileRequired":true,
"segmentRequired":true,
"identityRequired":true
}
dynamicEnum.authenticationRule
dynamicEnum.destinationServerId
instanceId
。 此目标服务器包括API端点,Experience Platform将调用该API端点以检索动态架构。dynamicEnum.value
dynamicEnum.responseFormat
SCHEMA
。profileRequired
true
。segmentRequired
true
。必需的映射 required-mappings
在架构配置中,除了静态或动态架构外,您还可以选择添加所需的(或预定义的)映射。 用户可以在Platform UI中查看这些映射,但在设置与目标的连接时,无法修改这些映射。
例如,您可以强制电子邮件地址字段始终发送到目标。
- 您可以配置必填源字段和必填目标字段。 在这种情况下,用户无法编辑或选择这两个字段中的任何一个,并且只能查看所选内容。
- 您只能配置必需的目标字段。 在这种情况下,允许用户选择要映射到目标的源字段。
请参阅下面的两个架构配置示例,其中包含所需的映射,以及在将数据激活到批处理目标工作流的映射步骤中这些配置的外观。
以下示例显示了所需的源映射和目标映射。 当源字段和目标字段均指定为必需映射时,用户无法选择或编辑这两个字段中的任何一个,并且只能查看预定义的选择。
code language-json |
---|
|
table 0-row-4 1-row-4 2-row-4 3-row-4 4-row-4 layout-auto | |||
---|---|---|---|
参数 | 类型 | 必需/可选 | 描述 |
requiredMappingsOnly |
布尔值 | 可选 | 当此项设置为true时,除了您在requiredMappings 数组中定义的必需映射之外,用户无法映射激活流中的其他属性和身份。 |
requiredMappings.sourceType |
字符串 | 必需 |
指示
|
requiredMappings.source |
字符串 | 必需 |
指示源字段的值。 支持的值类型:
|
requiredMappings.destination |
字符串 | 必需 | 指示目标字段的值。 当源字段和目标字段均指定为必需映射时,用户无法选择或编辑这两个字段中的任何一个,并且只能查看所选内容。 |
因此,Platform UI中的 Source字段 和 Target字段 部分均呈灰显状态。
以下示例显示了所需的目标映射。 如果仅将目标字段指定为必填字段,则用户可以选择要映射到它的源字段。
code language-json |
---|
|
table 0-row-4 1-row-4 2-row-4 3-row-4 4-row-4 layout-auto | |||
---|---|---|---|
参数 | 类型 | 必需/可选 | 描述 |
requiredMappingsOnly |
布尔值 | 可选 | 当此项设置为true时,除了您在requiredMappings 数组中定义的必需映射之外,用户无法映射激活流中的其他属性和身份。 |
requiredMappings.destination |
字符串 | 必需 | 指示目标字段的值。 当仅指定目标字段时,用户可以选择要映射到目标的源字段。 |
mandatoryRequired |
布尔值 | 可选 | 指示映射是否应标记为必需属性。 |
primaryKeyRequired |
布尔值 | 可选 | 指示映射是否应标记为重复数据删除键。 |
因此,Platform UI中的 Target字段 部分呈灰显状态,而 Source字段 部分处于活动状态,用户可以与其进行交互。 必需键 和 重复数据删除键 选项处于活动状态,用户无法更改它们。
配置对外部受众的支持 external-audiences
要将您的目标配置为支持激活外部生成的受众,请在schemaConfig
部分中包含以下代码片段。
"schemaConfig": {
"segmentNamespaceDenyList": [],
...
}
请参阅本页上面表中的属性说明,了解有关segmentNamespaceDenyList
功能的更多信息。
后续步骤 next-steps
阅读本文后,您应该更好地了解Destination SDK支持哪些架构类型,以及如何配置架构。
要了解有关其他目标组件的更多信息,请参阅以下文章: