SQL セグメントエクステンション
Snowflake データのSnowflake SQLクエリを使用してセグメントエクステンションを生成できます。SQLでは、他のセグメンテーション機能では実現できない方法でデータ間の関係を柔軟に記述できるため、新しいSegmentのユースケースを開拓するのに役立ちます。
標準のセグメントエクステンションと同様に、SQLセグメントエクステンションでも過去2年間(730日)までのイベントをクエリできます。標準のセグメントエクステンションとは異なり、SQLセグメントエクステンションはクレジットを消費します。
前提条件
この機能を通じて個人識別情報(PII)データにアクセスできるため、SQLセグメントクエリを実行するにはPII権限が必要です。
セグメントエクステンションを作成する
ステップ 1: エディターを選ぶ
SQLセグメントエクステンションの作成時に選択できるSQLエディターには、SQLエディターとインクリメンタルSQLエディターの2種類があります。
- 完全リフレッシュ:Segmentが更新されるたびに、Brazeは利用可能なすべてのデータをクエリしてSegmentを更新します。これにより、増分更新よりも多くのクレジットが使用されます。完全更新エクステンションでは、メンバーシップを毎日自動的に再生成できますが、増分更新を使用して更新することはできません。
- 増分更新:増分更新はクエリを設定するより費用対効果の高い方法ですが、設定にはいくつかの追加ステップが必要です。Segmentを構築する際にこれらの追加ステップを完了できるなら、このオプションを選択する価値があります。クエリの実行に必要なクレジットが少なくなるためです。
- AI SQLジェネレーター:AI SQLジェネレーターは、平易な言語でプロンプトを入力すると、それを対象Segment向けのSQLクエリに変換します。自分でSQLを書く必要なく、すぐに始められる方法です。
いずれかのSQLエディターで作成されたすべてのSQL Segmentを手動で完全更新できます。
完全更新SQLセグメントエクステンションを作成するには:
- オーディエンス > セグメントエクステンションに移動します。
- 新規エクステンションを作成を選択し、次に完全リフレッシュを選択します。

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

- セグメントエクステンションを保存します。
増分更新SQLセグメントエクステンションを作成するには:
- オーディエンス > セグメントエクステンションに移動します。
古いナビゲーションを使用している場合は、エンゲージメント > Segments > セグメントエクステンションでこのページを見つけることができます。
- 新規エクステンションを作成を選択し、増分更新を選択します。

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

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

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

AI SQLジェネレーターを使用するには、以下の手順を実行します。
- 完全更新または増分更新のいずれかを使用してSQL Segmentを作成した後、AI SQLジェネレーターを起動を選択します。
- プロンプトを入力し、生成を選択すると、プロンプトがSQLに変換されます。
- 生成されたSQLを確認して正しいことを確認し、Segmentを保存します。
プロンプトの例
- 先月にメールを受信したユーザー
- 過去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が生成したコンテンツに関していかなる種類の保証も行いません。
実行に20分以上かかるSQLクエリはタイムアウトします。
エクステンションの処理が完了したら、セグメントエクステンションを使ってSegmentを作成し、この新しいSegmentをCampaignsやCanvasesでターゲットに設定できます。
ステップ 2: SQLを記述する
SQLクエリは、Snowflake構文を使用して記述する必要があります。クエリ可能なテーブルとカラムの全リストについては、テーブルリファレンスを参照してください。
クエリに使用できるテーブルにはイベントデータのみが含まれていることに注意してください。ユーザー属性をクエリする場合は、SQL Segmentをクラシックセグメンターのカスタム属性フィルターと組み合わせる必要があります。
SQLはさらに、次のルールに従う必要があります。
- 単一のSQLステートメントを記述します。セミコロンは含めないでください。
- SQLでは、
user_id列の1つのみを選択する必要があります。つまり、SQLには以下が含まれている必要があります。
1
SELECT DISTINCT user_id FROM "INSERT TABLE NAME"
- イベントがゼロのユーザーをクエリすることはできません。つまり、イベントの実行回数がX回未満のユーザーに対するクエリは、次の回避策に従う必要があります。
- イベントがX回以上発生したユーザーを選択するクエリを記述します。
- Segment内のセグメントエクステンションを参照する場合、
doesn't includeを選択すると結果が反転します。
その他のルール
さらに、標準的なSQLクエリは以下のルールに従う必要があります。
DECLAREステートメントは使用できません。
すべての増分更新クエリは、クエリとスキーマの詳細という2つの部分で構成されます。
- エディターで、目的のテーブルから
user_idを選択するクエリを記述します。 - エディターの上のフィールドからOperator、回数、および期間を選択して、スキーマの詳細を追加します。クエリでは、集計列の合計が
{{operator}}および{{number of times}}プレースホルダーで指定された特定の条件を満たすかどうかが確認されます。これは、従来のセグメントエクステンションを作成するワークフローと同様に機能します。
- Operator:イベントの発生回数が、指定した回数よりも多いか、少ないか、等しいかを示します。

- 回数:Operatorに対してイベントを評価したい回数。

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

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


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

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

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

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

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

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