Salesforce Audience Builder をマスターする:コンサルタントが教える精密セグメンテーションガイド

執筆者:Salesforce コンサルタント


背景と応用シナリオ

現代のデジタルマーケティングにおいて、顧客一人ひとりに合わせたパーソナライズされた体験を提供することは、もはや選択肢ではなく必須の要件となっています。すべての顧客に同じメッセージを送る「一斉配信」型のキャンペーンは効果が薄れ、エンゲージメントの低下や購読解除率の上昇を招くことさえあります。企業が競争優位性を確立するためには、顧客データを深く理解し、的確なセグメントに分類し、それぞれに最適化されたコミュニケーションを展開する必要があります。

ここで強力なツールとなるのが、Salesforce Marketing Cloud (現在は Salesforce Data Cloud の一部) が提供する Audience Builder です。Audience Builder は、マーケターがコーディングの知識なしに、直感的なインターフェースを通じて複雑な顧客セグメンテーションを可能にする機能です。これにより、膨大な顧客データの中から特定の条件に合致するオーディエンス(ターゲットリスト)を迅速かつ正確に抽出し、マーケティングキャンペーンの効果を最大化することができます。

主な応用シナリオ:

・新規顧客ウェルカムキャンペーン:
初回購入から7日以内の顧客をセグメント化し、特別なウェルカムメッセージや次回利用可能なクーポンを送付する。

・休眠顧客の掘り起こし:
過去90日間購入がなく、かつメール開封履歴もない顧客を抽出し、特別なインセンティブを提示して再エンゲージメントを促す。

・ロイヤルカスタマーへの優待:
年間購入金額が一定額を超え、かつ購入頻度も高い「VIP顧客」セグメントを作成し、限定イベントへの招待や先行販売の案内を送る。

・興味・関心に基づくターゲティング:
特定の製品カテゴリを閲覧したが購入には至っていない顧客リストを作成し、関連製品のリコメンドや導入事例を送付する。

・属性ベースのプロモーション:
年齢、性別、居住地などのデモグラフィック情報に基づき、特定の層に響く製品やサービスのプロモーションを展開する。

私たち Salesforce コンサルタントは、こうしたシナリオを実現するために、まずビジネス目標を明確にし、それに必要なデータが Marketing Cloud 内にどのように格納されているか(またはされるべきか)を定義します。Audience Builder は、その定義されたデータを用いて、マーケティング戦略を具体的なアクションへと繋ぐための重要な架け橋となるのです。


原理の説明

Audience Builder の強力なセグメンテーション機能は、Marketing Cloud のデータ基盤である Data Extension (データエクステンション) と密接に連携して動作します。Data Extension は、顧客の属性、行動履歴、購入履歴など、あらゆるカスタムデータを格納できるデータベースのテーブルのようなものです。Audience Builder は、これらの Data Extension に保存された情報を利用して、ユーザーが定義したルールに基づいてオーディエンスを絞り込みます。

その仕組みは、以下のステップで構成されています。

1. 属性ライブラリ (Attribute Library) の構築

セグメンテーションの第一歩は、利用可能なデータ属性を Audience Builder に認識させることです。これは Contact Builder (コンタクトビルダー) というツールで設定されます。Contact Builder で Data Extension 同士を適切に関連付ける(例えば、顧客マスタと購入履歴テーブルを顧客IDでリンクするなど)ことで、Audience Builder はそれらのデータを横断的に利用できるようになります。この関連付けられたデータ群が「属性ライブラリ」となり、セグメンテーションの際のフィルター条件として利用可能になります。

2. フィルター条件の定義

Audience Builder のメイン画面では、左側に属性ライブラリが表示され、ユーザーはここから必要な属性を右側のキャンバスにドラッグ&ドロップします。例えば、「顧客マスタ」から「年齢」をドラッグし、「30歳以上」という条件を設定します。さらに、「購入履歴」から「購入日」をドラッグし、「過去30日以内」という条件を追加できます。

これらの条件は AND(かつ)OR(または) の論理演算子で組み合わせることが可能です。例えば、「30歳以上 AND 過去30日以内に購入」といった複雑な絞り込みも、GUI操作だけで簡単に実現できます。裏側では、Audience Builder がこれらの条件を元に、効率的な SQL (Structured Query Language) クエリを自動生成しています。

3. オーディエンスのプレビューとサイズの確認

フィルター条件を設定すると、Audience Builder はその条件に合致する購読者のおおよその数をリアルタイムで計算し、表示します。これにより、マーケターはセグメントの規模が意図通りであるかを確認しながら、条件を微調整することができます。

4. パブリッシュ (Publish)

セグメントの定義が完了したら、最後に「パブリッシュ」操作を行います。パブリッシュとは、定義したフィルター条件に基づいて実際にデータを抽出し、結果を新しい Data Extension として保存するプロセスです。このパブリッシュ処理は、手動で即時実行することも、Automation Studio (オートメーションスタジオ) と連携して毎日、毎週といったスケジュールで自動実行することも可能です。自動化することで、常に最新のデータに基づいたオーディエンスリストを維持することができます。

最終的に作成された Data Extension は、メール配信、Journey Builder (ジャーニービルダー) のエントリーソース、広告連携など、Marketing Cloud 内の様々なマーケティング活動に利用されることになります。


サンプルコード(生成されたオーディエンスデータの活用)

Audience Builder 自体は GUI ツールであり、直接的なコーディングは行いません。しかし、Audience Builder が生成した Data Extension のデータを、ランディングページやメールコンテンツ内で動的に活用する場面は頻繁にあります。ここでは、その一例として、Server-Side JavaScript (SSJS) を使用して、Audience Builder で作成された「VIP_Customers」という Data Extension からデータを取得し、表示するサンプルコードをご紹介します。

このコードは、例えば CloudPages (クラウドページ) 上で、特定のVIP顧客に対してパーソナライズされたメッセージを表示する際に利用できます。

<script runat="server">
    Platform.Load("Core", "1");

    // Audience Builder によって生成されたデータエクステンション名を指定します。
    // (Specify the name of the Data Extension generated by Audience Builder.)
    var deName = "VIP_Customers";

    // 取得したいカラム(フィールド)を配列で指定します。
    // (Specify the columns you want to retrieve in an array.)
    var cols = ["FirstName", "LastName", "LoyaltyPoints", "LastPurchaseDate"];
    
    // フィルター条件を定義します。ここでは LoyaltyPoints が 10000 以上の顧客に絞り込みます。
    // (Define the filter. Here, we are filtering for customers with LoyaltyPoints greater than or equal to 10000.)
    var filter = {
        Property: "LoyaltyPoints",
        SimpleOperator: "greaterThanOrEqual",
        Value: 10000
    };

    try {
        // データエクステンションオブジェクトを初期化します。
        // (Initialize the Data Extension object.)
        var de = DataExtension.Init(deName);

        // Retrieve() メソッドを使用して、フィルター条件に合致するデータを取得します。
        // (Use the Retrieve() method to get the data that matches the filter.)
        var dataRows = de.Rows.Retrieve(filter);

        if (dataRows && dataRows.length > 0) {
            
            // 取得したデータの件数を書き出します。
            // (Write out the number of records retrieved.)
            Write("<h4>VIP顧客リスト (" + dataRows.length + "名)</h4>");
            Write("<p>ロイヤリティポイントが10,000以上の最上位顧客です。</p>");
            
            // 取得した各行をループ処理します。
            // (Loop through each retrieved row.)
            for (var i = 0; i < dataRows.length; i++) {
                var row = dataRows[i];
                var firstName = row.FirstName;
                var lastName = row.LastName;
                var points = row.LoyaltyPoints;
                var purchaseDate = row.LastPurchaseDate;

                // 取得したデータを HTML 形式で出力します。
                // (Output the retrieved data in HTML format.)
                Write("<p>");
                Write("顧客名: " + firstName + " " + lastName + "<br>");
                Write("ポイント: " + points + "<br>");
                Write("最終購入日: " + purchaseDate + "<br>");
                Write("</p><hr>");
            }
        } else {
            // データが見つからなかった場合のメッセージ
            // (Message for when no data is found.)
            Write("<p>該当するVIP顧客は見つかりませんでした。</p>");
        }

    } catch (e) {
        // エラーハンドリング
        // (Error handling)
        Write("<p>エラーが発生しました: " + Stringify(e) + "</p>");
    }
</script>

注:このコードは Salesforce 開発者ドキュメントにある DataExtension.Rows.Retrieve() 関数の標準的な使用例に基づいています。Audience Builder の活用は、このようにして生成されたセグメントを、さらに動的なコンテンツやアプリケーションロジックに繋げることで、その価値を最大限に引き出すことができます。


注意事項

Audience Builder は非常に強力なツールですが、その効果を最大限に引き出すためにはいくつかの注意点を理解しておく必要があります。コンサルタントとして、私たちは導入時に以下の点を特に重視しています。

・権限 (Permissions):
Audience Builder を利用するには、Marketing Cloud の適切なロールと権限が必要です。具体的には、「Audience Builder」セクションへのアクセス権限や、関連する Data Extension への読み取り権限などが付与されている必要があります。権限設定が不十分な場合、属性が表示されない、オーディエンスが作成できないといった問題が発生します。

・データの品質とモデル (Data Quality and Model):
「Garbage In, Garbage Out(ゴミを入れれば、ゴミしか出てこない)」の原則は、Audience Builder にも当てはまります。セグメンテーションの精度は、元となるデータの品質に完全に依存します。データが不正確であったり、形式が統一されていなかったりすると、意図した通りのセグメントを作成することはできません。また、Contact Builder でのデータモデル設計(Data Model Design)が非常に重要です。各 Data Extension がどのように関連付けられているかが、セグメンテーションの柔軟性を決定します。

・パフォーマンスとパブリッシュ時間 (Performance and Publish Time):
数百万、数千万件のレコードを持つ巨大な Data Extension に対して複雑なフィルターを適用する場合、オーディエンスの計算やパブリッシュ処理に時間がかかることがあります。パブリッシュのタイミングは、キャンペーンのスケジュールを考慮して計画する必要があります。Automation Studio を利用して、深夜などシステムの負荷が低い時間帯にパブリッシュ処理をスケジュールするのが一般的です。

・ツールの使い分け:
Audience Builder は、バッチ処理でセグメントを作成するのに最適なツールです。しかし、顧客のリアルタイムな行動(例:Webサイトでカートに商品を追加した直後)をトリガーとして即座にセグメントを分けたい場合は、Journey Builder の Decision Split (デシジョンスプリット) の方が適しています。また、非常に複雑な結合やデータ変換が必要な場合は、Automation Studio で SQL クエリアクティビティを直接記述する方が柔軟性が高い場合もあります。目的に応じて最適なツールを選択することが重要です。


まとめとベストプラクティス

Salesforce Audience Builder は、マーケターがデータサイエンティストや開発者に頼ることなく、自らの手で高度な顧客セグメンテーションを実現するための、非常に価値の高いツールです。直感的なインターフェースを通じて、データに基づいたインサイトを具体的なマーケティングアクションに迅速に変換することができます。

コンサルタントとして推奨するベストプラクティスは以下の通りです。

1. 戦略から始める:
ツールを使い始める前に、「誰に」「何を」「なぜ」伝えたいのかというマーケティング戦略を明確にします。目的が明確であれば、必要なセグメントの定義も自ずと決まります。

2. 命名規則を徹底する:
作成するオーディエンスや属性には、誰が見ても内容が理解できるような一貫した命名規則を適用してください。例:「[JP]_[Campaign]_[Segment]_YYYYMMDD」など。これにより、組織内での管理が容易になります。

3. 小さく始めて検証する:
最初から複雑で巨大なセグメントを作るのではなく、まずはシンプルな条件で小規模なセグメントを作成し、そのリストが意図通りであるかを確認します。テスト配信を行い、その結果を分析してから、徐々に規模を拡大していくアプローチが安全です。

4. 定期的な見直しと棚卸し:
市場や顧客の状況は常に変化します。一度作成したオーディエンス定義も、定期的に見直しを行い、現在のビジネス目標に合致しているかを確認しましょう。不要になったオーディエンスは整理し、常に管理しやすい状態を保つことが重要です。

5. Journey Builder との連携を最大化する:
Audience Builder で作成したセグメントは、Journey Builder のエントリーソースとして活用することで真価を発揮します。特定のセグメントに対して、多段階のコミュニケーションシナリオを自動で実行することで、顧客エンゲージメントを劇的に向上させることが可能です。

Audience Builder を戦略的に活用することで、貴社のマーケティングは「マス」から「パーソナル」へと進化し、顧客とのより深く、長期的な関係を築くための強力な基盤となるでしょう。

コメント