Skip to content

SQL セグメントエクステンション

SnowflakeデータのSnowflake SQLクエリを使用してセグメントエクステンションを生成できます。SQLでは、他のセグメンテーション機能では実現できない方法でデータ間の関係を柔軟に記述できるため、新しいセグメントのユースケースを開拓するのに役立ちます。

標準のセグメントエクステンションと同様に、SQLセグメントエクステンションでも過去2年間(730日)までのイベントをクエリできます。標準のセグメントエクステンションとは異なり、SQLセグメントエクステンションはクレジットを消費します

前提条件

この機能を通じてPIIデータにアクセスできる可能性があるため、SQLセグメントクエリを実行するにはPII権限が必要です。

セグメントエクステンションの作成

ステップ1: エディタを選択する

SQL セグメントエクステンションを作成する際、2種類のSQLエディタから選択できます:SQLエディタと増分SQLエディタです。

  • フルリフレッシュ:セグメントがリフレッシュされるたびに、Brazeは利用可能なすべてのデータをクエリしてセグメントを更新します。これは増分リフレッシュよりも多くのクレジットを使用します。フルリフレッシュエクステンションは毎日自動的にメンバーシップを再生成できますが、増分リフレッシュを使用してリフレッシュすることはできません。
  • 増分リフレッシュ:増分リフレッシュはクエリをより費用対効果の高い方法で設定できますが、設定にはいくつかの追加ステップが必要です。セグメントの構築時にこれらの追加ステップを完了できる場合、クエリの実行に使用するクレジットが少なくなるため、このオプションを選択する価値があります。
  • AI SQLジェネレーター:AI SQLジェネレーターを使用すると、自然言語でプロンプトを入力し、セグメント用のSQLクエリに変換できます。SQLを自分で書かなくても素早く始められる方法です。

フルリフレッシュのSQLセグメントエクステンションを作成するには:

  1. オーディエンス > セグメントエクステンションに移動します。
  2. 新しいエクステンションを作成を選択し、次にフルリフレッシュを選択します。

    フルリフレッシュと増分リフレッシュのオプションがある新しいエクステンション作成モーダル。

  3. セグメントエクステンションの名前を追加し、SQLを入力します。要件とリソースについてはステップ2を参照してください。

    SQLセグメントエクステンションの例を表示するSQLエディタ。

  4. セグメントエクステンションを保存します。

増分リフレッシュのSQLセグメントエクステンションを作成するには:

  1. オーディエンス > セグメントエクステンションに移動します。
  2. 新しいエクステンションを作成を選択し、増分リフレッシュを選択します。

    フルリフレッシュと増分リフレッシュのオプションがある新しいエクステンション作成モーダル。

  3. セグメントエクステンションの名前を追加し、SQLを入力します。要件とリソースについてはSQLの記述セクションを参照してください。

    増分SQLセグメントエクステンションの例を表示するSQLエディタ。

  4. 必要に応じて、エクステンションを毎日再生成を選択します。

    エクステンションを毎日再生成するチェックボックス。

    選択すると、Brazeは毎日自動的にセグメントメンバーシップを更新します。つまり、毎日会社のタイムゾーンの深夜0時に(最大1時間の遅延の可能性あり)、Brazeはセグメント内の新しいユーザーを確認し、自動的にセグメントに追加します。セグメントエクステンションが7日間使用されていない場合、Brazeは自動的に毎日の再生成を一時停止します。未使用のセグメントエクステンションとは、キャンペーンやキャンバスの一部ではないもの(エクステンションが「使用中」と見なされるために、キャンペーンやキャンバスがアクティブである必要はありません)を指します。

  5. セグメントエクステンションを保存します。

AI SQLジェネレーターは、OpenAIが提供するGPTを活用し、SQLセグメント用のSQLを推奨します。

「先月通知を受け取ったユーザー」というプロンプトが入力されたAI SQLジェネレーター

AI SQLジェネレーターを使用するには、以下の手順に従います:

  1. フルリフレッシュまたは増分リフレッシュを使用してSQLセグメントを作成した後、AI SQLジェネレーターを起動を選択します。
  2. プロンプトを入力し、生成を選択してプロンプトをSQLに変換します。
  3. 生成されたSQLが正しいことを確認してから、セグメントを保存します。

プロンプトの例

  • 先月メールを受け取ったユーザー
  • 過去1年間の購入回数が5回未満のユーザー

ヒント

  • 利用可能なSnowflakeデータテーブルを把握しておきましょう。これらのテーブルに存在しないデータを要求すると、ChatGPTが架空のテーブルを作成する可能性があります。
  • この機能のSQL記述ルールを把握しておきましょう。これらのルールに従わないとエラーが発生します。たとえば、SQLコードはuser_idカラムを選択する必要があります。プロンプトを「Users who」で始めると役立ちます。
  • AI SQLジェネレーターでは、1分あたり最大20件のプロンプトを送信できます。

私のデータはどのように使用され、OpenAIに送られますか?

OpenAIを活用するBrazeAI機能を通じてAI出力(以下「出力」)を生成するために、Brazeは特定の情報(以下「入力」)をOpenAIに送信します。入力はお客様のプロンプトで構成され、該当する場合にはダッシュボードに表示されるコンテンツやお客様のクエリに関連するその他のワークスペースデータが含まれることがあります。OpenAIのAPIプラットフォームのコミットメントに基づき、Braze経由でOpenAIのAPIに送信されたデータは、OpenAIモデルのトレーニングや改善には使用されません。OpenAIは不正利用の監視を目的として最大30日間データを保持し、その後削除します。お客様とBrazeの間において、出力はお客様の知的財産です。Brazeは、かかる出力に対する著作権の所有権を主張しません。Brazeは、出力を含め、AIが生成したコンテンツに関していかなる種類の保証も行いません。

エクステンションの処理が完了したら、セグメントエクステンションを使用してセグメントを作成し、キャンペーンやキャンバスでこの新しいセグメントをターゲットにできます。

ステップ2: SQLを記述する

SQLクエリはSnowflake構文を使用して記述する必要があります。クエリで使用可能なテーブルとカラムの一覧については、テーブルリファレンスを参照してください。

SQLは以下のルールにも従う必要があります:

  • 単一のSQL文を記述してください。セミコロンは含めないでください。
  • SQLは1つのカラムのみを選択する必要があります:user_idカラムです。つまり、SQLには以下が含まれている必要があります:
1
SELECT DISTINCT user_id FROM "INSERT TABLE NAME"
  • イベントがゼロ回のユーザーをクエリすることはできません。つまり、イベントの回数がX回未満のユーザーのクエリは、以下の回避策に従う必要があります:
    1. イベントの回数がX回を超えるユーザーを選択するクエリを記述します。
    2. セグメントでセグメントエクステンションを参照する際に、doesn't includeを選択して結果を反転させます。

追加ルール

さらに、標準的なSQLクエリは以下のルールに従う必要があります:

  • DECLARE文は使用できません。

すべての増分リフレッシュクエリは、クエリとスキーマの詳細の2つの部分で構成されます。

  1. エディタで、目的のテーブルからuser_idを選択するクエリを記述します。
  2. エディタ上部のフィールドから演算子回数期間を選択してスキーマの詳細を追加します。クエリは、集計カラムの合計が{{operator}}{{number of times}}プレースホルダーで指定された特定の条件を満たすかどうかを確認します。これはクラシックセグメントエクステンションの作成ワークフローと同様に機能します。

    • 演算子:イベントが指定した回数より多い、少ない、または等しい回数発生したかを示します。
      「より多い」が選択された演算子フィールド。

    • 回数:演算子に対してイベントを評価する回数です。
      「5」が入力された回数フィールド。

    • 期間:イベントのインスタンスを確認する1〜730日の日数です。この期間は、現在の日付を基準とした過去の日数を指します。以下の例では、過去365日間にイベントを5回以上実行したユーザーをクエリしています。
      「365」が入力された期間フィールド。

以下の例では、結果のセグメントには、指定された日付以降の過去30日間にfavoritedイベントを3回以上実行したユーザーが含まれます。

増分SQLセグメントエクステンションの例を表示するSQLエディタ。

増分SQLセグメントエクステンションのSQLプレビュー。

追加ルール

さらに、増分リフレッシュクエリは以下のルールに従う必要があります:

  • 単一のSQL文を記述してください。セミコロンは含めないでください。
  • 増分SQLセグメントは1つのイベントのみを参照できます。日付とカウントのドロップダウンは、選択したイベントを参照します。
  • SQLには以下のカラムが含まれている必要があります:user_id$start_date、および集計関数(COUNTなど)。これら3つのフィールドなしで保存されたSQLはエラーになります。
  • DECLARE文は使用できません。

ステップ3: クエリをプレビューする

保存前に、クエリのプレビューを実行できます。クエリプレビューは自動的に100行に制限され、60秒後にタイムアウトします。プレビュー実行時にはuser_idカラムの要件は適用されません。

増分SQLセグメントエクステンションの場合、プレビューには演算子、回数、期間フィールドの追加条件は含まれません。

ステップ4: SQLの反転が必要かどうかを判断する

次に、SQLの反転が必要かどうかを判断します。イベントがゼロ回のユーザーを直接クエリすることはできませんが、SQLの反転を使用してこれらのユーザーをターゲットにできます。

たとえば、購入回数が3回未満のユーザーをターゲットにするには、まず購入回数が3回以上のユーザーを選択するクエリを記述します。次に、SQLの反転を選択して、購入回数が3回未満のユーザー(購入回数がゼロのユーザーを含む)をターゲットにします。

「過去30日間にメールを1〜4回クリックした」というセグメントエクステンションで、SQLの反転オプションが選択されている状態。

セグメントメンバーシップの更新

SQLを使用して作成したセグメントエクステンションのセグメントメンバーシップを更新するには、セグメントエクステンションを開き、更新を選択します。

セグメントエクステンションの管理

セグメントエクステンションページでは、SQLを使用して生成されたセグメントは、名前の横にが表示されます。

SQLセグメントエクステンションを選択すると、そのエクステンションが使用されている場所の確認、エクステンションのアーカイブ、または手動でのセグメントメンバーシップの更新が行えます。

SQLエディターの「メッセージングの使用」セクション。SQLセグメントが使用されている場所が表示されています。

更新設定の指定

エクステンションを定期的に更新する必要がない場合は、更新設定を使用せずに保存できます。Brazeはデフォルトで、その時点のユーザーメンバーシップに基づいてセグメントエクステンションを生成します。オーディエンスを一度だけ生成し、単発のキャンペーンでターゲットにしたい場合は、デフォルトの動作を使用してください。

セグメントは常に最初の保存後に処理を開始します。セグメントが更新されるたびに、Brazeはセグメントを再実行し、更新時点のセグメント内のユーザーを反映するようにセグメントメンバーシップを更新します。これにより、定期的なキャンペーンが最も関連性の高いユーザーに届くようになります。

定期的な更新の設定

更新設定を指定して定期的なスケジュールを設定するには、更新を有効にするを選択します。更新設定を指定するオプションは、SQLセグメント、CDIセグメントエクステンション、シンプルなフォームベースのセグメントエクステンションを含む、すべてのタイプのセグメントエクステンションで使用できます。

更新設定の選択

更新頻度が週単位、開始時刻が午前10時、曜日として月曜日が選択された更新間隔設定。

更新間隔設定パネルでは、このセグメントエクステンションが更新される頻度を、毎時、毎日、毎週、または毎月から選択できます。また、更新が行われる特定の時刻(会社のタイムゾーン)を選択する必要があります。例えば以下のようになります。

  • 毎週月曜日の午前11時(会社時間)に送信されるメールキャンペーンがあり、送信直前にセグメントを確実に更新したい場合は、毎週月曜日の午前10時に更新するスケジュールを選択してください。
  • セグメントを毎日更新したい場合は、毎日の更新頻度を選択し、更新する時刻を選択してください。

クレジット消費と追加コスト

更新によってセグメントのクエリが再実行されるため、SQLセグメントの更新ごとにSQLセグメントクレジットが消費され、CDIセグメントエクステンションの更新ごとにサードパーティのデータウェアハウスでコストが発生します。

古いエクステンションを自動的に無効にする基準

セグメントエクステンションが古くなると、スケジュールされた更新は自動的に無効になります。セグメントエクステンションは、以下の基準を満たす場合に古いとみなされます。

  • アクティブなキャンペーンまたはキャンバスで使用されていない
  • アクティブなキャンペーンまたはキャンバス内のセグメントで使用されていない
  • 分析トラッキングが有効になっているセグメントで使用されていない
  • 7日以上変更されていない
  • 7日以上、キャンペーンやキャンバス(下書きを含む)、またはセグメントに追加されていない

セグメントエクステンションのスケジュールされた更新が無効になっている場合、そのエクステンションにはその旨を示す通知が表示されます。

「このエクステンションはアクティブなキャンペーン、キャンバス、またはセグメントで使用されていないため、スケジュールされた更新がオフになりました。セグメントエクステンションは2025年2月23日午前12:00に無効化されました。」という通知。

古いセグメントエクステンションを使用する準備ができたら、更新設定を確認し、ユースケースに合った更新スケジュールを選択して、変更を保存してください。

Snowflakeクレジット

各Brazeワークスペースには、1か月あたり5つのSnowflakeクレジットが利用可能です。さらにクレジットが必要な場合は、アカウントマネージャーにお問い合わせください。クレジットは、SQLセグメントのメンバーシップを更新、または保存して更新するたびに使用されます。SQLセグメント内でプレビューを実行したり、従来のセグメントエクステンションを保存または更新したりする場合、クレジットは使用されません。

クレジット使用量はSQLクエリの実行時間と相関しています。実行時間が長くなるほど、クエリにかかるクレジット数は多くなります。実行時間は、時間の経過に伴うクエリの複雑さとサイズによって異なる場合があります。実行するクエリが複雑で頻繁になればなるほど、リソースの割り当てが大きくなり、実行時間が短縮されます。

クレジットを節約するには、SQLセグメントエクステンションを保存する前に、クエリをプレビューして正しいことを確認してください。

クレジットは、毎月1日午前12時(UTC)に5にリセットされます。クレジット使用状況パネルで、その月のクレジット使用状況を監視できます。セグメントエクステンションページから、 SQLクレジット使用状況を表示をクリックします。

SQLセグメントエクステンションページのSQLクレジット使用状況パネル

クレジットがゼロになると、次のことが起こります。

  • 自動更新が設定されたSQLセグメントエクステンションは更新を停止し、これらのセグメントのメンバーシップ、およびこれらのセグメントをターゲットとするキャンペーンやキャンバスに影響します。
  • その月の残りの期間は、新しいSQLセグメントエクステンションを下書きとしてのみ保存できます。

SQLセグメントを作成したすべての会社ユーザーと会社の管理者には、クレジットの50%、80%、100%を使い切った時点で通知メールが届きます。翌月の初めにクレジットがリセットされたら、SQLセグメントをさらに作成でき、自動更新が再開されます。

SQLセグメントクレジットの追加購入やセグメントエクステンションの追加をご希望の場合は、アカウントマネージャーにお問い合わせください。

New Stuff!