クエリビルダー
クエリビルダーを使用すると、Snowflake の Braze データを使用してレポートを生成できます。クエリビルダーには、事前組み込みの SQL クエリテンプレートが付属しているので、すぐに始めることができます。また、独自のカスタム SQL クエリを作成して、より多くのインサイトを得ることもできます。
アクセスできるユーザー
この機能では一部の顧客データに直接アクセスできるため、「PII を表示」権限がある場合にのみ、クエリビルダーにアクセスできます。
クエリービルダーでのレポートの実行
レポートを実行するには、次のステップを実行します。
- [分析] > [クエリビルダー] に移動します。
古いナビゲーションを使用している場合、[クエリビルダー] は [データ] の下にあります。
- [新しい SQL レポートを作成] をクリックします。クエリの作成にヒントやヘルプが必要な場合は、[クエリテンプレート] を選択し、リストからテンプレートを選択します。それ以外の場合は、[SQL エディター] を選択してエディターに直接移動します。
- レポートには、現在の日時からなる名前が自動的に付けられます。名前にカーソルを合わせて をクリックし、SQL クエリにわかりやすい名前を付けます。
- エディターで SQL クエリを記述するか、[AI クエリビルダー] タブから AI の支援を受けます。独自の SQL を作成する場合は、要件とリソースについて「カスタム SQL」を参照してください。
- [クエリを実行] をクリックします。
- クエリを保存します。
- レポートの CSV をダウンロードするには、[エクスポート] をクリックします。
各レポートの結果は、1 日に 1 回生成できます。同じレポートを 1 日に複数回実行すると、それらのレポートに同じ結果が表示されます。
AI クエリビルダー
AI クエリビルダーは OpenAI を搭載した GPT を活用して、クエリの SQL を提案します。
AI クエリビルダーは、現在ベータ機能として提供されています。このベータ版への参加に興味がある場合は、カスタマーサクセスマネージャーにお問い合わせください。
AI クエリビルダーを使用するには、次の手順に従います。
- クエリビルダーでレポートを作成したら、[AI クエリビルダー] タブを選択します。
- プロンプトを入力するか、サンプルプロンプトを選択し、[生成] をクリックしてプロンプトを SQL に変換します。
- 生成された SQL が正しいことを確認して、[エディターに挿入] をクリックします。
ヒント
- 利用可能な Snowflake データテーブルをよく理解してください。これらのテーブルに存在しないデータを要求すると、ChatGPT が正しくないテーブルを作成する可能性があります。
- この機能の SQL 記述ルールをよく理解してください。このルールに従わないと、エラーが発生します。
- AI クエリビルダーでは、1 分あたり最大 20 個のプロンプトを送信できます。
データはどのように使用されて、OpenAI に送信されるのですか?
SQL を生成するために、Braze はプロンプトを OpenAI の API プラットフォームに送信します。Braze から OpenAI に送信されるすべてのクエリは匿名化されます。つまり、提供するコンテンツに一意に識別できる情報を含めない限り、OpenAI はクエリの送信元を特定できません。OpenAI の API プラットフォームコミットメントに詳述されているように、Braze 経由で OpenAI の API に送信されたデータは、モデルのトレーニングや改善には使用されず、30日後に削除されます。使用ポリシーなど、お客様に関連する OpenAI のポリシーを必ず順守してください。Braze は AI が生成したコンテンツに関していかなる種類の保証も行いません。
レポートのタイムアウト
レポートの実行が 6 分を超えると、タイムアウトします。これが、ある時点で実行する最初のクエリである場合、処理に時間がかかるため、タイムアウトする可能性が高くなります。タイムアウトした場合は、レポートをもう一度実行してみてください。
再試行してもレポートがタイムアウトしたり、エラーが発生したりした場合は、サポートにお問い合わせください。
クエリテンプレート
すべてのテンプレートは、過去 60 日間のデータを読み込んで表示できます。クエリテンプレートにアクセスするには、最初にレポートを作成するときに [SQL クエリを作成] > [クエリテンプレート] を選択します。
クエリ名 | 説明 | 指標 | プレビュー |
---|---|---|---|
チャネルのエンゲージメントと収益 | チャネルごとに、そのチャネルのすべてのエンゲージメント指標 (開封数、クリック数など)、収益、トランザクション数、平均価格が表示されます。 |
|
![](/docs/ja/assets/img_archive/query_builder_q1.png?091fb7fdeeb16ff6355c17cc08fac928) |
ドメインあたりのメールバウンス数 | メールドメインあたりのバウンス数 | ![](/docs/ja/assets/img_archive/query_builder_q4.png?9393d5b26445b3a5f771223292b784c8) | |
国別のメールのパフォーマンス | 国ごとに、送信数、間接開封率、直接開封率の指標が表示されます。国は、プッシュ送信時のユーザーの国です。 | ![] (/docs/ja/assets/img_archive/query_builder_q3.png?dea9ce73cf0e73331d8fb053852c791e) | |
メールサブスクリプショングループのオプトイン数とオプトアウト数 | 毎週、すべてのメールサブスクリプショングループのユニークユーザーのオプトイン数とオプトアウト数が表示されます。 | ![](/docs/ja/assets/img_archive/query_builder_q2.png?17f25ead98da6d878bcd5ee52f83ccee) | |
クリックされたメールの URL | このレポートには、メール内の各リンクがクリックされた回数が表示されます。このレポートを実行するには、キャンペーンまたはキャンバスの API 識別子を指定する必要があります。キャンペーンの API 識別子は [キャンペーンの詳細] ページの下部にあり、キャンバスの API 識別子は [バリアントを分析] の下にあります。 パーソナライズする前の元のリンクごとに、クリック数が表示されます。CSV ダウンロードには、クリックしたすべてのユーザーのユーザー ID、クリックしたリンク、クリックした時点のタイムスタンプが含まれます。 |
パーソナライズする前の元の URL: Liquid タグがすべて取り除かれた URL | ![](/docs/ja/assets/img_archive/query_builder_q5.png?328fcfcef7c90b7df29a94aceb56165e) |
国別の収益 | このレポートには、特定のキャンペーン / キャンバスについて国別の収益が表示されます。このレポートを実行するには、キャンペーンまたはキャンバスの API 識別子を指定する必要があります。キャンペーンの API 識別子は [キャンペーンの詳細] ページの下部にあり、キャンバスの API 識別子は [バリアントを分析] の下にあります。 国ごとに、発生した収益、注文数、返品数、純収益、総収益が表示されます。 |
|
![](/docs/ja/assets/img_archive/query_builder_q6.png?0cc2480905fdefb2de463a7602c23fc5) |
国別のプッシュのパフォーマンス | 国ごとに、配信数、開封率、クリック率などの指標が表示されます。国は、メール送信時のユーザーの国です。 | ![] (/docs/ja/assets/img_archive/query_builder_q7.png?176921003d9c7b23c30fd233a5969355) |
カスタム SQL
SQL クエリは、Snowflake 構文を使用して記述する必要があります。クエリ可能なテーブルとカラムの全リストについては、テーブルのリファレンスを参照してください。
クエリービルダー内でテーブルの詳細を表示するには次の手順に従います。
- [クエリービルダー] ページから [参照] パネルを開き、[利用可能なデータテーブル] を選択すると、利用できるデータテーブルとその名前が表示されます。
- [詳細を見る] をクリックすると、テーブルの説明と、データ型などのテーブル列に関する情報が表示されます。
- テーブル名を 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
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()));
トラブルシューティング
クエリは次のいずれかの理由で失敗する可能性があります。
- SQL クエリの構文エラー
- 処理タイムアウト (6 分後)
- レポートの実行が 6 分を超えると、タイムアウトします。
- レポートがタイムアウトした場合は、クエリするデータの時間範囲を限定するか、より具体的なデータセットをクエリしてみてください。
変数
概要
変数を使用すると、SQL に値を手動でコピーせずに、事前定義されている変数型を使用して値を参照できます。例えば、キャンペーン ID を SQL エディターに手動でコピーする代わりに、{{campaign.${My campaign}}}
を使用して [変数] タブのドロップダウンからキャンペーンを直接選択できます。
変数を作成すると、その変数がクエリビルダーレポートの [変数] タブに表示されます。SQL 変数を使用する利点を以下に示します。
- レポート作成時にキャンペーン ID を貼り付ける代わりに、キャンペーン変数を作成してリストから選択することで、時間を節約できます。
- レポートを再利用できる変数を追加しておくと、将来、少し異なるユースケース (別のカスタムイベントなど) で値を入れ替えることができます。
- 各レポートに必要な編集作業を減らすことで、SQL 編集時のユーザーエラーを低減できます。SQL に慣れているチームメンバーがレポートを作成すると、技術系以外のメンバーも使用できます。
ガイドライン
変数は Liquid 構文: {{ type.${name}}}
に従う必要があります。ここで、type
は受け入れられる型の 1 つでなければならず、name
は自由に指定できます。これらの変数のラベルは、デフォルトで変数名になります。
デフォルトでは、日付範囲を除くすべての変数が必須です (変数値を選択しない限りレポートは実行されません)。日付範囲は、値を指定しないとデフォルトで過去 30 日間になります。
変数タイプ
次の変数タイプを使用できます。
数値
- 置換する値: 指定された値 (
5.5
など) - 使用例:
some_number_column < {{number.${some name}}}
期間
start_date
と end_date
の両方を使用する場合は、期間として使用できるように同じ名前にする必要があります。
値の例
期間タイプには、相対日付、開始日、終了日、または日付範囲を指定できます。
start_date
と end_date
の両方を同じ名前で使用した場合、4 つのタイプすべてが表示されます。1 つのみを使用した場合、関連するタイプのみが表示されます。
期間のタイプ | 説明 | 必須の値 |
---|---|---|
相対 | 過去 X 日間を指定できます | start_date が必須 |
開始日 | 開始日を指定できます | start_date が必須 |
終了日 | 終了日を指定できます | end_date が必須 |
期間 | 開始日と終了日の両方を指定できます | start_date と end_date の両方が必須 |
- 置換する値:
start_date
とend_date
を、指定された日付の UTC での Unix タイムスタンプ (秒単位) に置き換えます (1696517353
など)。 - 使用例: 相対、開始日、終了日、および期間の変数すべてについて:
time > {{start_date.${some name}}} AND time < {{end_date.${some name}}}
- 期間が不要の場合は、
start_date
またはend_date
のいずれかを使用できます。
- 期間が不要の場合は、
メッセージング
メッセージングの状態を 1 つのグループにまとめる場合は、グループ内のメッセージング変数の識別子が同じでなければなりません。
canvas
キャンバスを 1 つ選択する場合に使用します。キャンバス名をキャンペーン名と同じにすると、[変数] パネルにキャンバスまたはキャンペーンのいずれかを選択できるラジオボタンが表示されます。
- 置換する値: キャンバスの BSON ID
- 使用例:
canvas_id = ‘{{canvas.${some name}}}’
Canvases
キャンバスを複数選択する場合に使用します。キャンバス名をキャンペーン名と同じにすると、[変数] タブにキャンバスまたはキャンペーンのいずれかを選択できるラジオボタンが表示されます。
- 置換する値: 各キャンバスの BSON ID
- 使用例:
canvas_id IN ({{canvases.${some name}}})
campaign
キャンペーンを 1 つ選択する場合に使用します。キャンペーン名をキャンバス名と同じにすると、[変数] タブにキャンバスまたはキャンペーンのいずれかを選択できるラジオボタンが表示されます。
- 置換する値: キャンペーンの BSON ID
- 使用例:
campaign_id = ‘{{campaign.${some name}}}’
campaigns
キャンペーンを複数選択する場合に使用します。キャンペーン名をキャンバス名と同じにすると、[変数] タブにキャンバスまたはキャンペーンのいずれかを選択できるラジオボタンが表示されます。
- 置換する値: 各キャンペーンの BSON ID
- 使用例:
campaign_id IN ({{campaigns.${some name}}})
campaign_variants
選択したキャンペーンに属するキャンペーンバリアントを選択する場合に使用します。campaign 変数または campaigns 変数と組み合わせて使用する必要があります。
- 置換する値: キャンペーンバリアントの API ID。コンマで区切られた文字列 (
api-id1, api-id2
など)。 - 使用例:
message_variation_api_id IN ({{campaign_variants.${some name}}})
canvas_variants
選択したキャンバスに属するキャンバスバリアントを選択する場合に使用します。canvas 変数または canvases 変数と組み合わせて使用する必要があります。
- 置換する値: キャンバスバリアントの API ID。コンマで区切られた文字列 (
api-id1, api-id2
など)。 - 使用例:
canvas_variation_api_id IN ({{canvas_variants.${some name}}})
canvas_step
選択したキャンバスに属するキャンバスステップを 1 つ選択する場合に使用します。canvas 変数とともに使用する必要があります。
- 置換する値: キャンバスステップの API ID
- 使用例:
canvas_step_api_id = ‘{{canvas_step.${some name}}}’
canvas_steps
選択した複数のキャンバスに属するキャンバスステップを複数選択する場合に使用します。canvas 変数または canvases 変数と組み合わせて使用する必要があります。
- 置換する値: 各キャンバスステップの API ID
- 使用例:
canvas_step_api_id IN ({{canvas_steps.${some name}}})
products
製品名のリストを選択する場合に使用します。
- 置換する値: 製品名は、一重引用符で囲み、コンマで区切ります (
product1, product2
など)。 - 使用例:
product_id IN ({{products.${product name (optional)}}})
custom_events
カスタムイベントのリストを選択する場合に使用します。
- 置換する値: カスタムイベントのプロパティ名はコンマで区切ります(
event1, event2
など)。 - 使用例:
name = ‘{{custom_events.${event names)}}}’
custom_event_properties
カスタムイベントプロパティ名のリストを選択する場合に使用します。custom_events 変数とともに使用する必要があります。
- 置換する値: カスタムイベントのプロパティ名はコンマで区切ります(
property1, property2
など)。 - 使用例:
name = ‘{{custom_event_properties.${property names)}}}’
workspace
ワークスペースを選択する場合に使用します。
- 置換する値: ワークスペースの BSON ID
- 使用例:
workspace_id = ‘{{workspace.${app_group_id}}}’
catalogs
カタログを選択する場合に使用します。
- 置換する値: カタログの BSON ID
- 使用例:
catalog_id = ‘{{catalogs.${catalog}}}’
catalog_fields
カタログのフィールドを選択する場合に使用します。catalogs 変数とともに使用する必要があります。
- 置換する値: カタログフィールド名
- 使用例:
field_name = '{{catalog_fields.${some name}}}’
options
オプションのリストから選択する場合に使用します。
- 置換する値: 選択したオプションの値
- 使用例:
- 選択肢を持つドロップダウンの場合:
{{options.${metrics} | is_multi_select: 'true' | options: '[{"label": "test", "value": "test_value"}, {"label": "test2", "value": "test_value2"}]'}}
is_multi_select
を使用すると、エンドユーザーが複数のオプションを選択できるかどうかを指定できます
- ラジオボタンの場合:
{{options.${metrics} | is_radio_button: 'true' | options: '[{"label": "test", "value": "test_value"}, {"label": "test2", "value": "test_value2"}]'}}
- 選択肢を持つドロップダウンの場合:
segments
分析の追跡が有効になっているセグメントを選択する場合に使用します。
- 置換する値: セグメントの分析 ID。これは、
user_segment_membership_ids
列を含むテーブルでその列に格納されている ID に対応します。 - 使用例:
{{segments.${analytics_segments}}}
string
繰り返される文字列値をレポート実行の合間に変更する場合に使用します。この変数を使用すると、SQL 内の値を複数回ハードコーディングする必要がなくなります。
- 置換する値: 引用符で囲まないそのままの文字列
- 使用例:
{{string.${some name}}}
tags
キャンペーンやキャンバスのタグを選択する場合に使用します。
- 置換する値: 選択したタグに関連付けられているキャンペーンとキャンバスの BSON ID。一重引用符で囲み、コンマで区切ります。
- 使用例:
{{tags.${some tags}}}
変数のメタデータ
メタデータを変数にアタッチして、その動作を変更できます。これを行うには、変数名の後にパイプ ( | ) 文字を付けてメタデータを追加します。メタデータの順序は関係なく、いくつでも追加できます。さらに、特定の変数に固有の特殊なメタデータを除き、すべてのタイプのメタデータを任意の変数に使用できます。特殊なメタデータについてはそのセクションで説明します。メタデータの使用はすべて任意であり、デフォルトの変数の動作を変更するために使用されます。 |
使用例: {{string.${my var}| is_required: ‘false’ | description: ‘My optional string var’}}
visible
変数が表示されるかどうかを指定します。すべての変数はデフォルトで [変数] タブに表示され、値を入力できます。
他の変数に値があるかどうかなど、値が他の変数に依存する特殊変数がいくつかあります。これらの特殊変数について、Brase では「表示しない」とマークして、[変数] タブで非表示にしています。
使用例: visible: ‘false’
required
変数がデフォルトで必須かどうかを指定します。変数の値が空の場合、通常は正しくないクエリになります。
使用例: required: ‘false’
order
[変数] タブでの変数の位置を選択する場合に使用します。
使用例: order: ‘1’
include_quotes
変数の値を一重引用符で囲む場合に使用します。
使用例: include_quotes: ‘true’
include_double_quotes
変数の値を二重引用符で囲む場合に使用します。
使用例: include_double_quotes: ‘true’
is_multi_select
選択肢を持つドロップダウンで単一選択または複数選択のいずれを許可するかを指定します。現在、options 変数を使用する場合にのみ、このメタデータを含めることができます。
使用例: is_multi_select: ‘true’
is_radio_button
[変数] タブの選択肢を持つドロップダウンの代わりに、ラジオボタンとしてオプションを表示します。options 変数を使用する場合にのみ、このメタデータを含めることができます。
使用例: is_radio_button: ‘true’
options
選択可能なオプションのリストをラベルと値の形式で提供する場合に使用します。ラベルが表示され、オプションが選択されたときに変数が値に置き換えられます。 options 変数を使用する場合にのみ、このメタデータを含めることができます。
使用例: options: '[{"label": "test", "value": "test_value"}, {"label": "test2", "value": "test_value2"}]'
placeholder
変数の入力フィールドに表示されるプレースホルダーのテキストを指定します。
使用例: placeholder: ‘enter some value’
description
変数の入力フィールドの下に表示される説明テキストを指定します。
使用例: description: ‘some description’
default_value
値が指定されていない場合の変数のデフォルト値を指定します。
使用例: default_value: ‘5’
hide_label
変数名のラベルを非表示にします。変数名はデフォルトのラベルとして使用されます。
使用例: hide_label: ‘true’
特殊変数
次の変数は他の変数とともに使用できます。
他の変数の値の有無
変数の値が入力されているかどうかを知る場合に使用します。これは、オプションの変数に値が入力されていない場合に条件を短絡評価する場合に便利です。
- 置換する値: 他の変数の値に応じて
true
またはfalse
- 使用例:
{{string.${type_name_has_no_value} | visible: 'false'}} or {{string.${type_name_has_value} | visible: 'false'}}
type
と name
は参照先の変数のものです。例えば、オプション変数 {{campaigns.${messaging}}
を短絡評価するには、次の文を使用できます。
{{string.${campaigns_messaging_has_no_value} | visible: 'false'}} OR campaign_id IN ({{campaigns.${messaging} | is_required: ‘false’}})
データと結果
結果および結果のエクスポートは、最大 1,000 行のテーブルです。大量のデータを必要とするレポートには、Currents や Braze のエクスポート API など、他のツールを使用してください。
クエリービルダーの使用量の監視
Braze の各ワークスペースには、1 か月あたり 5 の Snowflake クレジットがあります。Snowflake クレジットのごく一部が、クエリを実行したりテーブルをプレビューしたりするたびに使用されます。
Snowflake クレジットは機能間で共有されません。例えば、SQL セグメントエクステンションとクエリビルダーのクレジットは互いに独立しています。
クレジット使用量は SQL クエリの実行時間と関係しています。実行時間が長いほど、クエリで消費される Snowflake クレジットの量が多くなります。実行時間は、時間の経過に伴うクエリの複雑さとサイズによって異なります。実行するクエリが複雑で頻繁になるほど、リソースの割り当てが大きくなり、実行時間が短縮されます。
各クエリのクレジット使用量を追跡する機能がもうすぐ装備されます。
Braze の SQL エディターでレポートの作成、編集、保存を行う場合、クレジットは使用されません。クレジットは、毎月 1 日午前 12 時 (UTC) に 5 にリセットされます。[クエリビルダー] ページの上部で、月次クレジット使用量を監視できます。
クレジット上限に達すると、クエリの実行はできませんが、SQL レポートの作成、編集、および保存はできます。クエリビルダーのクレジットをさらに購入する場合は、アカウントマネージャーにお問い合わせください。