Skip to content

クエリビルダー

クエリビルダーは、SnowflakeのBrazeデータを使用してレポートを生成します。クエリビルダーには、すぐに使い始められるビルド済みのSQLクエリテンプレートが付属しています。また、独自のカスタムSQLクエリを記述して、さらに多くのインサイトを引き出すこともできます。

クエリビルダーでは一部の顧客データに直接アクセスできるため、「PII を表示」権限を持つユーザーのみがクエリビルダーにアクセスできます。

利用可能なデータテーブル

クエリビルダーは、SQLセグメントエクステンションおよびSnowflakeデータ共有と同じSnowflake SQLテーブルを使用します。利用可能なテーブルとそのカラムの完全なリストについては、SQLテーブルリファレンスを参照してください。

クエリビルダーでレポートを実行する

クエリビルダーレポートを実行するには:

  1. 分析 > クエリビルダーに移動します。
  2. SQLクエリを作成を選択します。クエリの作成にインスピレーションやヘルプが必要な場合は、クエリテンプレートを選択し、リストからテンプレートを選択します。それ以外の場合は、SQLエディターを選択してエディターに直接移動します。
  3. レポートには現在の日時で自動的に名前が付けられます。名前にカーソルを合わせ、を選択して、SQLクエリにわかりやすい名前を付けます。
  4. エディターでSQLクエリを記述するか、AI Query BuilderタブからAIのヘルプを利用します。独自のSQLを記述する場合は、要件とリソースについてカスタムSQLクエリの記述を参照してください。
  5. クエリを実行を選択します。
  6. クエリを保存します。
  7. レポートのCSVをダウンロードするには、エクスポートを選択します。

テンプレートクエリ「過去30日間のチャネルエンゲージメントと収益」の結果を表示するクエリビルダー。

各レポートの結果は1日に1回生成できます。同じレポートを1暦日に複数回実行した場合、両方のレポートに同じ結果が表示されます。

クエリテンプレート

クエリテンプレートにアクセスするには、レポートを最初に作成するときにSQLクエリを作成 > クエリテンプレートを選択します。

利用可能なテンプレートのリストについては、クエリテンプレートを参照してください。

データの期間

クエリは過去60日間のデータを返します。CurrentsまたはSnowflakeデータ共有を使用している場合は、最大2年間のデータをクエリできる場合があります。これは、Snowflakeでデータが保持される期間です。延長データ保持の詳細については、カスタマーサクセスマネージャーにお問い合わせください。

クエリビルダーのタイムゾーン

SnowflakeデータベースのクエリのデフォルトタイムゾーンはUTCです。そのため、メールチャネルエンゲージメントページ(会社のタイムゾーンに従います)とクエリビルダーの結果の間にデータの不一致が生じる場合があります。

クエリ結果のタイムゾーンを変換するには、以下のSQLをクエリに追加し、会社のタイムゾーンに合わせてカスタマイズしてください:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT
DATE_TRUNC(
'day',
CONVERT_TIMEZONE('UTC','Australia/Sydney', TO_TIMESTAMP(TIME))
) AS send_date_sydney,
COUNT(ID) AS emails_sent
USERS_MESSAGES_EMAIL_SEND_SHARED
WHERE
-- Apply the date range in Sydney time as well
CONVERT_TIMEZONE('UTC','Australia/Sydney', TO_TIMESTAMP(TIME)) >= '2025-03-25 00:00:00'
AND CONVERT_TIMEZONE('UTC','Australia/Sydney', TO_TIMESTAMP(TIME)) < '2025-03-29 00:00:00'
AND APP_GROUP_ID = 'your app group ID'
GROUP BY
send_date_sydney
ORDER BY
send_date_sydney;

クエリ履歴

クエリビルダーのクエリ履歴セクションには、以前に実行したクエリが表示され、作業の追跡と再利用に役立ちます。クエリ履歴は7日間保持され、7日を超えたクエリは自動的に削除されます。

より長い期間のクエリ使用状況を監査したり、7日を超えてレコードを維持したりする必要がある場合は、有効期限が切れる前に重要なクエリ結果をエクスポートまたは保存することをお勧めします。

AI Query Builderを使用してSQLを生成する

AI Query Builderは、OpenAIを搭載したGPTを活用して、クエリ用のSQLを推奨します。

SQL AI Query Builder。

AI Query BuilderでSQLを生成するには:

  1. クエリビルダーでレポートを作成した後、AI Query Builderタブを選択します。
  2. プロンプトを入力するか、サンプルプロンプトを選択し、生成を選択してプロンプトをSQLに変換します。
  3. 生成されたSQLが正しいことを確認し、エディターに挿入を選択します。

ヒント

  • SQLテーブルリファレンスで利用可能なテーブルとカラムを確認してください。これらのテーブルに存在しないデータを要求すると、ChatGPTが架空のテーブルを作成する可能性があります。
  • この機能のSQL記述ルールを確認してください。これらのルールに従わないとエラーが発生します。
  • AI Query Builderでは、1分あたり最大20件のプロンプトを送信できます。

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

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

カスタムSQLクエリの記述

Snowflake構文を使用してSQLクエリを記述します。クエリ可能なテーブルとカラムの完全なリストについては、テーブルリファレンスを参照してください。

クエリビルダー内でテーブルの詳細を表示するには:

  1. クエリビルダーページから、参照パネルを開き、利用可能なデータテーブルを選択して、利用可能なデータテーブルとその名前を表示します。
  2. 詳細を表示を選択して、テーブルの説明やデータタイプなどのテーブルカラムに関する情報を表示します。
  3. SQLにテーブル名を挿入するには、を選択します。

Brazeが提供するビルド済みクエリを使用するには、クエリビルダーでレポートを最初に作成するときにクエリテンプレートを選択します。

クエリを特定の期間に制限すると、結果をより速く生成できます。以下は、過去1時間の購入数と生成された収益を取得するクエリの例です。

1
2
3
SELECT COUNT(*) as Purchases, SUM(price) as Revenue
FROM USERS_BEHAVIORS_PURCHASE_SHARED
WHERE to_date(to_timestamp_ntz(time)) >= DATEADD('hour', -1, date_trunc('day',CURRENT_DATE()));

このクエリは、過去1か月間のメール送信数を取得します:

1
2
3
SELECT COUNT(*) as Sends
FROM USERS_MESSAGES_EMAIL_SEND_SHARED
WHERE to_date(to_timestamp_ntz(time)) >= DATEADD('month', -1, date_trunc('day',CURRENT_DATE()));

CANVAS_IDCANVAS_VARIATION_API_ID、またはCAMPAIGN_IDをクエリすると、関連する名前カラムが結果テーブルに自動的に含まれます。SELECTクエリ自体にそれらを含める必要はありません。

ID名 関連する名前カラム
CANVAS_ID Canvas名
CANVAS_VARIATION_API_ID Canvasバリアント名
CAMPAIGN_ID Campaign名

このクエリは、3つのIDすべてとそれに関連する名前カラムを最大100行で取得します:

1
2
3
SELECT CANVAS_ID, CANVAS_VARIATION_API_ID, CAMPAIGN_ID
FROM USERS_MESSAGES_EMAIL_SEND_SHARED
LIMIT 100

Campaignバリアント名を自動入力する

Campaignバリアント名を自動入力するには、次の例のようにクエリにカラム名MESSAGE_VARIATION_API_IDを含めます:

1
2
3
SELECT CANVAS_ID, CANVAS_VARIATION_API_ID, CAMPAIGN_ID, MESSAGE_VARIATION_API_ID
FROM USERS_MESSAGES_EMAIL_SEND_SHARED
LIMIT 100

トラブルシューティング

クエリは以下のいずれかの理由で失敗する場合があります:

  • SQLクエリの構文エラー
  • 処理タイムアウト(6分後)
    • 実行に6分以上かかるレポートはタイムアウトします。
    • レポートがタイムアウトした場合は、データをクエリする期間を制限するか、より具体的なデータセットをクエリしてみてください。

変数の使用

変数を使用すると、SQLで事前定義された変数タイプを使用して、値を手動でコピーすることなく参照できます。たとえば、CampaignのIDをSQLエディターに手動でコピーする代わりに、{{campaign.${My campaign}}}を使用して、変数タブのドロップダウンからCampaignを直接選択できます。

変数を作成すると、クエリビルダーレポートの変数タブに表示されます。SQL変数を使用する利点は次のとおりです:

  • Campaign変数を作成してレポート作成時にリストから選択することで、Campaign IDを貼り付ける代わりに時間を節約できます。
  • 変数を追加して値を入れ替えることで、将来わずかに異なるユースケース(異なるカスタムイベントなど)でレポートを再利用できます。
  • 各レポートに必要な編集量を減らすことで、SQLの編集時のユーザーエラーを削減できます。SQLに慣れているチームメイトがレポートを作成し、技術的な知識が少ないチームメイトがそれを使用できます。

ガイドライン

変数は次のLiquid構文に従う必要があります: {{ type.${name}}}。ここで、typeは受け入れられるタイプのいずれかであり、nameは任意の名前を選択できます。これらの変数のラベルはデフォルトで変数名になります。

デフォルトでは、すべての変数は必須です(変数の値が選択されないとレポートは実行されません)。ただし、日付範囲は値が指定されない場合、デフォルトで過去30日間になります。

変数タイプ

以下の変数タイプが受け入れられます:

数値

  • 置換値: 指定された値(5.5など)
  • 使用例: some_number_column < {{number.${some name}}}

日付範囲

start_dateend_dateの両方を使用する場合、日付範囲として使用できるように同じ名前にする必要があります。

値の例

日付範囲タイプは、相対、開始日、終了日、または日付範囲にすることができます。

start_dateend_dateの両方が同じ名前で使用されている場合、4つのタイプすべてが表示されます。1つだけ使用されている場合は、関連するタイプのみが表示されます。

  • 置換値: start_dateend_dateを、UTCで指定された日付のUnixタイムスタンプ(秒単位)に置き換えます(1696517353など)。
  • 使用例: 相対、開始日、終了日、日付範囲のすべての変数について:
    • time > {{start_date.${some name}}} AND time < {{end_date.${some name}}}
      • 日付範囲が不要な場合は、start_dateまたはend_dateのいずれかを使用できます。

メッセージング

すべてのメッセージング変数は、1つのグループ内で状態を関連付ける場合、同じ識別子を共有する必要があります。

Canvas

1つのCanvasを選択する場合に使用します。Campaignと同じ名前を共有すると、変数タブ内にCanvasまたはCampaignのいずれかを選択するラジオボタンが表示されます。

  • 置換値: Canvas BSON ID
  • 使用例: canvas_id = '{{canvas.${some name}}}'
Canvases

複数のCanvasesを選択する場合に使用します。Campaignと同じ名前を共有すると、変数タブ内にCanvasまたはCampaignのいずれかを選択するラジオボタンが表示されます。

  • 置換値: Canvases BSON ID
  • 使用例: canvas_id IN ({{canvases.${some name}}})
Campaign

1つのCampaignを選択する場合に使用します。Canvasと同じ名前を共有すると、変数タブ内にCanvasまたはCampaignのいずれかを選択するラジオボタンが表示されます。

  • 置換値: Campaign BSON ID
  • 使用例: campaign_id = '{{campaign.${some name}}}'
Campaigns

複数のCampaignsを選択する場合に使用します。Canvasと同じ名前を共有すると、変数タブ内にCanvasまたはCampaignのいずれかを選択するラジオボタンが表示されます。

  • 置換値: Campaigns BSON ID
  • 使用例: campaign_id IN ({{campaigns.${some name}}})
Campaignバリアント

選択したCampaignに属するCampaignバリアントを選択する場合に使用します。CampaignまたはCampaigns変数と組み合わせて使用する必要があります。

  • 置換値: CampaignバリアントAPI ID(カンマ区切りの文字列、api-id1, api-id2など)。
  • 使用例: message_variation_api_id IN ({{campaign_variants.${some name}}})
Canvasバリアント

選択したCanvasに属するCanvasバリアントを選択する場合に使用します。CanvasまたはCanvases変数と組み合わせて使用する必要があります。

  • 置換値: CanvasバリアントAPI ID(カンマ区切りの文字列、api-id1, api-id2など)。
  • 使用例: canvas_variation_api_id IN ({{canvas_variants.${some name}}})
キャンバスステップ

選択したCanvasに属するキャンバスステップを選択する場合に使用します。Canvas変数と組み合わせて使用する必要があります。

  • 置換値: キャンバスステップAPI ID
  • 使用例: canvas_step_api_id = '{{canvas_step.${some name}}}'
キャンバスステップ(複数)

選択したCanvasesに属するキャンバスステップを選択する場合に使用します。CanvasまたはCanvases変数と組み合わせて使用する必要があります。

  • 置換値: キャンバスステップAPI ID
  • 使用例: canvas_step_api_id IN ({{canvas_steps.${some name}}})
New Stuff!