콘텐츠로 건너뛰기
Telemetry
문서 찾아보기
가이드업데이트된 2026년 7월 27일Telemetry 편집 및 제품 팀의 검토3 최소 읽기

코딩 에이전트와 함께 이 문서를 사용하세요.

Claude Code, Codex, Cursor 또는 다른 코딩 에이전트에 대한 집중 프롬프트 팩을 연 다음 여기에서 다루는 워크플로에 맞게 조정하세요.

이 페이지에서
  1. 1. 실험 정의
  2. 2. Telemetry 초기화
  3. 3. 로그 할당 및 노출
  4. 4. 완료된 수익을 기록하세요.
  5. 5. 실험 결과 비교
  6. 6. 불확실성 평가
  7. 다음 단계

수익 A/B 테스트

수익 총액만으로도 더 많은 트래픽을 받은 변형이 선호될 수 있습니다. 할당, 노출 및 완료된 수익을 기록하여 노출된 방문자당 수익을 비교하고 불확실성을 평가할 수 있습니다.

예상 상승도 및 신뢰 구간을 사용하여 방문자 막대당 수익을 제어하고 처리합니다.

치료가 의미 있는 상승을 가져왔는지 결정하기 전에 노출을 기준으로 수익을 표준화하세요.

1. 실험 정의

배송하기 전에 다음 사항을 적어 두십시오.

  • 안정적인 실험 식별자;
  • 대조 및 치료 변형;
  • 방문자, 사용자, 팀 등 할당 단위
  • 기본 메트릭 및 가드레일 메트릭
  • 최소 샘플 크기, 테스트 기간 및 중지 규칙.

한 피험자는 실험 기간 동안 하나의 변형에 머물러야 합니다.

2. Telemetry 초기화

npm install telemetry-sh
import telemetry from "telemetry-sh";

telemetry.init(process.env.TELEMETRY_API_KEY);

3. 로그 할당 및 노출

피험자가 실제로 치료를 경험할 수 있는 경우에만 노출을 기록하십시오.

const logExperimentExposure = ({ visitorId, variant }) => {
  telemetry.log("experiment_events", {
    event_name: "experiment_exposed",
    experiment_id: "checkout_copy_v2",
    visitor_id: visitorId,
    variant, // "control" or "treatment"
  });
};

이메일, 쿠키 값 또는 기타 개인 데이터 대신 내부 식별자를 사용하십시오.

4. 완료된 수익을 기록하세요.

완료된 비테스트 구매를 동일한 테이블에 기록합니다. 나중에 변경될 수 있는 필드에서 조회하는 대신 원래 할당을 보존합니다.

const logPurchase = ({ visitorId, variant, orderId, revenueUsd }) => {
  telemetry.log("experiment_events", {
    event_name: "purchase_completed",
    experiment_id: "checkout_copy_v2",
    visitor_id: visitorId,
    variant,
    order_id: orderId,
    revenue_usd: revenueUsd,
  });
};

환불, 지불 거절, 구독, 통화 및 반복 주문이 메트릭에 어떤 영향을 미치는지 미리 결정하세요.

5. 실험 결과 비교

노출된 방문자당 수익은 불평등한 트래픽이 결과를 결정하는 것을 방지합니다. 이 쿼리는 각 변형을 집계하기 전에 방문자당 하나의 행을 생성합니다.

WITH per_visitor AS (
  SELECT
    visitor_id,
    variant,
    MAX(CASE WHEN event_name = 'experiment_exposed' THEN 1 ELSE 0 END)
      AS was_exposed,
    SUM(CASE WHEN event_name = 'purchase_completed' THEN revenue_usd ELSE 0 END)
      AS visitor_revenue_usd
  FROM experiment_events
  WHERE experiment_id = 'checkout_copy_v2'
    AND timestamp_utc >= now() - INTERVAL '30 days'
  GROUP BY visitor_id, variant
)
SELECT
  variant,
  SUM(CASE WHEN was_exposed = 1 THEN 1 ELSE 0 END) AS exposed_visitors,
  SUM(CASE
    WHEN was_exposed = 1 AND visitor_revenue_usd > 0 THEN 1 ELSE 0
  END) AS buyers,
  ROUND(SUM(visitor_revenue_usd), 2) AS total_revenue_usd,
  ROUND(
    SUM(visitor_revenue_usd) /
    NULLIF(SUM(CASE WHEN was_exposed = 1 THEN 1 ELSE 0 END), 0),
    2
  ) AS revenue_per_exposed_visitor_usd,
  ROUND(
    100.0 * SUM(CASE
      WHEN was_exposed = 1 AND visitor_revenue_usd > 0 THEN 1 ELSE 0
    END) /
    NULLIF(SUM(CASE WHEN was_exposed = 1 THEN 1 ELSE 0 END), 0),
    2
  ) AS purchase_conversion_pct
FROM per_visitor
WHERE was_exposed = 1
GROUP BY variant
ORDER BY variant;

6. 불확실성 평가

포인트 추정만으로 승자를 선언하지 마십시오. 수익 분포는 일반적으로 편향되어 있으므로 적절한 신뢰 구간 또는 통계 모델을 위해 방문자 수준 결과를 내보냅니다. 분석을 통해 사전에 정의된 의사결정 규칙을 유지합니다.

결과를 신뢰하기 전에 다음을 확인하십시오.

  • 표본 비율 불일치;
  • 여러 변형에 할당된 방문자
  • 중복 주문 이벤트;
  • 거래, 환불 및 혼합 통화를 테스트합니다.
  • 두 변형의 전환 시간이 동일한지 여부
  • 오류율이나 대기 시간과 같은 가드레일 지표의 움직임.

다음 단계

차트가 분모에서 벗어나지 않도록 검토된 쿼리와 실험 정의를 함께 저장하세요. 초기 제품 이정표에는 가입 활성화 퍼널 레시피를 사용하고, 실험적이지 않은 확장 보기에는 업그레이드 전 기능 채택을 사용하세요.

관련 기능

안정적인 이벤트 이름, 타입이 지정된 필드, 개인 정보 보호 검토 컨텍스트를 캡처합니다.

페이지 작성자 및 참고 자료

이 설명은 Telemetry 편집팀의 소유입니다. 제품 팀은 동작, 예시, 경계를 검토합니다.

문서 검토 방법