콘텐츠로 건너뛰기
Telemetry
제품 분석 SQL 레시피

SQL에서 가입-활성화 퍼널 구축

가입, 온보딩, 통합, 최우선 가치 마일스톤을 통해 순 사용자 전환을 계산합니다.

중급product_events검토됨 2026-07-27테스트됨 아파치 DataFusion 45.2.0

검토자 Telemetry 제품 팀 . SQL 호환성, 이벤트 계약, 합성 출력 및 운영상의 주의사항. 표준 및 소유권 검토

질문에 답변됨

신규 사용자는 첫 번째 가치에 도달하기 전에 어디로 떠나나요?

퍼널은 모든 단계에 행동 정의가 있는 경우에만 유용합니다. 이 쿼리는 사용자당 하나의 행을 생성하고, 마일스톤 순서를 적용하고, 가입 및 이전 단계의 전환을 계산합니다.

이벤트 계약

쿼리가 예상하는 필드

필드유형그것이 존재하는 이유
timestamp_utcTimestamp상품 이벤트가 발생한 시점.
user_idUtf8안정적인 사용자 식별자.
event_nameUtf8안정적인 snake_case 마일스톤 이름.
sourceUtf8획득 또는 캠페인 소스.
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. 결정론적 샘플 출력은 합성되어 별도로 검토됩니다. 자신의 데이터에 대해 필드 유형, 임계값 및 비즈니스 정의를 검증합니다. 테스트 방법론을 읽어보세요.

쿼리 결과

가입부터 활성화까지의 유입경로

온보딩이 완료되기 전에 가장 큰 절대 손실이 발생하는 반면 통합은 나중에 가장 강력한 병목 현상으로 남아 있습니다.

step_orderstepusersconversion_from_signup_pctconversion_from_previous_pct
1Signed up8100
2Onboarded67575
3Integrated45066.67
4Activated337.575

합성 예제 출력. 운영 결정에 사용하기 전에 자체 이벤트 스키마 및 임계값에 대해 쿼리를 실행하세요.

Signup-to-activation funnel: Build a Signup-to-Activation Funnel in SQL 예제 결과의 합성 users 값에 대한 정적 차트
결정론적 예제 출력의 색인 생성 가능한 SVG입니다. 기사, 런북 또는 저작자가 포함된 디자인 검토를 위해 다운로드하세요.

예제 재현

공공 픽스처 다운로드

JSON 번들은 타입이 지정된 이벤트 계약을 포함합니다. reproducible 입력 행, 정확한 SQL, 예상 출력, 검토 참고 사항 및 엔진 버전. CSV에는 표시된 결과가 포함됩니다.

SQL 작동 방식

  1. 1user_funnel CTE는 반복되는 이벤트를 각 마일스톤의 첫 번째 타임스탬프로 축소합니다.
  2. 2타임스탬프 비교는 의도한 순서를 적용하므로 순서가 잘못된 이벤트로 인해 이후 단계가 확장될 수 없습니다.
  3. 3쿼리는 가입 전환과 이전 단계 전환을 모두 보고하여 전체 성능과 최대 전환 손실을 함께 표시합니다.
  4. 4이벤트 이름은 사용자가 단계를 달성했음을 증명하지 않는 페이지 조회나 버튼 클릭이 아닌 완료된 이정표를 나타내야 합니다.

결정해야 할 극단적인 경우

  • 가입 시간을 기준으로 코호트 기간을 사용하고 최근 가입이 활성화될 때까지 충분한 시간을 허용하십시오.
  • 늦게 도착하는 이벤트는 일시적으로 사용자를 최근 계산된 퍼널에서 뒤로 이동시킬 수 있습니다.
  • 전체 퍼널의 규모가 충분해진 후에만 획득 소스별로 분류하세요.

추천 대시보드

  • 유입경로 막대: 단계별 사용자
  • 꺾은선형 차트: 가입 주별 활성화율
  • 표: 소스, 계획 또는 페르소나별 변환

알림 안내

성숙한 가입 코호트에 대한 활성화가 최근 기준보다 크게 낮아지면 긴급도가 낮은 알림을 사용하세요.

알림 설정 읽기

레시피를 활용해 보세요

관련 계측 및 가이드

소스 데이터 정의

이 분석을 위한 이벤트 스키마

분석 계속하기

실제 이벤트에서 실행

테이블을 만들고, 필드를 조정하고, 결과를 저장하세요.

무료로 시작하고, 구조화된 이벤트를 보내고, 쿼리 결과를 차트, 공유 대시보드 위젯 또는 알림 입력으로 사용하세요.

API 키 받기