이벤트 계약
쿼리가 예상하는 필드
| 필드 | 유형 | 그것이 존재하는 이유 |
|---|---|---|
| timestamp_utc | Timestamp | 상품 이벤트가 발생한 시점. |
| user_id | Utf8 | 안정적인 사용자 식별자. |
| event_name | Utf8 | 안정적인 snake_case 마일스톤 이름. |
| source | Utf8 | 획득 또는 캠페인 소스. |
DataFusion SQL
쿼리 복사
sql
WITH user_funnel AS (
SELECT
user_id,
MIN(CASE WHEN event_name = 'signup_completed'
THEN timestamp_utc END) AS signed_up_at,
MIN(CASE WHEN event_name = 'onboarding_completed'
THEN timestamp_utc END) AS onboarded_at,
MIN(CASE WHEN event_name = 'integration_connected'
THEN timestamp_utc END) AS integrated_at,
MIN(CASE WHEN event_name = 'first_value_completed'
THEN timestamp_utc END) AS activated_at
FROM product_events
WHERE timestamp_utc >= now() - INTERVAL '30 days'
GROUP BY user_id
),
stage_counts AS (
SELECT 1 AS step_order, 'Signed up' AS step, COUNT(*) AS users
FROM user_funnel
WHERE signed_up_at IS NOT NULL
UNION ALL
SELECT 2, 'Onboarded', COUNT(*)
FROM user_funnel
WHERE onboarded_at >= signed_up_at
UNION ALL
SELECT 3, 'Integrated', COUNT(*)
FROM user_funnel
WHERE integrated_at >= onboarded_at
UNION ALL
SELECT 4, 'Activated', COUNT(*)
FROM user_funnel
WHERE activated_at >= integrated_at
)
SELECT
step_order,
step,
users,
100.0 * users
/ NULLIF(MAX(CASE WHEN step_order = 1 THEN users END) OVER (), 0)
AS conversion_from_signup_pct,
100.0 * users
/ NULLIF(LAG(users) OVER (ORDER BY step_order), 0)
AS conversion_from_previous_pct
FROM stage_counts
ORDER BY step_order;이 읽기 전용 쿼리는 빈 유형의 테이블에 대해 계획되고 실행됩니다. 아파치 DataFusion 45.2.0. 결정론적 샘플 출력은 합성되어 별도로 검토됩니다. 자신의 데이터에 대해 필드 유형, 임계값 및 비즈니스 정의를 검증합니다. 테스트 방법론을 읽어보세요.
쿼리 결과
가입부터 활성화까지의 유입경로
온보딩이 완료되기 전에 가장 큰 절대 손실이 발생하는 반면 통합은 나중에 가장 강력한 병목 현상으로 남아 있습니다.
Signed up8
Onboarded6
Integrated4
Activated3
| step_order | step | users | conversion_from_signup_pct | conversion_from_previous_pct |
|---|---|---|---|---|
| 1 | Signed up | 8 | 100 | — |
| 2 | Onboarded | 6 | 75 | 75 |
| 3 | Integrated | 4 | 50 | 66.67 |
| 4 | Activated | 3 | 37.5 | 75 |
합성 예제 출력. 운영 결정에 사용하기 전에 자체 이벤트 스키마 및 임계값에 대해 쿼리를 실행하세요.
예제 재현
공공 픽스처 다운로드
JSON 번들은 타입이 지정된 이벤트 계약을 포함합니다. reproducible 입력 행, 정확한 SQL, 예상 출력, 검토 참고 사항 및 엔진 버전. CSV에는 표시된 결과가 포함됩니다.
SQL 작동 방식
- 1user_funnel CTE는 반복되는 이벤트를 각 마일스톤의 첫 번째 타임스탬프로 축소합니다.
- 2타임스탬프 비교는 의도한 순서를 적용하므로 순서가 잘못된 이벤트로 인해 이후 단계가 확장될 수 없습니다.
- 3쿼리는 가입 전환과 이전 단계 전환을 모두 보고하여 전체 성능과 최대 전환 손실을 함께 표시합니다.
- 4이벤트 이름은 사용자가 단계를 달성했음을 증명하지 않는 페이지 조회나 버튼 클릭이 아닌 완료된 이정표를 나타내야 합니다.
결정해야 할 극단적인 경우
- 가입 시간을 기준으로 코호트 기간을 사용하고 최근 가입이 활성화될 때까지 충분한 시간을 허용하십시오.
- 늦게 도착하는 이벤트는 일시적으로 사용자를 최근 계산된 퍼널에서 뒤로 이동시킬 수 있습니다.
- 전체 퍼널의 규모가 충분해진 후에만 획득 소스별로 분류하세요.
추천 대시보드
- 유입경로 막대: 단계별 사용자
- 꺾은선형 차트: 가입 주별 활성화율
- 표: 소스, 계획 또는 페르소나별 변환
레시피를 활용해 보세요
관련 계측 및 가이드
소스 데이터 정의
이 분석을 위한 이벤트 스키마
분석 계속하기
실제 이벤트에서 실행
테이블을 만들고, 필드를 조정하고, 결과를 저장하세요.
무료로 시작하고, 구조화된 이벤트를 보내고, 쿼리 결과를 차트, 공유 대시보드 위젯 또는 알림 입력으로 사용하세요.