例: データ・フィルターのセットの自動生成

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 マッピングを示します。

表 1. 地理テーブル・フィールド
フィールド

(物理名)

フィールド

(Campaign での名前)

データ データ型
country
  • USA
  • フランス
  • Britain
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 グループが検索結果に表示されます。

次に、検索結果のグループとデータ・フィルターを選択し、「割り当て」ボタンをクリックして、グループをデータ・フィルターに割り当てます。

こうして、すべての割り当てが完了するまで、データ・フィルターとグループの検索を続行します。