SQLを使用したオーディエンスの構築

SQL オーディエンス拡張機能を使用して、既存のディメンションエンティティ(顧客属性や製品情報など)を含むデータレイクからのデータでオーディエンスを構築します。

このSQL拡張機能を使用すると、オーディエンスを定義する際にプロファイルに生のデータを必要としないため、オーディエンスを作成する能力が向上します。 この方法で作成されたオーディエンスは、オーディエンスワークスペースに自動的に登録され、ファイルベースの宛先にさらにターゲティングできます。

SQL オーディエンス拡張ワークフローを示す ​ インフォグラフィック。 ステージには、SQL コマンドを使用してQuery Serviceでオーディエンスを構築し、Experience Platform UIで管理して、ファイルベースの宛先でアクティブ化することなどが含まれます。

このドキュメントでは、Adobe Experience Platform Data DistillerのSQL オーディエンス拡張機能を使用して、SQL コマンドを使用してオーディエンスを作成、管理、公開する方法について説明します。

Data Distillerのオーディエンス作成ライフサイクル audience-creation-lifecycle

オーディエンスを作成、管理、アクティベートするには、次の手順に従います。 作成したオーディエンスは、「オーディエンスフロー」にシームレスに統合されるので、基本オーディエンスやターゲットファイルベースの宛先(CSV アップロードやクラウドストレージの場所など)からオーディエンスを構築して、顧客にリーチできます。 「オーディエンスフロー」とは、オーディエンスの作成、管理、アクティベートの完全なプロセスを指し、宛先間でシームレスな統合を保証します。

「オーディエンスフロー」の一部として、次のSQL コマンドを使用して、Adobe Experience Platform内のcreatemodifydelete オーディエンスを作成します。

オーディエンスの作成 create-audience

新しいオーディエンスを定義するには、CREATE AUDIENCE AS SELECT コマンドを使用します。 作成されたオーディエンスはデータセットに保存され、Audiences WorkspaceのData Distillerに登録されます。

CREATE AUDIENCE table_name
WITH (primary_identity='IdentitycolName', identity_namespace='Namespace for the identity used', [schema='target_schema_title'])
AS (select_query)

パラメーター

次のパラメーターを使用して、SQL オーディエンス作成クエリを定義します。

パラメーター
説明
schema
オプション。 クエリによって作成されたデータセットのXDM スキーマを定義します。
table_name
テーブルとオーディエンスの名前。
primary_identity
オーディエンスのプライマリ ID列を指定します。
identity_namespace
IDの名前空間。 既存の名前空間を使用するか、新しい名前空間を作成できます。 使用可能な名前空間を表示するには、SHOW NAMESPACES コマンドを使用します。 新しい名前空間を作成するには、CREATE NAMESPACEを使用します。 例:CREATE NAMESPACE lumaCrmId WITH (code='testns', TYPE='Email')
select_query
オーディエンスを定義するSELECT文。 SELECT クエリの構文は、SELECT クエリ ​ セクションにあります。
NOTE
複雑なデータ構造の柔軟性を高めるために、オーディエンスを定義する際にエンリッチ属性をネストできます。 orderstotal_revenuerecencyfrequencymonetizationなどのエンリッチされた属性を使用して、必要に応じてオーディエンスをフィルタリングできます。

例:

次の例は、SQL オーディエンス作成クエリを構造化する方法を示しています。

CREATE Audience aud_test
WITH (primary_identity=userId, identity_namespace=lumaCrmId)
AS SELECT userId, orders, total_revenue, recency, frequency, monetization FROM profile_dim_customer;

この例では、userId列がID列として識別され、適切な名前空間(lumaCrmId)が割り当てられます。 残りの列(orderstotal_revenuerecencyfrequency、およびmonetization)は、オーディエンスの追加のコンテキストを提供するエンリッチ属性です。

制限事項:

オーディエンスの作成にSQLを使用する場合は、次の制限事項に注意してください。

  • プライマリ ID列​は、他の属性またはカテゴリ内にネストされることなく、データセットの最高レベルにある必要があります
  • SQL コマンドを使用して作成された外部オーディエンスの保持期間は30日です。 これらのオーディエンスは30日後に自動的に削除されます。これは、オーディエンス管理戦略を計画する際の重要な考慮事項です。

既存オーディエンスへのプロファイルの追加 add-profiles-to-audience

INSERT INTO コマンドを使用して、プロファイル(またはオーディエンス全体)を既存のオーディエンスに追加します。

INSERT INTO table_name
SELECT select_query

パラメーター

次の表は、INSERT INTO コマンドに必要なパラメーターを示しています。

パラメーター
説明
table_name
オーディエンスを作成コマンドの一部として作成されたテーブルの名前。
select_query
SELECT文。 SELECT クエリの構文は、「SELECT クエリ」セクションにあります。

例:

次の例は、INSERT INTO コマンドを使用して既存のオーディエンスにプロファイルを追加する方法を示しています。

INSERT INTO Audience aud_test
SELECT userId, orders, total_revenue, recency, frequency, monetization FROM customer_ds;

オーディエンスデータの置換(上書きの挿入) replace-audience

INSERT OVERWRITE INTO コマンドを使用して、オーディエンス内の既存のすべてのプロファイルを、新しいSQL クエリの結果に置き換えます。 このコマンドは、オーディエンスのコンテンツを1回の手順で完全に更新できるため、動的なオーディエンスの管理に役立ちます。

AVAILABILITY
INSERT OVERWRITE INTO コマンドは、Data Distiller ユーザーのみが使用できます。 Data Distiller アドオンについて詳しくは、Adobe担当者にお問い合わせください。

現在のオーディエンスに追加するINSERT INTOとは異なり、INSERT OVERWRITE INTOは既存のオーディエンスメンバーをすべて削除し、クエリで返されたメンバーのみを挿入します。 これにより、頻繁にまたは完全な更新を必要とするオーディエンスを管理する際の制御と柔軟性が向上します。

次の構文テンプレートを使用して、新しいプロファイルのセットでオーディエンスを上書きします。

INSERT OVERWRITE INTO audience_name
SELECT select_query

パラメーター

次の表は、INSERT OVERWRITE INTO コマンドに必要なパラメーターを示しています。

パラメーター
説明
audience_name
CREATE AUDIENCE コマンドを使用して作成されたオーディエンスの名前。
select_query
オーディエンスに含めるプロファイルを定義するSELECT ステートメント。

例:

この例では、audience_monthly_refresh オーディエンスはクエリの結果で完全に上書きされます。 クエリによって返されないプロファイルは、オーディエンスから削除されます。

NOTE
上書き操作が正しく機能するためには、オーディエンスに関連付けられたバッチアップロードが1つだけ必要です。
INSERT OVERWRITE INTO audience_monthly_refresh
SELECT user_id FROM latest_transaction_summary WHERE total_spend > 100;

リアルタイム顧客プロファイルでのオーディエンスの上書き動作

オーディエンスを上書きすると、Real-Time Customer Profileは次のロジックを適用してプロファイルメンバーシップを更新します。

  • 新しいバッチにのみ表示されるプロファイルは、入力済みとしてマークされます。
  • 前のバッチにのみ存在していたプロファイルは、離脱としてマークされます。
  • 両方のバッチに存在するプロファイルは変更されません(操作は実行されません)。

これにより、オーディエンスの更新が、下流のシステムやワークフローに正確に反映されます。

シナリオ例

オーディエンス A1に次が含まれている場合:

ID
名前
A
ジャック
B
John
C
Martha

上書きクエリは次の結果を返します。

ID
名前
A
Stewart
C
Martha

次に、更新されたオーディエンスに次が含まれます。

ID
名前
A
Stewart
C
Martha

プロファイル Bが削除され、プロファイル Aが更新され、プロファイル Cは変更されません。

上書きクエリに新しいプロファイルが含まれる場合:

ID
名前
A
Stewart
C
Martha
D
Chris

最終回のオーディエンスは次のとおりです。

ID
名前
A
Stewart
C
Martha
D
Chris

RFM モデルオーディエンスの例 rfm-model-audience-example

次の例は、Recency, Frequency, and Monetization (RFM)モデルを使用してオーディエンスを作成する方法を示しています。 次の使用例は、最終購入日、頻度、収益化の各スコアにもとづいて顧客をセグメント化し、ロイヤルティの高い顧客、新規顧客、価値の高い顧客などの主要なグループを特定します。

次のクエリは、RFM オーディエンスのスキーマを作成します。 ステートメントは、userIddays_since_last_purchaseorderstotal_revenueなどの顧客情報を保持するフィールドを設定します。

CREATE Audience adls_rfm_profile
WITH (primary_identity=userId, identity_namespace=lumaCrmId) AS
SELECT
    cast(NULL AS string) userId,
    cast(NULL AS integer) days_since_last_purchase,
    cast(NULL AS integer) orders,
    cast(NULL AS decimal(18,2)) total_revenue,
    cast(NULL AS integer) recency,
    cast(NULL AS integer) frequency,
    cast(NULL AS integer) monetization,
    cast(NULL AS string) rfm_model
WHERE false;

オーディエンスを作成したら、顧客データを入力し、RFM スコアにもとづいてプロファイルをセグメント化します。 以下のSQL ステートメントは、NTILE(4)関数を使用して、RFM (Recency, Frequency, Monetization) スコアに基づいて顧客を四分位数にランク付けします。 スコアは、「Core」、「Loyal」、「Whales」など、顧客を6つのオーディエンスに分類します。 セグメント化された顧客データがオーディエンス adls_rfm_profile テーブルに挿入されます。」

INSERT INTO Audience adls_rfm_profile
SELECT
    userId,
    days_since_last_purchase,
    orders,
    total_revenue,
    recency,
    frequency,
    monetization,
    CASE
        WHEN Recency=1 AND Frequency=1 AND Monetization=1 THEN '1. Core - Your Best Customers'
        WHEN Recency IN(1,2,3,4) AND Frequency=1 AND Monetization IN (1,2,3,4) THEN '2. Loyal - Your Most Loyal Customers'
        WHEN Recency IN(1,2,3,4) AND Frequency IN (1,2,3,4) AND Monetization=1 THEN '3. Whales - Your Highest Paying Customers'
        WHEN Recency IN(1,2,3,4) AND Frequency IN(1,2,3) AND Monetization IN(2,3,4) THEN '4. Promising - Faithful Customers'
        WHEN Recency=1 AND Frequency=4 AND Monetization IN (1,2,3,4) THEN '5. Rookies - Your Newest Customers'
        WHEN Recency IN (2,3,4) AND Frequency=4 AND Monetization IN (1,2,3,4) THEN '6. Slipping - Once Loyal, Now Gone'
    END AS rfm_model
FROM (
    SELECT
        userId,
        days_since_last_purchase,
        orders,
        total_revenue,
        NTILE(4) OVER (ORDER BY days_since_last_purchase) AS recency,
        NTILE(4) OVER (ORDER BY orders DESC) AS frequency,
        NTILE(4) OVER (ORDER BY total_revenue DESC) AS monetization
    FROM (
        SELECT
            userid,
            DATEDIFF(current_date, MAX(purchase_date)) AS days_since_last_purchase,
            COUNT(purchaseid) AS orders,
            CAST(SUM(total_revenue) AS double) AS total_revenue
        FROM (
            SELECT DISTINCT
                ENDUSERIDS._EXPERIENCE.EMAILID.ID AS userid,
                commerce.`ORDER`.purchaseid AS purchaseid,
                commerce.`ORDER`.pricetotal AS total_revenue,
                TO_DATE(timestamp) AS purchase_date
            FROM sample_data_for_ootb_templates
            WHERE commerce.`ORDER`.purchaseid IS NOT NULL
        ) AS b
        GROUP BY userId
    )
);

オーディエンスの削除(オーディエンスの削除) delete-audience

既存のオーディエンスを削除するには、DROP AUDIENCE コマンドを使用します。 オーディエンスが存在しない場合、IF EXISTSが指定されていない限り、例外が発生します。

DROP AUDIENCE [IF EXISTS] [db_name.]table_name

パラメーター

テーブルには、DROP AUDIENCE コマンドに必要なパラメーターが含まれています。

パラメーター
説明
IF EXISTS
オプション。 指定した場合、テーブルが見つからない場合、例外は発生しません。
db_name
オーディエンスデータセットの選定に使用するデータグループを指定します。
table_name
オーディエンスを作成コマンドの一部として作成されたテーブルの名前。

例:

次の例は、DROP AUDIENCE コマンドを使用してオーディエンスを削除する方法を示しています。

DROP AUDIENCE IF EXISTS aud_test;

自動オーディエンス登録と可用性 registration-and-availability

SQL拡張機能を使用して作成されたオーディエンスは、Audience WorkspaceのData Distiller Originに自動的に登録されます。 登録が完了すると、これらのオーディエンスをファイルベースの宛先でターゲティングできるようになり、セグメンテーションとターゲティング戦略が強化されます。 このプロセスでは、追加の設定は必要なく、オーディエンス管理を合理化できます。 Experience Platform UI内でオーディエンスを表示、管理、作成する方法について詳しくは、​ オーディエンスポータルの概要を参照してください。

Adobe Experience PlatformのAudience Workspace。Data Distillerのオーディエンスが自動的に公開され、使用する準備ができていることを示します。

宛先に対してオーディエンスをアクティブ化 activate-audiences

Amazon S3、SFTP、Azure Blobなど、ファイルベースの任意の宛先をターゲットにして、オーディエンスをアクティベートします。 強化されたオーディエンス属性は、必要に応じてさらに絞り込んだりフィルタリングしたりできます。

​ バッチおよびストリーミング オプションを含む、パブリックおよびプライベート/カスタムの宛先を示すAdobe Experience Platformの宛先タイプのフローチャート。

機能の説明 faqs

このセクションでは、Data DistillerでSQLを使用して外部オーディエンスを作成および管理する方法に関するよくある質問を扱います。

質問:

  • オーディエンスの作成は、フラットデータセットに対してのみサポートされますか?
回答
現在、オーディエンスを定義する際のオーディエンス作成は、フラット(ルートレベル)属性に制限されています。
  • オーディエンスの作成は、単一のデータセットまたは複数のデータセットになりますか、設定によって異なりますか?
回答
オーディエンスとデータセットは1対1でマッピングされます。
  • オーディエンスの作成中に作成されたデータセットは、プロファイル用にマークされていますか?
回答
いいえ。オーディエンスの作成中に作成されたデータセットは、プロファイルとしてマークされません。
  • データセットはデータレイクで作成されますか?
回答
はい。オーディエンスに関連付けられたデータセットは、データレイク上に作成されます。 このデータセットの属性は、Audience Composerおよび宛先フローでエンリッチ属性として使用できます。
  • オーディエンスの属性は、エンタープライズバッチファイルベースの宛先に制限されますか? (Yes or No)
回答
いいえ。 オーディエンス内のエンリッチされた属性は、エンタープライズのバッチ宛先とファイルベースの宛先の両方で使用できます。 「次のオーディエンス IDには、この宛先に使用できない名前空間があります:e917f626-a038-42f7-944c-xyxyxyxyx」などのエラーが発生した場合は、Data Distillerで新しいオーディエンスを作成し、利用可能な任意の宛先で使用します。
  • Data Distiller オーディエンスを使用するオーディエンスのオーディエンスを作成できますか?
回答
はい。Data Distiller オーディエンスを使用するオーディエンスのオーディエンスを作成できます。
  • これらのオーディエンスはAdobe Journey Optimizerに表示されますか? そうでない場合、このオーディエンスのすべてのメンバーを含む新しいオーディエンスをルールビルダーで作成するとどうなりますか?
回答
Data Distillerのオーディエンスは、Adobe Journey Optimizerでも利用できます。 Adobe Journey OptimizerでData Distiller オーディエンスを使用し、強化された属性に基づいて結果をフィルタリングできます。
  • Data Distiller オーディエンスは、外部オーディエンスであるため、30日ごとに削除されますか?
回答
はい。Data Distiller オーディエンスは、外部オーディエンスであるため、30日ごとに削除されます。

次の手順

このドキュメントでは、Data DistillerのSQL オーディエンス拡張機能を使用して、SQL コマンドを使用してオーディエンスを効率的に作成、管理、公開する方法について説明しました。 独自のビジネス要件にもとづいてオーディエンス定義をカスタマイズし、さまざまな配信先で活用することで、マーケティング戦略とデータにもとづいた意思決定を最適化できます。

次のドキュメントでは、Experience Platformのオーディエンス管理戦略の開発と最適化について解説しています。

  • オーディエンスの評価​について説明します。Adobe Experience Platformの​ オーディエンスの評価方法について説明します。リアルタイム更新のためのストリーミングセグメンテーション、スケジュール済みまたはオンデマンド処理のためのバッチセグメンテーション、Edge Networkでの即時の評価のためのエッジセグメンテーションです。
  • 宛先との統合: Experience Platform Destinations UIを使用してオンデマンドでファイルをバッチ宛先🔗に書き出す方法に関するガイドを参照してください。
  • オーディエンスのパフォーマンスを確認: SQL定義オーディエンスの様々なチャネルでのパフォーマンスを分析します。 データインサイトを使用して、オーディエンスの定義とターゲティング戦略を調整および改善します。 Adobe Real-Time CDPでオーディエンスインサイトのSQL クエリにアクセスして調整する方法については、​ オーディエンスインサイト ​のドキュメントを参照してください。 オーディエンスダッシュボードをカスタマイズしてインサイトを効果的に可視化し、より優れた意思決定に活用することで、独自のインサイトを作成し、生データを実用的な情報に変換できます。
recommendation-more-help
experience-platform-help-query-service