示例:自动生成数据过滤器集合
Jim 需要根据国家/地区、城市和州/省创建数据过滤器集合。
Campaign 中,已映射客户表且已定义受众级别。
获取 JDBC 驱动程序
Jim 知道其公司的客户数据库是 Microsoft SQL Server。他下载适当的 4 类驱动程序并将它放置在安装了 Marketing Platform 的机器上,并记下了驱动程序的名称和路径。
*
JDBC 驱动程序类名 – com.microsoft.sqlserver.jdbc.SQLServerDriver
*
JDBC 驱动程序路径 – C:\tools\Java\MsJdbc\sqljdbc.jar
获取信息
Jim 获取客户数据库的名称、主机和端口,以及连接至该数据库所需的凭证。
*
*
*
*
*
Jim 查看其公司客户数据库中的数据并看到客户来自要为其创建数据过滤器的每个国家/地区、城市和州/省中。他确定“地理”表包含需要为数据过滤器指定固定字段和概要文件字段的字段。
下表说明 Jim 获取的关于客户字段及其 Campaign 映射的信息。
Campaign 中的名称)
Jim 了解到在 Campaign 中使用的受众名称是家庭和个人。他记下“地理”表包含两个受众字段。
*
hh_id field 对应于家庭受众。
*
“地理”表中的 indiv_id 字段对应于个人受众。
因为 Jim 必须为每个受众创建一个逻辑字段,并且必须为每个固定字段和概要文件字段各创建一个逻辑字段,所以他知道他一共需要五个逻辑字段。
Jim 还知道他需要将数据配置中的数据过滤器进行分组。他决定将他的数据配置命名为“地理”。
Jim 现在已准备就绪,可以创建 XML 了。
创建 XML
以下是 Jim 创建的 XML。基于他获取或决定要使用的信息的值以粗体显示。
<?xml version="1.0" encoding="UTF-8"?>
<ExecuteBatch>
<name>SeedData</name>
<operations>
<!-- Create the data configuration that groups related Data Filters -->
<ExecuteBatch>
<name>DataFilters</name>
<operations>
<AddDataConfiguration>
<dataConfiguration>
<id>1</id>
<name>
Geographic</name>
</dataConfiguration>
</AddDataConfiguration>
</operations>
</ExecuteBatch>
<!-- Add logical fields used to define data filters -->
<AddLogicalFields>
<logicalFields>
<LogicalField>
<id>1</id>
<name>
Country</name>
<type>java.lang.String</type>
</LogicalField>
<LogicalField>
<id>2</id>
<name>City</name>
<type>java.lang.String</type>
</LogicalField>
<LogicalField>
<id>3</id>
<name>State</name>
<type>java.lang.String</type>
</LogicalField>
<LogicalField>
<id>4</id>
<name>HouseholdID</name>
<type>java.lang.Long</type>
</LogicalField>
<LogicalField>
<id>5</id>
<name>IndividualID</name>
<type>java.lang.Long</type>
</LogicalField>
</logicalFields>
</AddLogicalFields>
<!-- Provide information needed to generate data filters -->
<GenerateDataFilters>
<!-- Specify the table to be scanned for unique combinations of values
from which data filters will be defined. -->
<tableName>
Geographic</tableName>
<!-- Identify the data configuration
with which generated data filters will be associated. -->
<configurationName>Geographic</configurationName>
<!-- Specify the data source connection information. -->
<jdbcUrl>jdbc:sqlserver://localhost:1433;databaseName=Customers</jdbcUrl>
<jdbcUser>sa</jdbcUser>
<jdbcPassword>myPassword</jdbcPassword>
<jdbcDriverClass>
com.microsoft.sqlserver.jdbc.SQLServerDriver</jdbcDriverClass>
<jdbcDriverClassPath>
<string>C:\tools\Java\MsJdbc\sqljdbc.jar</string>
</jdbcDriverClassPath>
<!-- Specify the fixed fields. -->
<fixedFields>
<FixedField>
<expression>
USA</expression>
<logicalFieldName>Country</logicalFieldName>
<physicalFieldName>country</physicalFieldName>
</FixedField>
</fixedFields>
<fixedFields>
<FixedField>
<expression>France</expression>
<logicalFieldName>Country</logicalFieldName>
<physicalFieldName>country</physicalFieldName>
</FixedField>
</fixedFields>
<fixedFields>
<FixedField>
<expression>Britain</expression>
<logicalFieldName>Country</logicalFieldName>
<physicalFieldName>country</physicalFieldName>
</FixedField>
</fixedFields>
<!-- Specify the profile fields. -->
<profileFields>
<ProfileField>
<logicalFieldName>
State</logicalFieldName>
<physicalFieldName>state</physicalFieldName>
</ProfileField>
<ProfileField>
<logicalFieldName>City</logicalFieldName>
<physicalFieldName>city</physicalFieldName>
</ProfileField>
</profileFields>
</GenerateDataFilters>
<!-- Map physical to logical fields -->
<ExecuteBatch>
<name>addTables</name>
<operations>
<AddDataTable>
<dataTable>
<id>1</id>
<name>
Geographic</name>
<fields>
<TableField>
<name>country</name>
<logicalFieldId>1</logicalFieldId>
</TableField>
<TableField>
<name>city</name>
<logicalFieldId>2</logicalFieldId>
</TableField>
<TableField>
<name>state</name>
<logicalFieldId>3</logicalFieldId>
</TableField>
<TableField>
<name>hh_id</name>
<logicalFieldId>4</logicalFieldId>
</TableField>
<TableField>
<name>indiv_id</name>
<logicalFieldId>5</logicalFieldId>
</TableField>
</fields>
</dataTable>
</AddDataTable>
</operations>
</ExecuteBatch>
<!--Add Audiences-->
<ExecuteBatch>
<name>addAudiences</name>
<operations>
<AddAudience>
<audience>
<id>1</id>
<name>
household</name>
<fields>
<AudienceField>
<logicalFieldId>4</logicalFieldId>
<fieldOrder>0</fieldOrder>
</AudienceField>
</fields>
</audience>
</AddAudience>
<AddAudience>
<audience>
<id>2</id>
<name>individual</name>
<fields>
<AudienceField>
<logicalFieldId>5</logicalFieldId>
<fieldOrder>0</fieldOrder>
</AudienceField>
</fields>
</audience>
</AddAudience>
</operations>
</ExecuteBatch>
<!-- Associate table-audience pairs with data configuration) -->
<ExecuteBatch>
<name>addAudienceTableAssociations</name>
<operations>
<AddAudienceTableAssociation>
<audienceTableAssociation>
<audienceId>1</audienceId>
<tableId>1</tableId>
<configId>1</configId>
</audienceTableAssociation>
</AddAudienceTableAssociation>
<AddAudienceTableAssociation>
<audienceTableAssociation>
<audienceId>2</audienceId>
<tableId>1</tableId>
<configId>1</configId>
</audienceTableAssociation>
</AddAudienceTableAssociation>
</operations>
</ExecuteBatch>
</operations>
</ExecuteBatch>
填充系统表
Jim 将他的数据过滤器 XML 文件命名为 geographicDataFilters.xml 并将它保存在其 Marketing Platform 安装下面的 tools/bin 目录中。他打开命令提示符并使用 datafilteringScriptTool 实用程序来填充数据过滤器系统表。
该实用程序会创建许多数据过滤器。在每个数据过滤器中,标准是国家/地区(固定字段)和在实用程序查询数据库以获得包含固定字段值的记录时获取的城市和州/省的唯一组合。城市和州/省的所有唯一组合用于指定为固定字段的每个国家/地区。
将用户和组分配给数据过滤器
最后,Jim 使用在 Marketing Platform 中具有 Admin 访问权的帐户身份登录 Marketing Platform
他知道已在 Marketing Platform 中使用按城市分配的用户设置组。
他转至“数据过滤器”部分并看到其数据过滤器中的国家/地区、城市、州/省值在数据过滤器的高级搜索中可用。他使用美国的一个城市“波士顿”作为搜索标准执行数据过滤器搜索。“波士顿”的数据过滤器出现在搜索结果中。
接下来,Jim 执行“波士顿”用户组搜索,他已在 Marketing Platform 中设置该用户组以保存负责向“波士顿”中的客户营销的所有现场市场营销人员。“波士顿”组出现在搜索结果中。
然后,Jim 在搜索结果中选择该组和数据过滤器,并通过单击“分配”按钮将该组分配给该数据过滤器。
他继续执行数据过滤器和组搜索,直到完成所有分配为止。