コンテンツにスキップ

ダッシュボードビルダーでeコマースのOrder Placedイベントをレポートする

ecommerce.order_placed 推奨イベントからカスタムの売上チャートや注文チャートを作成するには、クエリビルダーでSQLクエリを保存し、ダッシュボードビルダーで結果を可視化します。

この例について

架空の衣料品小売ブランドである Flash & Thread は、e コマース推奨イベントを使用して注文を記録しています。同社のマーケティングチームは、事前構築されたラストタッチアトリビューションのビューだけでなく、日次収益、平均注文額 (AOV)、注文数を1つのダッシュボードで確認したいと考えています。

このシナリオでは、クエリビルダーを使用して Snowflake の共有イベントテーブルから ecommerce.order_placed をクエリし、保存したクエリをダッシュボードビルダーのカスタムクエリタイルとして追加します。このワークフローを繰り返して、追加の指標 (新規購入者とリピート購入者の比較、製品カテゴリー、セグメントレベルの収益など) を作成することもできます。

組み込みの e コマースダッシュボードでは必要な指標の組み合わせをカバーできない場合に、この方法を使用してください。ラストタッチアトリビューションによる収益については、代わりに Revenue - Last Touch Attribution ダッシュボードを参照してください。

考慮事項

  • イベントの実装:クエリがデータを返すには、ecommerce.order_placed が実装され、total_value(および必要に応じて商品データ)を送信している必要があります。Shopify コネクターを使用している場合は、推奨イベントがすでに利用可能になっていることがあります。
  • クエリビルダーへのアクセス:クエリビルダーを使用するには、「PII の表示」ユーザー権限が必要です。
  • データの保持:クエリビルダーは、デフォルトで過去60日間のデータを返します。Snowflake データ共有を利用すると、保持されている最大2年分のデータをクエリできます。詳しくはクエリビルダーを参照してください。
  • タイムアウト:実行時間が6分を超えるクエリはタイムアウトします。レポートが失敗した場合は、日付範囲を絞り込むか、TIME でフィルターするか、オーディエンスのサイズを小さくしてください。イベントテーブルは TIME でクラスタリングされているため、イベントの発生日時でフィルターすることをおすすめします。
  • 収益フィールド:サンプルクエリでは、イベントの properties から total_value を合計しています。商品レポートにおける Braze の標準化された e コマース収益は、多くの場合、各商品の price と quantity から算出されます。total_value を商品の明細行と一致させるか、スキーマに合わせて SQL を調整してください。
  • 列ラベル:表示用の列名は二重引用符で囲んでください(例:"Date"、"Total Revenue")。これにより、ダッシュボードビルダーで読みやすい軸とテーブルのヘッダーが表示されます。
  • テスト:この記事の SQL は例として提供しています。ダッシュボードを広く共有する前に、ご自身のワークスペースでクエリを検証してください。

設定

ステップ 1: 日次収益の SQL クエリを作成する

  1. 分析 > クエリビルダーに移動します。
  2. SQL クエリを作成を選択し、次に SQL エディターを選択します。
  3. クエリに名前を付けます (例: Flash Thread — daily eCommerce revenue)。
  4. 過去 60 日間の暦日ごとの総収益を求める次のクエリを貼り付けて、必要に応じて調整します。
SELECT
  DATE_TRUNC('day', TO_TIMESTAMP_NTZ(TIME))::DATE AS "Date",
  SUM(PARSE_JSON(PROPERTIES):total_value::NUMBER(18, 2)) AS "Total Revenue"
FROM USERS_BEHAVIORS_CUSTOMEVENT_SHARED
WHERE NAME = 'ecommerce.order_placed'
  AND TO_TIMESTAMP_NTZ(TIME) >= DATEADD(day, -60, CURRENT_TIMESTAMP())
  AND TO_TIMESTAMP_NTZ(TIME) <= CURRENT_TIMESTAMP()
GROUP BY 1
ORDER BY 1;
  1. クエリを実行を選択し、次に保存を選択します。

クエリビルダーの設定について詳しくは、クエリビルダーでのレポートの実行を参照してください。

ステップ 2: クエリをダッシュボードビルダーのタイルに追加する

  1. 分析 > ダッシュボードビルダーに移動します。
  2. ダッシュボードを作成を選択します (または既存のダッシュボードを開きます)。
  3. データソースとしてカスタムクエリを選択します。
  4. + タイルを追加を選択し、ステップ 1 で保存したクエリを選択します。
  5. 鉛筆アイコンを選択してタイルを編集します。
    • グラフの種類を折れ線グラフに設定します。
    • X 軸を Date に設定します。
    • Y 軸を Total Revenue に設定します。
  6. 必要に応じてタイルのサイズを変更し、保存を選択します。
  7. ダッシュボードを表示 > ダッシュボードを実行を選択します。

ダッシュボードの生成には数分かかる場合があります。カスタムダッシュボードの作成を参照してください。

ステップ 3: Order Placed の追加指標を加える (オプション)

個別のクエリを作成して保存し、それぞれを独自のタイルとして追加します (1 つのダッシュボードにつき最大 10 タイル)。

1 日あたりの平均注文額と注文数

SELECT
  DATE_TRUNC('day', TO_TIMESTAMP_NTZ(TIME))::DATE AS "Date",
  AVG(PARSE_JSON(PROPERTIES):total_value::NUMBER(18, 2)) AS "Average Order Value",
  COUNT(*) AS "No. of Orders"
FROM USERS_BEHAVIORS_CUSTOMEVENT_SHARED
WHERE NAME = 'ecommerce.order_placed'
  AND TO_TIMESTAMP_NTZ(TIME) >= DATEADD(day, -60, CURRENT_TIMESTAMP())
  AND TO_TIMESTAMP_NTZ(TIME) <= CURRENT_TIMESTAMP()
GROUP BY 1
ORDER BY 1;

X 軸に Date、Y 軸に両方の指標を設定した折れ線グラフまたは棒グラフを使用します (表示しない列は選択を解除してください)。

1 日あたりの新規購入者とリピート購入者

このシナリオでは、各ユーザーの最初の ecommerce.order_placed の日と、それ以降の購入日を比較します。クエリビルダーの期間がレポート対象期間全体 (例えば、デフォルトの 60 日間) をカバーしている場合に、最も正確な結果が得られます。

WITH order_days AS (
  SELECT DISTINCT
    USER_ID,
    DATE_TRUNC('day', TO_TIMESTAMP_NTZ(TIME))::DATE AS purchase_day
  FROM USERS_BEHAVIORS_CUSTOMEVENT_SHARED
  WHERE NAME = 'ecommerce.order_placed'
),
first_purchase AS (
  SELECT
    USER_ID,
    MIN(purchase_day) AS first_day
  FROM order_days
  GROUP BY USER_ID
),
per_day_purchasers AS (
  SELECT DISTINCT
    USER_ID,
    purchase_day
  FROM order_days
)
SELECT
  p.purchase_day AS "Date",
  COUNT(DISTINCT CASE
    WHEN f.first_day = p.purchase_day THEN p.USER_ID
  END) AS "New Purchasers",
  COUNT(DISTINCT CASE
    WHEN f.first_day < p.purchase_day THEN p.USER_ID
  END) AS "Returning Purchasers"
FROM per_day_purchasers AS p
INNER JOIN first_purchase AS f
  ON p.USER_ID = f.USER_ID
GROUP BY 1
ORDER BY 1;

注文明細の商品カテゴリー

products 配列をフラット化し、カテゴリーフィールドでフィルターします。別の商品メタデータキーを使用している場合は、metadata.category を置き換えてください。

SELECT
  f.value:metadata:category::STRING AS "Product Category",
  COUNT(*) AS "Line Items"
FROM USERS_BEHAVIORS_CUSTOMEVENT_SHARED,
  LATERAL FLATTEN(INPUT => PARSE_JSON(PROPERTIES):products) f
WHERE NAME = 'ecommerce.order_placed'
  AND f.value:metadata:category::STRING IS NOT NULL
  AND TRIM(f.value:metadata:category::STRING) != ''
  AND LOWER(TRIM(f.value:metadata:category::STRING)) != 'undefined'
GROUP BY 1
ORDER BY 2 DESC;

セグメント別の購入数と収益 (セグメント分析)

これには、レポート対象のセグメントでセグメント分析トラッキングが有効になっている必要があります。日付ピッカーには SQL 変数を使用します。

WITH event_conversions AS (
  SELECT
    user_id,
    time,
    TRY_CAST(GET_PATH(PARSE_JSON(PROPERTIES), 'total_value')::string AS FLOAT) AS price,
    id AS purchase_event_id,
    f.value::string AS user_segment_membership_id
  FROM USERS_BEHAVIORS_CUSTOMEVENT_SHARED,
    LATERAL FLATTEN(input => user_segment_membership_ids) AS f
  WHERE NAME = 'ecommerce.order_placed'
    AND time > {{start_date.${Start Date}}}
    AND time < {{end_date.${End Date}}}
)
SELECT
  user_segment_membership_id AS "Segment Analytics Id",
  COUNT(DISTINCT purchase_event_id) AS "Total Purchases",
  ROUND(SUM(price), 2) AS "Total Revenue"
FROM event_conversions
GROUP BY 1
ORDER BY 3 DESC;

その他の組み込み e コマースレポート

レポート 使用する場面
Revenue - Last Touch Attribution キャンペーンまたはキャンバス別のラストタッチアトリビューション収益
カスタムイベントレポート 推奨イベントのイベント量と頻度
キャンペーンまたはキャンバスのコンバージョン ecommerce.order_placed が1次コンバージョンイベントの場合
New Stuff!