콘텐츠로 건너뛰기

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

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

이 예시에 대하여

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

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

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

고려 사항

  • 이벤트 구현: 쿼리가 데이터를 반환하려면 먼저 ecommerce.order_placed를 구현하고 total_value(필요한 경우 제품 데이터 포함)를 전송해야 합니다. Shopify 커넥터를 사용하는 경우 권장 이벤트를 이미 사용할 수 있을 수 있습니다.
  • 쿼리 빌더 액세스: 쿼리 빌더를 사용하려면 “PII 보기” 사용자 권한이 필요합니다.
  • 데이터 보존: 쿼리 빌더는 기본적으로 지난 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단계: Order Placed 측정기준 추가하기(선택 사항)

별도의 쿼리를 각각 저장한 다음, 각 쿼리를 개별 타일로 추가합니다(대시보드당 최대 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;

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

보고서 사용 시점
Revenue - Last Touch Attribution Campaign 또는 Canvas별 라스트 터치 기여 매출
커스텀 이벤트 보고서 권장 이벤트의 이벤트 볼륨 및 빈도
Campaign 또는 Canvas 전환 ecommerce.order_placed가 주요 전환 이벤트인 경우
New Stuff!