SQL セグメントエクステンション
Snowflake データのSnowflake SQL クエリを使用してセグメントエクステンションを生成できます。SQL では、他のセグメンテーション機能では実現できない方法でデータ間の関係を柔軟に記述できるため、新しいセグメントのユースケースを開拓するのに役立ちます。
標準のセグメントエクステンションと同様に、SQL セグメントエクステンションでも過去 2 年間 (730 日) までのイベントをクエリできます。標準のSegment Extensionsとは異なり、SQL Segment Extensions はクレジットを消費します。
前提条件
この機能を使用してPIIデータにアクセスできるため、SQL Segmentクエリーを実行するにはPII権限が必要です。
セグメントエクステンションを作成する
ステップ 1: エディタを選択する
SQL セグメントエクステンションの作成時に選択できる SQL エディターには、SQL エディターとインクリメンタル SQL エディターの2種類があります。
- フルリフレッシュ:セグメントが更新されるたびに、Braze は利用可能なすべてのデータをクエリしてセグメントを更新します。これにより、増分更新よりも多くのクレジットが使用されます。完全更新エクステンションでは、メンバーシップを毎日自動的に更新できますが、増分更新を使用して更新することはできません。
- 増分更新:インクリメンタルリフレッシュは、クエリーを設定するためのより効率的な方法です。ただし、設定には、もう少しステップ s が含まれます。Segmentの作成時にこれらの追加ステップを完了できる場合は、クエリーの実行単位が少なくなるため、このオプションを選択する価値があります。
- AI SQL ジェネレータ:AI SQL ジェネレーターを使用すると、プロンプトをプレーン言語で記述し、それをSegmentのSQL クエリーに変換できます。SQL を自分で書く必要もなく、すぐに始めることができます。
いずれかの SQL エディターで作成されたすべての SQL セグメントを手動で完全更新できます。
完全更新 SQL セグメントエクステンションを作成するには:
- [オーディエンス] > [セグメントエクステンション] に移動します。
- Create New Extensionを選択し、Full refreshを選択します。

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

- セグメントエクステンションを保存します。
増分更新 SQL セグメントエクステンションを作成するには以下を実行します。
- [オーディエンス] > [セグメントエクステンション] に移動します。
古いナビゲーションを使用している場合は、[エンゲージメント] > [セグメント] > [セグメントエクステンション] でこのページを見つけることができます。
2.Create New Extensionを選択し、Incremental refreshを選択します。

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

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

選択すると、Braze はセグメントメンバーシップを毎日自動的に更新します。つまり、毎日会社のタイムゾーンの午前0時 (1時間遅れる可能性があります) に、Braze はセグメントの新規ユーザーを確認し、自動的にセグメントに追加します。セグメントエクステンションを 7 日間使用しなかった場合、Braze は毎日の再生成を自動的に一時停止します。未使用のセグメントエクステンションとは、キャンペーンやキャンバスの一部ではないエクステンションです (エクステンションが「使用済み」と見なされるには、キャンペーンまたはキャンバスがアクティブでなくてもかまいません)。 - セグメントエクステンションを保存します。
AI SQL ジェネレーターは現在、ベータ機能としてご利用いただけます。このベータトライアルへの参加に興味がある場合は、カスタマーサクセスマネージャーにお問い合わせください。
AI SQL ジェネレーターは OpenAI を搭載した GPT を活用して、お客様の SQL セグメントに SQL を推奨します。

AI SQL ジェネレーターを使用するには、以下を実行します。
- フルリフレッシュまたはインクリメンタルリフレッシュを使用してSQL Segment を作成した後、Launch AI SQL Generator を選択します。
- プロンプトを入力し、Generate を選択してプロンプトをSQL に変換します。
- 生成された SQL を確認して正しいことを確認し、セグメントを保存します。
プロンプトの例
- 先月にメールを受信したユーザー
- 過去1年間に購入回数が5回未満のユーザー
ヒント
- 利用可能な Snowflake データテーブルをよく理解してください。これらのテーブルに存在しないデータを要求すると、ChatGPT が正しくないテーブルを作成する可能性があります。
- この機能の SQL 記述ルールをよく理解してください。これらのルールに従わないと、エラーが発生します。たとえば、SQL コードでは
user_id列を選択する必要があります。プロンプトの冒頭に「user who」と入力すると役に立ちます。 - AI SQL ジェネレーターでは、1分あたり最大20のプロンプトを送信できます。
#### 私のデータはどのように使用され、OpenAIに送られるのか? {#ai-policy}
BrazeがOpenAIを活用していると識別するBrazeのAI機能を通じてAI出力を生成するため(以下、「出力」)、Brazeは、メッセージコンテンツ、ブランドガイドライン、過去のキャンペーンデータ、または該当するその他の入力(以下、「入力」)など、お客様のプロンプトをOpenAIに送信する。BrazeからOpenAIに送信された入力は、ユーザーが入力に識別可能な情報を含めることを選択しない限り、ユーザーやユーザーを特定することはない。OpenAIのAPIプラットフォームのコミットメントによると、Braze経由でOpenAIのAPIに送信されたデータは、OpenAIのモデルのトレーニングや改良には使用されず、OpenAIによって30日後にOpenAIのシステムから削除される。あなたとBrazeの間で、アウトプットはあなたの知的財産である。Brazeは、かかるOutputに関する著作権の所有権を主張しない。Brazeは、Outputを含め、AIが生成したコンテンツ全般に関していかなる保証も行わない。
実行に20分以上かかる SQL クエリはタイムアウトします。
拡張機能の処理が完了したら、Segment拡張機能を使用してを作成し、キャンペーンとキャンバスでこの新しいSegmentを対象にすることができます。
ステップ 2:SQL を記述する
SQL クエリは、Snowflake 構文を使用して記述する必要があります。クエリ可能なテーブルとカラムの全リストについては、テーブルリファレンスを参照してください。
クエリに使用できるテーブルにはイベントデータのみが含まれていることに注意してください。ユーザー属性をクエリする場合は、SQL セグメントをクラシックセグメンターのカスタム属性フィルターと組み合わせる必要があります。
SQL はさらに、次のルールに従う必要があります。
- 単一の SQL ステートメントを記述します。セミコロンは含めないでください。
- SQL では、次の1つの列のみを選択する必要があります。
user_id列。つまり、SQL には以下が含まれている必要があります。
1
SELECT DISTINCT user_id FROM "INSERT TABLE NAME"
- イベントがゼロのユーザーをクエリすることはできません。つまり、イベントを実行した回数が X 回未満のユーザーに対するクエリは、次の回避策に従う必要があります。
- イベントが X 回以上発生したユーザーを選択するクエリを記述します。
- セグメント内のセグメントエクステンションを参照する場合、
doesn't includeを選択すると結果が反転します。
その他の規則
さらに、標準SQL クエリは次のルールに従う必要があります。
DECLARE文は使用できません。
すべての増分更新クエリは、クエリとスキーマの詳細という2つの部分で構成されます。
- エディターで、目的のテーブルから
user_idを選択するクエリを記述します。 - エディターの上のフィールドから [演算子]、[回数]、および [期間] を選択して、スキーマの詳細を追加します。クエリでは、集計列の合計が
{{operator}}および{{number of times}}プレースホルダーで指定された特定の条件を満たすかどうかが確認されます。これは、従来のセグメントエクステンションを作成するワークフローと同様に機能します。
- 演算子:イベントの発生回数が、発生回数よりも多いか、少ないか、等しいかを示します。

- 回数:演算子に関してイベントを評価したい回数。

- 期間:イベントのインスタンスを確認する日数 (1 ~ 730日)。この期間は、現在の日を基準とした過去の日数を指します。次の例は、過去365日間にイベントを5回以上実行したユーザーのクエリを示しています。

- 演算子:イベントの発生回数が、発生回数よりも多いか、少ないか、等しいかを示します。
次の例では、結果のセグメントには、指定した日付以降の過去3日間に favorited イベントを3回以上実行したユーザーが含まれます。


増分更新セグメントでは、2日以上前に発生したイベントである遅延イベント (キャプチャされた時点で送信されていない SDK イベントなど) が考慮されます。
その他の規則
さらに、インクリメンタル・リフレッシュ・クエリーは、以下のルールに従う必要があります。
- 単一の SQL ステートメントを記述します。セミコロンは含めないでください。
- インクリメンタル SQL セグメントで参照できるのは1つのイベントだけです。日付とカウントのドロップダウンは、選択したイベントに基づいています。
- SQL には次の列が必要です:
user_id、$start_date、および集計関数 (COUNTなど)。これら3つのフィールドなしで SQL を保存すると、エラーになります。 DECLARE文は使用できません。
テーブル CATALOGS_ITEMS_SHARED を使用する SQL セグメントを作成する場合は、カタログ ID を指定する必要があります。以下に例を示します。
1
2
3
SELECT * FROM CATALOGS_ITEMS_SHARED
WHERE CATALOG_ID = 'XYZ'
LIMIT 10
ステップ 3:クエリのプレビュー
保存する前に、クエリのプレビューを実行できます。クエリのプレビューは自動的に100行に制限され、60秒後にタイムアウトします。プレビューを実行する場合、user_id 列の要件は適用されません。
インクリメンタル SQL セグメントエクステンションの場合、プレビューには演算子からの追加条件、回数、および期間フィールドは含まれません。
ステップ 4: SQL を反転する必要があるかどうかを判別する
次に、SQL を反転する必要があるかどうかを判断します。0 個のイベントを持つユーザーs を直接クエリーすることはできませんが、SQL を反転してこれらのユーザーs をターゲットにすることができます。
デフォルトでは、Invert SQLはトグルされません。ただし、AI SQL ジェネレータを使用して、否定する必要があるSQL 文を生成する場合、ChatGPT はこの機能を自動的にオンに切り替える出力を返すことがあります。
たとえば、購入数が3 つ未満のユーザーを対象にするには、まずクエリーを作成して、購入数が3 つ以上のユーザーを選択します。次に、Invert SQL を選択して、購入数が3 未満のユーザー(購入数が0 のものを含む) を対象にします。
0 個のイベントを持つユーザーを特に対象にする場合を除き、SQL を反転する必要はありません。Invert SQLが選択されている場合は、機能が必要であり、Segmentが目的のオーディエンスと一致していることを確認します。例えば、照会が少なくとも1 つのイベントを持つユーザーs を対象とする場合、逆にすると、0 のイベントを持つユーザーs のみを対象とします。

セグメントのメンバーシップの更新
SQL を使用して作成されたセグメントエクステンションのセグメントメンバーシップを更新するには、セグメントエクステンションを開いて [更新] を選択します。
ユーザーが頻繁に出入りすることが予想されるセグメントを作成した場合は、キャンペーンまたはキャンバスでそのセグメントをターゲットにする前に、使用するセグメントエクステンションを手動で更新してください。
セグメント拡張の管理
セグメントエクステンションページでは、SQL を使用して生成されたセグメントは名前の横の で表示されます。
SQL セグメントエクステンションを選択すると、そのエクステンションが使用されている場所を表示したり、エクステンションをアーカイブしたり、セグメントのメンバーシップを手動で更新したりできます。

更新設定の指定
エクステンションを定期的に更新する必要がない場合は、更新設定を使用せずにエクステンションを保存できます。この場合 Braze は、デフォルトでその時点のユーザーメンバーシップに基づいてセグメントエクステンションを生成します。オーディエンスを一度だけ生成し、単発のキャンペーンでターゲットにしたい場合は、デフォルトの動作を使用する。
セグメントは常に最初の保存後に処理を開始します。セグメンテーションが更新されるたびに、Brazeはセグメンテーションを再実行し、更新時のセグメント内のユーザーを反映するようにセグメントメンバーシップを更新する。これにより、定期的なキャンペーンが最も関連性の高いユーザーに届くようになる。
定期的なリフレッシュの設定
リフレッシュ設定s を指定して繰り返しスケジュールを設定するには、リフレッシュ有効 を選択します。リフレッシュ設定sを指定するための選択肢は、SQL Segments、CDI Segment拡張、およびシンプルなフォームベースのSegment拡張を含む、すべてのタイプのSegment拡張で使用できます。
データ管理を最適化するため、使用していないセグメントエクステンションのリフレッシュ設定は自動的にオフになる。セグメントエクステンションは、次の場合未使用とみなされます。
- アクティブまたは非アクティブ(下書き、停止、アーカイブ)キャンペーン、キャンバス、セグメンテーションで使用されていない。
- 7日以上変更されていない
この設定をオフにすると、Braze は会社の連絡先とエクステンションの作成者に通知します。エクステンションを毎日再生成するオプションはいつでも有効にできます。
リフレッシュ設定を選択する

Refresh Interval Settingsパネルでは、このSegment拡張機能が更新される頻度を、毎時、毎日、毎週、または毎月から選択できます。また、リフレッシュが行われる特定の時間(あなたの会社のタイムゾーン内)を、次のように選択する必要がある:
- 毎週月曜日の午前11時(会社時間)に配信されるメールキャンペーンで、配信直前にセグメンテーションを確実に更新したい場合は、毎週月曜日の午前10時に更新するスケジュールを選択する。
- セグメンテーションを毎日更新したい場合は、毎日の更新頻度を選択し、更新する時間帯を選択する。
フォームベースのセグメントエクステンションでは、1時間ごとの更新スケジュールを設定することはできない(ただし、毎日、毎週、毎月のスケジュールは設定できる)。
クレジット消費量と追加のコスト
リフレッシュによってSegmentのクエリーが再実行されるため、SQL SegmentのリフレッシュごとにSQL Segmentクレジットが消費され、CDI Segmentエクステンションのリフレッシュごとにサードパーティデータウェアハウス内で費用が発生します。
データ処理時間のために、セグメントの更新には最大60分かかることがあります。現在更新処理中のセグメントには、セグメントエクステンションリストで「処理中」ステータスが表示されます。これはいくつかの影響を伴います。
- 特定の時刻よりも前にセグメントの処理を終了するには、60分未満の更新時間を選択します。
- 特定のセグメントエクステンションの更新は一度に1回だけ実行できます。既存の更新の処理がすでに開始されている場合に新しい更新が開始される競合的な状況では、Braze は新しい更新リクエストをキャンセルして、進行中の処理を続行します。
古い拡張機能を自動的に無効にする基準
セグメント拡張が古くなると、スケジュールされた更新は自動的に無効になります。セグメント拡張は、次の基準を満たす場合は古くなります。
- アクティブなキャンペーンまたはキャンバスでは使用されていない
- アクティブなキャンペーンまたはキャンバス内のセグメントでは使用されていない
- 分析 “トラッキングが有効になっているSegmentでは使用しません
- 7日以上経過しても変更されていない
- キャンペーンやキャンバス(下書きを含む)に追加されていないか、7日間以上Segmentされているか
セグメントエクステンションのスケジュールされたリフレッシュが無効になっている場合、そのエクステンションには、その旨を示す通知が表示されます。

古いセグメント拡張を使用する準備ができたら、更新設定を確認し、ユースケースに一致する更新スケジュールを選択して、変更を保存します。
Snowflake単位
各 Braze ワークスペースには、1か月あたり5つのSnowflake クレジットが利用可能です。さらにクレジットが必要な場合は、アカウントマネージャーにお問い合わせください。クレジットは、SQL Segment のメンバーシップを更新または保存して更新するたびに使用されます。SQL セグメント内でプレビューを実行したり、従来のセグメントエクステンションを保存または更新したりする場合、クレジットは使用されません。
Snowflake クレジットは機能間で共有されません。例えば、SQL セグメントエクステンションとクエリビルダーのクレジットは互いに独立しています。
クレジット使用量は SQL クエリの実行時間と相関しています。実行時間が長くなるほど、クエリにかかるクレジット数は多くなります。実行時間は、時間の経過に伴うクエリの複雑さとサイズによって異なる場合があります。実行するクエリが複雑で頻繁になればなるほど、リソースの割り当てが大きくなり、実行時間が短縮されます。
クレジットを節約するには、SQL セグメントエクステンションを保存する前に、クエリをプレビューして正しいことを確認してください。
クレジットは、毎月1日午前12 時 (UTC) に5にリセットされます。クレジット使用状況パネルで、その月のクレジット使用状況を監視できます。[セグメントエクステンション] ページから、[SQL クレジット使用状況を表示] をクリックします。

クレジットがゼロになると、次のことが起こります。
- 自動的に更新するように設定された SQL セグメントエクステンションは更新を停止し、これらのセグメントのメンバーシップ、およびこれらのセグメントをターゲットとするキャンペーンやキャンバスに影響します。
- その月の残りの期間は、新しい SQL セグメントエクステンションをドラフトとして保存することしかできません。
クレジットの50%、80%、100%を使い切ると、SQLセグメントを作成したすべての企業ユーザーと会社の管理者に通知メールが届きます。翌月の初めにクレジットがリセットされたら、SQL セグメントをさらに作成でき、自動更新が再開されます。
SQL Segment クレジットをさらに購入したり、セグメントエクステンションを追加購入したい場合は、アカウントマネージャーにお問い合わせください。
GitHub でこのページを編集