콘텐츠로 건너뛰기

Dashboard Builder에서 이커머스 Order Placed 이벤트 보고하기

ecommerce.order_placed 권장 이벤트에서 커스텀 매출 및 주문 차트를 작성하려면 쿼리 빌더에서 SQL 쿼리를 저장하고 Dashboard Builder에서 결과를 시각화합니다.

사전 요구 사항

요구 사항 설명
쿼리 빌더 권한 워크스페이스 수준의 “대시보드 보고서 보기”, “PII 보기”, “대시보드 보고서 편집” 권한
ecommerce.order_placed 이벤트 total_value(필요한 경우 제품 데이터 포함)를 전송하도록 구현된 이커머스 추천 이벤트. Shopify 커넥터를 사용하는 경우 추천 이벤트를 이미 사용할 수 있을 수도 있습니다.

이 예시에 대하여

가상의 의류 소매 브랜드인 Flash & Thread는 이커머스 추천 이벤트로 주문을 기록합니다. 이 브랜드의 마케팅 팀은 사전 구축된 라스트 터치 기여도 보기뿐만 아니라 일일 매출, 평균 주문 금액(AOV), 주문량을 하나의 대시보드에서 확인하고자 합니다.

이 시나리오에서는 쿼리 빌더를 사용해 Snowflake 공유 이벤트 테이블에서 ecommerce.order_placed를 쿼리한 다음, 저장된 쿼리를 대시보드 빌더에 커스텀 쿼리 타일로 추가합니다. 추가 측정기준(신규 구매자와 재구매자 비교, 제품 카테고리, Segment 수준 매출 등)에 대해서도 이 워크플로를 반복할 수 있습니다.

기본 제공 이커머스 대시보드로 원하는 측정기준 조합을 확인할 수 없을 때 이 방법을 사용하세요. 라스트 터치 기여 매출은 대신 Revenue - Last Touch Attribution 대시보드를 참조하세요.

고려 사항

  • 데이터 유지: 쿼리 빌더는 기본적으로 지난 60일간의 데이터를 반환합니다. Snowflake 데이터 공유를 사용하면 최대 2년까지 유지된 데이터를 쿼리할 수 있습니다. 자세한 내용은 쿼리 빌더를 참조하세요.
  • 시간 초과: 6분 넘게 실행되는 쿼리는 시간 초과됩니다. 보고서가 실패하면 날짜 범위를 좁히거나, TIME으로 필터링하거나, 오디언스 규모를 줄이세요. 이벤트 테이블은 TIME 기준으로 클러스터링되어 있으므로 이벤트가 발생한 시점으로 필터링하는 것이 좋습니다.
  • 매출 필드: 샘플 쿼리는 이벤트 properties의 total_value를 합산합니다. 제품 보고서에 표시되는 Braze의 표준화된 이커머스 매출은 대개 각 제품의 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단계: 추가 주문 완료 측정기준 추가(선택 사항)

별도의 쿼리를 각각 저장한 다음, 각 쿼리를 개별 타일로 추가합니다(대시보드당 최대 10개 타일).

일별 평균 주문 금액 및 주문 수

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축에 두 측정기준을 모두 배치한 선 차트 또는 막대 차트를 사용합니다(표시하지 않을 열은 선택 해제하세요).

일별 신규 구매자와 재구매자 비교

이 시나리오는 각 사용자의 첫 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;

Segment별 구매 및 매출(Segment 분석)

보고 대상 Segments에 Segment 분석 추적이 활성화되어 있어야 합니다. 날짜 선택기에는 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;

기타 기본 제공 이커머스 보고

보고서 사용 시기
매출 - 최종 접점 기여도 Campaign 또는 Canvas별 최종 접점 기여 매출
커스텀 이벤트 보고서 권장 이벤트의 이벤트 발생량 및 빈도
Campaign 또는 Canvas 전환 ecommerce.order_placed가 주요 전환 이벤트인 경우
New Stuff!