例: データ・フィルターのセットの自動生成
Jim は、国、都市、および州に基づくデータ・フィルターのセットを作成する必要があります。
Campaign では、すでに顧客テーブルがマップされ、オーディエンス・レベルが定義されています。
JDBC ドライバーの入手
Jim は、会社の顧客データベースが Microsoft SQL サーバーであることを知っています。彼は、適切なタイプ 4 のドライバーをダウンロードして、Marketing Platform がインストールされているマシンに配置し、ドライバーの名前とパスをメモに記録します。
- JDBC ドライバーのクラス名 - com.microsoft.sqlserver.jdbc.SQLServerDriver
- JDBC ドライバーのパス - C:toolsJavaMsJdbcsqljdbc.jar
情報の入手
Jim は、顧客データベースの名前、ホスト、およびポートの情報と、そのデータベースに接続するために必要な資格情報を入手します。
- データベース名 - 顧客
- データベース・ホスト名 - companyHost
- データベース・ポート - 1433
- ユーザー名 - sa
- パスワード - myPassword
Jim が会社の顧客データベースのデータを調べたところ、データ・フィルターを作成したいすべての国、都市、および州に顧客が存在していることがわかりました。そこで、データ・フィルター用の固定フィールドおよびプロファイル・フィールドを指定するために必要なフィールドを地理テーブルに入れることにしました。
以下の表は、顧客のフィールドについて Jim が入手する情報と、その Campaign マッピングを示します。
フィールド (物理名) |
フィールド (Campaign での名前) |
データ | データ型 |
---|---|---|---|
country | 国 |
|
java.lang.String |
city | 市区町村 | 個別の都市の有限セット | java.lang.String |
state | 状態 | 個別の州 (または国に応じて他の方法で名前が付けられた地域) の有限セット | java.lang.String |
hh_id | HouseholdID | 該当なし | java.lang.Long |
indiv_id | IndividualID | 該当なし | java.lang.Long |
Jim は、Campaign で使用されているオーディエンス名が、世帯 (household) と個人 (individual) であることを知ります。彼は、地理テーブルに 2 つのオーディエンス・フィールドが含まれることをメモに記録します。
- hh_id フィールドは世帯オーディエンスに対応します。
- 地理テーブルの indiv_id フィールドは、個人オーディエンスに対応します。
各オーディエンスに 1 つずつ、およびそれぞれの固定フィールドとプロファイル・フィールドに 1 つずつの論理フィールドを作成する必要があるので、Jim には合計 5 つの論理フィールドが必要なことがわかります。
また、データ・フィルターをデータ構成にグループ化しなければならないことも知っています。彼は、データ構成に Geographic という名前を付けることにしました。
これで Jim が XML を作成する準備ができました。
XML の作成
Jim が作成する XML は以下のとおりです。彼が入手した情報または使用を決定した情報に基づく値は、太字で示されています。
<ExecuteBatch>
<!-- ********************************** -->
<!-- Data configuration -->
<!-- ********************************** -->
<name>SeedData</name>
<operations>
<ExecuteBatch>
<name>DataFilters</name>
<operations>
<AddDataConfiguration>
<dataConfiguration>
<id>1</id>
<name>Geographic</name>
</dataConfiguration>
</AddDataConfiguration>
</operations>
</ExecuteBatch>
<!-- ********************************** -->
<!-- Logical fields -->
<!-- ********************************** -->
<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>
<!-- ********************************** -->
<!-- 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>
<FixedField>
<expression>France</expression>
<logicalFieldName>Country</logicalFieldName>
<physicalFieldName>country</physicalFieldName>
</FixedField>
<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>
<!-- ********************************************************* -->
<!-- Audience table associations -->
<!-- ********************************************************* -->
<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 での管理者権限を持つアカウントを使用して Marketing Platform にログインします。
グループがすでに Marketing Platform にセットアップされ、都市別にユーザーが割り当てられていることはわかっています。
そこで、「データ・フィルター」セクションに進み、自分のデータ・フィルターの国、都市、州の値がデータ・フィルターの拡張検索で使用可能であることを確認します。そして、合衆国の都市の 1 つ Boston を検索基準として使用して、データ・フィルターの検索を実行します。Boston のデータ・フィルターが検索結果に表示されます。
次に、Jim は Boston ユーザー・グループの検索を実行します。このグループは、Boston の顧客のマーケティングを担当するすべての現場マーケティング担当者を入れるために、Marketing Platform にセットアップ済みです。Boston グループが検索結果に表示されます。
次に、検索結果のグループとデータ・フィルターを選択し、「割り当て」ボタンをクリックして、グループをデータ・フィルターに割り当てます。
こうして、すべての割り当てが完了するまで、データ・フィルターとグループの検索を続行します。