例: データ・フィルターのセットの自動生成
Jim は、国、都市、および州に基づくデータ・フィルターのセットを作成する必要があります。
Campaign では、すでに顧客テーブルがマップされ、オーディエンス・レベルが定義されています。
JDBC ドライバーの入手
Jim は、会社の顧客データベースが Microsoft SQL サーバーであることを知っています。彼は、適切なタイプ 4 のドライバーをダウンロードして、Marketing Platform がインストールされているマシンに配置し、ドライバーの名前とパスをメモに記録します。
*
JDBC ドライバーのクラス名 – com.microsoft.sqlserver.jdbc.SQLServerDriver
*
JDBC ドライバーのパス – C:¥tools¥Java¥MsJdbc¥sqljdbc.jar
情報の入手
Jim は、顧客データベースの名前、ホスト、およびポートの情報と、そのデータベースに接続するために必要な資格情報を入手します。
*
*
*
*
*
Jim が会社の顧客データベースのデータを調べたところ、データ・フィルターを作成したいすべての国、都市、および州に顧客が存在していることがわかりました。そこで、データ・フィルター用の固定フィールドおよびプロファイル・フィールドを指定するために必要なフィールドを地理テーブルに入れることにしました。
以下の表は、顧客のフィールドについて Jim が入手する情報と、その Campaign マッピングを示します。
(Campaign での名前)
*
Jim は、Campaign で使用されているオーディエンス名が、世帯 (household) と個人 (individual) であることを知ります。 彼は、地理テーブルに 2 つのオーディエンス・フィールドが含まれることをメモに記録します。
*
hh_id フィールド は、世帯オーディエンスに対応します。
*
地理テーブルの indiv_id フィールドは、個人オーディエンスに対応します。
各オーディエンスに 1 つずつ、およびそれぞれの固定フィールドとプロファイル・フィールドに 1 つずつの論理フィールドを作成する必要があるので、Jim には合計 5 つの論理フィールドが必要なことがわかります。
また、データ・フィルターをデータ構成にグループ化しなければならないことも知っています。彼は、データ構成に Geographic という名前を付けることにしました。
これで Jim が XML を作成する準備ができまし。
XML の作成
Jim が作成する XML は以下のとおりです。彼が入手した情報または使用を決定した情報に基づく値は、 太字で示されています。
<?xml version="1.0" encoding="UTF-8"?>
<ExecuteBatch>
<name>SeedData</name>
<operations>
<!-- 関連データ・フィルターをグループ化するデータ構成を作成する -->
<ExecuteBatch>
<name>DataFilters</name>
<operations>
<AddDataConfiguration>
<dataConfiguration>
<id>1</id>
<name>
Geographic</name>
</dataConfiguration>
</AddDataConfiguration>
</operations>
</ExecuteBatch>
<!-- データ・フィルターを定義するために使用する論理フィールドを追加する>
<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>
<!-- データ・フィルターの生成に必要な情報を提供する -->
<GenerateDataFilters>
<!-- データ・フィルターの定義の元となる値の組み合わせが固有かどうか調べるために
テーブルのスキャンを指定する-->
<tableName>
Geographic</tableName>
<!-- 生成されたデータ・フィルターを関連付けるデータ構成を識別する -->
<configurationName>Geographic</configurationName>
<!-- データ・ソース接続情報を指定する-->
<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>
<!-- 固定フィールドを指定する -->
<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>
<!-- プロファイル・フィールドを指定する -->
<profileFields>
<ProfileField>
<logicalFieldName>
State</logicalFieldName>
<physicalFieldName>state</physicalFieldName>
</ProfileField>
<ProfileField>
<logicalFieldName>City</logicalFieldName>
<physicalFieldName>city</physicalFieldName>
</ProfileField>
</profileFields>
</GenerateDataFilters>
<!-- 物理フィールドを論理フィールドにマップする -->
<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>
<!--オーディエンスを追加する -->
<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>
<!-- テーブルとオーディエンスのペアをデータ構成に関連付ける -->
<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 グループが検索結果に表示されます。
次に、検索結果のグループとデータ・フィルターを選択し、「割り当て」ボタンをクリックして、グループをデータ・フィルターに割り当てます。
こうして、すべての割り当てが完了するまで、データ・フィルターとグループの検索を続行します。