SQLを使用したオーディエンスの構築
SQL オーディエンス拡張機能を使用して、既存のディメンションエンティティ(顧客属性や製品情報など)を含むデータレイクからのデータでオーディエンスを構築します。
このSQL拡張機能を使用すると、オーディエンスを定義する際にプロファイルに生のデータを必要としないため、オーディエンスを作成する能力が向上します。 この方法で作成されたオーディエンスは、オーディエンスワークスペースに自動的に登録され、ファイルベースの宛先にさらにターゲティングできます。
SQL オーディエンス拡張ワークフローを示す
このドキュメントでは、Adobe Experience Platform Data DistillerのSQL オーディエンス拡張機能を使用して、SQL コマンドを使用してオーディエンスを作成、管理、公開する方法について説明します。
Data Distillerのオーディエンス作成ライフサイクル audience-creation-lifecycle
オーディエンスを作成、管理、アクティベートするには、次の手順に従います。 作成したオーディエンスは、「オーディエンスフロー」にシームレスに統合されるので、基本オーディエンスやターゲットファイルベースの宛先(CSV アップロードやクラウドストレージの場所など)からオーディエンスを構築して、顧客にリーチできます。 「オーディエンスフロー」とは、オーディエンスの作成、管理、アクティベートの完全なプロセスを指し、宛先間でシームレスな統合を保証します。
「オーディエンスフロー」の一部として、次のSQL コマンドを使用して、Adobe Experience Platform内のcreate、modify、delete オーディエンスを作成します。
オーディエンスの作成 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 オーディエンス作成クエリを定義します。
schematable_nameprimary_identityidentity_namespaceSHOW NAMESPACES コマンドを使用します。 新しい名前空間を作成するには、CREATE NAMESPACEを使用します。 例:CREATE NAMESPACE lumaCrmId WITH (code='testns', TYPE='Email')。select_queryorders、total_revenue、recency、frequency、monetizationなどのエンリッチされた属性を使用して、必要に応じてオーディエンスをフィルタリングできます。例:
次の例は、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)が割り当てられます。 残りの列(orders、total_revenue、recency、frequency、およびmonetization)は、オーディエンスの追加のコンテキストを提供するエンリッチ属性です。
制限事項:
オーディエンスの作成にSQLを使用する場合は、次の制限事項に注意してください。
- プライマリ ID列は、他の属性またはカテゴリ内にネストされることなく、データセットの最高レベルにある必要があります。
- SQL コマンドを使用して作成された外部オーディエンスの保持期間は30日です。 これらのオーディエンスは30日後に自動的に削除されます。これは、オーディエンス管理戦略を計画する際の重要な考慮事項です。
既存オーディエンスへのプロファイルの追加 add-profiles-to-audience
INSERT INTO コマンドを使用して、プロファイル(またはオーディエンス全体)を既存のオーディエンスに追加します。
INSERT INTO table_name
SELECT select_query
パラメーター
次の表は、INSERT INTO コマンドに必要なパラメーターを示しています。
table_nameselect_query例:
次の例は、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回の手順で完全に更新できるため、動的なオーディエンスの管理に役立ちます。
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_nameCREATE AUDIENCE コマンドを使用して作成されたオーディエンスの名前。select_querySELECT ステートメント。例:
この例では、audience_monthly_refresh オーディエンスはクエリの結果で完全に上書きされます。 クエリによって返されないプロファイルは、オーディエンスから削除されます。
INSERT OVERWRITE INTO audience_monthly_refresh
SELECT user_id FROM latest_transaction_summary WHERE total_spend > 100;
リアルタイム顧客プロファイルでのオーディエンスの上書き動作
オーディエンスを上書きすると、Real-Time Customer Profileは次のロジックを適用してプロファイルメンバーシップを更新します。
- 新しいバッチにのみ表示されるプロファイルは、入力済みとしてマークされます。
- 前のバッチにのみ存在していたプロファイルは、離脱としてマークされます。
- 両方のバッチに存在するプロファイルは変更されません(操作は実行されません)。
これにより、オーディエンスの更新が、下流のシステムやワークフローに正確に反映されます。
シナリオ例
オーディエンス A1に次が含まれている場合:
上書きクエリは次の結果を返します。
次に、更新されたオーディエンスに次が含まれます。
プロファイル Bが削除され、プロファイル Aが更新され、プロファイル Cは変更されません。
上書きクエリに新しいプロファイルが含まれる場合:
最終回のオーディエンスは次のとおりです。
RFM モデルオーディエンスの例 rfm-model-audience-example
次の例は、Recency, Frequency, and Monetization (RFM)モデルを使用してオーディエンスを作成する方法を示しています。 次の使用例は、最終購入日、頻度、収益化の各スコアにもとづいて顧客をセグメント化し、ロイヤルティの高い顧客、新規顧客、価値の高い顧客などの主要なグループを特定します。
次のクエリは、RFM オーディエンスのスキーマを作成します。 ステートメントは、userId、days_since_last_purchase、orders、total_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 EXISTSdb_nametable_name例:
次の例は、DROP AUDIENCE コマンドを使用してオーディエンスを削除する方法を示しています。
DROP AUDIENCE IF EXISTS aud_test;
自動オーディエンス登録と可用性 registration-and-availability
SQL拡張機能を使用して作成されたオーディエンスは、Audience WorkspaceのData Distiller Originに自動的に登録されます。 登録が完了すると、これらのオーディエンスをファイルベースの宛先でターゲティングできるようになり、セグメンテーションとターゲティング戦略が強化されます。 このプロセスでは、追加の設定は必要なく、オーディエンス管理を合理化できます。 Experience Platform UI内でオーディエンスを表示、管理、作成する方法について詳しくは、 オーディエンスポータルの概要を参照してください。
宛先に対してオーディエンスをアクティブ化 activate-audiences
Amazon S3、SFTP、Azure Blobなど、ファイルベースの任意の宛先をターゲットにして、オーディエンスをアクティベートします。 強化されたオーディエンス属性は、必要に応じてさらに絞り込んだりフィルタリングしたりできます。
機能の説明 faqs
このセクションでは、Data DistillerでSQLを使用して外部オーディエンスを作成および管理する方法に関するよくある質問を扱います。
質問:
- オーディエンスの作成は、フラットデータセットに対してのみサポートされますか?
- オーディエンスの作成は、単一のデータセットまたは複数のデータセットになりますか、設定によって異なりますか?
- オーディエンスの作成中に作成されたデータセットは、プロファイル用にマークされていますか?
- データセットはデータレイクで作成されますか?
- オーディエンスの属性は、エンタープライズバッチファイルベースの宛先に制限されますか? (Yes or No)
- Data Distiller オーディエンスを使用するオーディエンスのオーディエンスを作成できますか?
- これらのオーディエンスはAdobe Journey Optimizerに表示されますか? そうでない場合、このオーディエンスのすべてのメンバーを含む新しいオーディエンスをルールビルダーで作成するとどうなりますか?
- Data Distiller オーディエンスは、外部オーディエンスであるため、30日ごとに削除されますか?
次の手順
このドキュメントでは、Data DistillerのSQL オーディエンス拡張機能を使用して、SQL コマンドを使用してオーディエンスを効率的に作成、管理、公開する方法について説明しました。 独自のビジネス要件にもとづいてオーディエンス定義をカスタマイズし、さまざまな配信先で活用することで、マーケティング戦略とデータにもとづいた意思決定を最適化できます。
次のドキュメントでは、Experience Platformのオーディエンス管理戦略の開発と最適化について解説しています。
- オーディエンスの評価について説明します。Adobe Experience Platformの オーディエンスの評価方法について説明します。リアルタイム更新のためのストリーミングセグメンテーション、スケジュール済みまたはオンデマンド処理のためのバッチセグメンテーション、Edge Networkでの即時の評価のためのエッジセグメンテーションです。
- 宛先との統合: Experience Platform Destinations UIを使用してオンデマンドでファイルをバッチ宛先🔗に書き出す方法に関するガイドを参照してください。
- オーディエンスのパフォーマンスを確認: SQL定義オーディエンスの様々なチャネルでのパフォーマンスを分析します。 データインサイトを使用して、オーディエンスの定義とターゲティング戦略を調整および改善します。 Adobe Real-Time CDPでオーディエンスインサイトのSQL クエリにアクセスして調整する方法については、 オーディエンスインサイト のドキュメントを参照してください。 オーディエンスダッシュボードをカスタマイズしてインサイトを効果的に可視化し、より優れた意思決定に活用することで、独自のインサイトを作成し、生データを実用的な情報に変換できます。