Firebase A/B 테스팅 정보

이 방법은 테스트 결과의 관련성과 유용성을 극대화하는 데 이 페이지에서 Firebase A/B Testing의 작동 방식에 관해 자세히 알아보세요.

샘플 크기

Firebase A/B Testing 추론에는 최소 샘플 크기가 있어야 합니다. 일반적으로 무리가 되지 않는 선에서 최대한의 실험 노출 수준을 선택해야 합니다. 샘플 크기가 클수록 통계적으로 유의미한 결과를 찾을 가능성이 커집니다. 특히 대안 간 실적 차이가 작은 경우에 그렇습니다. 또한 온라인 샘플 크기 계산기를 사용하여 실험의 특성에 따른 권장 샘플 크기를 확인할 수 있습니다.

실험 수정

다음과 같이 실행 중인 실험에서 ���택한 매개변수를 수정할 수 있습니다.

  • 실험 이름
  • 설명
  • 타겟팅 조건
  • 대안 값

실험을 수정하려면 다음 안내를 따르세요.

  1. 수정하려는 실험의 결과 페이지를 엽니다.
  2. 더보기 메뉴, 선택 실행 중인 실험을 수정합니다.
  3. 변경한 다음 게시를 클릭합니다.

실행 중인 실험에서 앱의 동작을 변경하면 결과에 영향이 있을 수 있습니다.

원격 구성 대안 할당 로직

모든 실험 타겟팅 조건 (비율 포함)과 일치하는 사용자 노출 조건)은 다음에 따라 실험 대안에 할당됩니다. 대안 가중치, 실험 ID의 해시, 사용자의 Firebase 설치 ID

잠재고객 Google Analytics 지연 시간이 발생하며 사용자가 처음에 잠재고객 기준:

  • 잠재고객을 새로 만들면 신규 사용자를 집계하는 데 24~48시간 정도 걸릴 수 있습니다.
  • 신규 사용자는 일반적으로 자격을 얻고 24~48시간 후에 적격한 잠재고객으로 등록됩니다.

시간에 민감한 타겟팅의 경우 Google Analytics 사용자를 사용하는 것이 좋습니다. 기본 제공되는 타겟팅 옵션(예: 국가, 지역, 언어, 앱 버전 등입니다

사용자가 실험에 배치되면 실험 대안에 영구적으로 할당되며 사용자 속성이 변경되어 더 이상 실험 타겟팅 기준을 충족하지 않더라도 실험이 활성 상태로 유지되는 한 실험에서 매개변수 값을 수신합니다.

활성화 이벤트

실험 활성화 이벤트에서는 실험 측정이 활성화 이벤트를 트리거하는 앱 사용자로 제한됩니다. 실험 활성화 이벤트는 앱에서 가져온 실험 매개변수에 영향을 미치지 않습니다. 실험 타겟팅 기준을 충족하는 모든 사용자가 실험 매개변수를 수신합니다. 따라서 실험 매개변수를 가져와 활성화한 후, 실험 매개변수를 사용하여 앱 동작을 수정하기 전에 발생하는 활성화 이벤트를 선택해야 합니다.

대안 가중치

실험을 만드는 동안 기본 대안 가중치를 변경하여 대안에 더 높은 비율의 실험 사용자를 배치할 수 있습니다.

테스트 결과 해석하기

Firebase A/B Testing빈도주의적 추론을 사용하여 임의의 원인으로 인해 실험 결과가 발생했을 가능성 가능성이 있습니다. 이 가능성은 확률 값으로 표현됩니다. p-값을 참조하세요. p값은 무작위로 두 대안 간의 실적 차이가 발생할 수 있는 확률로, 0과 1 사이의 값으로 측정됩니다. A/B Testing는 다음을 위해 중요도 수준 0.05를 사용합니다.

  • 0.05 미만의 p값은 대안 간에 통계적으로 유의미한 차이가 있음을 나타내며 우연히 발생할 가능성이 낮다는 의미입니다.
  • 0.05보다 큰 p값은 대안 간 차이가 통계적으로 유의미하지 않음을 나타냅니다.

실험 데이터는 하루에 한 번 새로고침되며 마지막 업데이트 시간은 실험 결과 페이지 상단에 표시됩니다.

실험 결과 그래프에는 선택한 측정항목의 누적 평균 값이 표시됩니다. 예를 들어 사용자당 광고 수익을 측정항목으로 추적하는 경우 사용자당 관찰된 수익을 표시하며, 비정상 종료가 발생하지 않은 사용자를 추적하는 경우에는 비정상 종료를 경험하지 않은 사용자의 비율을 추적합니다. 이 데이터가 실험 시작 시점부터 누적됩니다.

결과는 관측 데이터추론 데이터로 분할됩니다. 관측 데이터는 Google 애널리틱스 데이터에서 직접 계산되며, 추론 데이터는 p값과 신뢰 구간을 제공하여 관측 데이터의 통계적 유의성을 평가하는 데 도움이 됩니다.

측정항목마다 다음 통계가 표시됩니다.

관측된 데이터

  • 추적된 측정항목의 총 값(유지된 사용자 수, 비정상 종료를 경험한 사용자 수, 총수익)
  • 측정항목별 비율(유지율, 전환율, 사용자당 수익)
  • 대안과 기준 간의 차이 비율(상승도)

추론 데이터

  • 95% CI(평균치의 차이)는 추적된 측정항목의 'true' 값이 포함된 구간을 95%의 신뢰도로 표시합니다. 예를 들어 실험에서 $5~ $10 사이의 총 예상 수익에 대한 CI가 95%라면 평균치의 실제 차이가 $5~ $10일 확률이 95%입니다. CI 범위에 0이 있으면 통계적으로 유의미합니다. 대안과 기준 간의 차이가 감지되지 않았습니다.

    신뢰 구간 값은 측정항목입니다. 예를 들어 사용자 유지는 시간(HH:MM:SS 형식), 사용자당 광고 수익은 미국 달러(USD), 전환율은 백분율로 표시됩니다.

  • p값은 대안과 기준 간에 실제 차이가 없을 확률을 나타냅니다. 다시 말해, 관측된 차이는 우연히 발생했을 가능성이 높습니다. p값이 낮을수록 관찰된 실적이 미래에도 사실이라는 신뢰도가 높아집니다. 0.05 이하는 ����� ��� 차이를 나타내며 결과가 우연히 발생했을 가능성이 낮음을 나타냅니다. p값은 단측 검정을 기반으로 하며, 대안 값이 기준 값보다 큽니다. Firebase는 연속 변수에 부등분산 t-검정을 사용합니다. (수익과 같은 숫자 값) 및 전환을 위한 비율의 z-검정 데이터 (사용자 유지, 비정상 종료가 발생하지 않은 사용자, Google Analytics 이벤트를 트리거하는 사용자).

실험 결과에서는 각 실험 대안에 관한 중요한 통계를 제공합니다. 포함:

  • 직접 측정(즉, 실제 관측 데이터)된 각 실험 측정항목의 값과 기준의 차이
  • 대안과 기준 간에 관찰된 차이가 우연히 발생했을 가능성(p값)
  • 각 실험 측정항목에서 대안과 기준 간의 '실제' 실적 차이가 포함될 가능성이 높은 범위. '최상' 및 '최악'의 실적 시나리오를 이해할 수 있는 방법

Google 최적화 도구에서 제공하는 실험 결과 해석하기

2023년 10월 23일 이전에 시작된 실험의 결과 Firebase A/B Testing개 Google 최적화 도구에서 제공되었습니다. Google 최적화 도구는 Bayesian 추론을 사용하여 실험 데이터에서 유용한 통계를 생성합니다.

결과는 '관측 데이터'와 '모델링된 데이터'로 분할됩니다. 관측 데이터는 애널리틱스 데이터에서 직접 계산되었으며, 모델링된 데이터는 Bayesian 모델을 관측 데이터에 적용하여 파생되었습니다.

측정항목마다 다음 통계가 표시됩니다.

관측 데이터

  • 총 값(대안의 모든 사용자에 대한 측정항목 합계)
  • 평균 값(대안의 사용자에 대한 측정항목 평균 값)
  • 기준과의 차이(%)

모델링된 데이터

  • 기준 초과 가능성: 이 대안에서 측정항목의 값이 기준보다 높을 가능성
  • 기준과의 차이(%): 대안 및 기준의 측정항목에 대한 중앙값 모델 예상치를 사용해 계산
  • 측정항목 범위: 측정항목 값이 발견될 가능성이 가장 높은 범위(50% 및 95% 확실성)

대체로 실험 결과에서는 실험의 각 대안에 관한 3가지 중요 통계를 제공합니다.

  1. 직접 측정(예: 실제 관측 데이터)된 각 실험 측정항목의 값과 기준의 차이
  2. Bayesian 추론을 토대로 각 실험 측정항목이 기준/가장 우수할 확률보다 높을 가능성(각각 우수/최우수 실적 가능성)
  3. Bayesian 추론을 기반으로 한 각 실험 측정항목의 타당한 범위 - '최고' 및 '최악'의 시나리오(신용 구간)

최우수 대안 결정

빈도주의적 추론을 사용하는 실험의 경우 Firebase는 목표 측정항목에서 대안과 기준 간에 통계적으로 유의미한 성능 차이가 있을 때 대안이 최우수 대안임을 선언합니다. 여러 대안이 이 기준을 충족하면 p값이 가장 낮은 대안이 선택됩니다.

Google 최적화 도구를 사용한 실험에서 Firebase는 기본 측정항목에서 대안이 기준 대안보다 우수할 확률이 95%를 넘으면 '명확한 최우수 대안'으로 선언했습니다. 여러 대안이 '명확한 최우수 대안' 기준을 충족한 경우 실적이 가장 좋은 대안에만 '명확한 최우수 대안' 라벨이 지정되었습니다.

최우수 대안은 기본 목표만을 토대로 결정되므로 최우수 대안을 적용할지 여부를 결정하기 전에 모든 관련 요소를 고려하고 보조 측정항목의 결과를 검토해야 합니다. 변경 시 예상되는 긍정적인 요소, 부정적인 위험 요소(예: 개선에 대한 신뢰 구간의 하한값), 기본 목표 이외의 측정항목에 미치는 영향을 고려할 수 있습니다.

예를 들어 기본 측정항목이 비정상 종료가 발생하지 않은 사용자이고 대안 A가 기준보다 우수하지만 대안 A 사용자 유지율 측정항목이 기준 사용자 유지율보다 낮은 경우, 대안 A를 보다 광범위하게 적용하기 전에 추가 조사를 하는 것이 좋습니다.

기본 및 보조 측정항목의 전반적인 실적 평가를 토대로 최우수 대안뿐만 아니라 모든 대안을 적용할 수 있습니다.

실험 기간

Firebase에서는 다음 조건이 충족될 때까지 실험을 계속 수행할 것을 권장합니다.

  1. 실험에서 유용한 결과를 제공하기 위한 충분한 데이터가 수집되었습니다. 실험 및 결과 데이터는 하루에 한 번 업데이트됩니다. 온라인 샘플 크기 계산기를 사용하여 실험의 권장 샘플 크기를 평가할 수 있습니다.
  2. 샘플이 사용자를 대표하며 장기적인 실적을 측정할 수 있을 만큼 실험을 충분히 진행했습니다. 일반적인 원격 구성 실험에 권장되는 최소 런타임은 2주입니다.

실험 데이터는 실험 시작 후 최대 90일 동안 처리됩니다. 90일이 지나면 실험이 자동으로 중단됩니다. 실험 결과가 더 이상 Firebase 콘솔에서 업데이트되지 않으며 실험에서 실험별 매개변수 값의 전송을 중지합니다. 이 시간 이 지점에서 클라이언트는 설정된 조건에 따라 매개변수 값을 가져오기 시작합니다. Remote Config 템플릿에 있습니다. 이전 실험 데이터는 다음 기간까지 보관됩니다. 실험을 삭제할 수 있습니다

BigQuery 스키마

다음에서 A/B Testing 실험 데이터를 확인하는 것 외에도 Firebase 콘솔에서 실험 데이터를 검사하고 분석할 수 있습니다. BigQuery입니다. A/B TestingBigQuery 테이블, 실험, 대안 멤버십이 Analytics 이벤트 테이블 내의 Google Analytics 이벤트.

실험 정보가 포함된 사용자 속성은 userProperty.key like "firebase_exp_%" 또는 userProperty.key = "firebase_exp_01" 형식이며, 여기서 01은 실험 ID이고 userProperty.value.string_value에는 실험 대안의 색인(0부터 시작)이 포함됩니다.

이러한 실험 사용자 속성을 사용하여 실험 데이터를 추출할 수 있습니다. 이를 통해 실험 결과를 다양한 영역으로 분할할 수 있습니다. A/B Testing의 결과를 독립적���로 검증합니다.

시작하려면 이 가이드에 설명된 대로 다음을 완료하세요.

  1. Firebase에서 Google AnalyticsBigQuery 내보내기 사용 설정 콘솔
  2. BigQuery를 사용하여 A/B Testing 데이터에 액세스
  3. 예시 쿼리 살펴보기

Firebase Console에서 Google AnalyticsBigQuery 내보내기 사용 설정

Spark 요금제를 사용 중인 경우 BigQuery 샌드박스: BigQuery 무료 이용, 샌드박스 한도. 자세한 내용은 가격 책정 및 BigQuery 샌드박스 를 참조하세요.

먼저 Analytics 데이터를 BigQuery:

  1. Google 검색 앱 홈 화면의 오른쪽 상단에 있는 Integrations을(를) 사용하여 액세스할 수 있습니다. Firebase 콘솔> 프로젝트 설정으로 이동합니다.
  2. 이미 다른 Firebase 서비스에서 BigQuery를 사용 중인 경우 다음 안내를 따르세요. 관리를 클릭합니다. 그렇지 않으면 연결을 클릭합니다.
  3. Firebase를 BigQuery에 연결하는 방법을 검토한 후 다음을 클릭합니다.
  4. Configure integration(통합 구성) 섹션에서 Google Analytics 전환 버튼
  5. 지역을 선택하고 내보내기 설정을 선택합니다.

  6. BigQuery에 연결을 클릭합니다.

선택한 데이터 내보내기 방식에 따라 테이블을 사용할 수 있을 때까지 최대 하루가 걸릴 수 있습니다. 프로젝트 데이터를 BigQuery, 다음을 참고하세요. 프로젝트 데이터를 BigQuery로 내보냅니다.

BigQueryA/B Testing 데이터에 액세스

특정 실험 데이터를 쿼리하기 전에 쿼리에 사용할 다음의 일부 또는 전체를 얻는 것이 좋습니다.

  • 실험 ID: 실험 개요 페이지의 URL에서 이 값을 가져올 수 있습니다. 예를 들어 URL이 https://console.firebase.google.com/project/my_firebase_project/config/experiment/results/25, 실험 ID는 25입니다.
  • Google Analytics 속성 ID: 9자리 숫자입니다. Google Analytics 속성 ID입니다. 이 내용은 Google Analytics 펼치면 BigQuery에도 표시됩니다. Google Analytics 이벤트의 이름을 표시하는 프로젝트 이름 표 (project_name.analytics_000000000.events)
  • 실험일: 보다 빠르고 효율적인 쿼리를 작성하려면 쿼리를 매일 Google Analytics로 제한하는 것이 좋습니다. 실험 데이터가 포함된 이벤트 테이블 파티션 - 테이블 YYYYMMDD 서픽스로 식별됩니다. 실험이 2024년 4월 1일 2024년 2월 2일부터 2024년 5월 2일까지는 _TABLE_SUFFIX between '20240202' AND '20240502'를 지정합니다. 예를 보려면 다음을 참조하세요. 특정 실험의 값을 선택합니다.
  • 이벤트 이름: 일반적으로 이벤트 이름은 목표 측정항목 확인할 수 있습니다 예: in_app_purchase 이벤트, ad_impression, user_retention 이벤트 중 하나입니다.

쿼리를 생성하는 데 필요한 정보를 수집한 후에는 다음 단계를 따르세요.

  1. BigQuery 열기 (Google Cloud 콘솔에서 확인)
  2. 프로젝트를 선택한 후 SQL 쿼리 만들기를 선택합니다.
  3. 쿼리를 추가합니다. 실행할 쿼리의 예시는 다음을 참조하세요. 예시 쿼리 살펴보기
  4. 실행을 클릭합니다.

Firebase Console의 자동 생성 쿼리를 사용하여 실험 데이터 쿼리

Blaze 요금제를 사용하는 경우 실험 개요 페이지에 보고 있는 실험의 실험 이름, 대안, 이벤트 이름, 실험의 이벤트 수를 반환하는 샘플 쿼리가 제공됩니다.

자동 생성된 쿼리를 가져와 실행하려면 다음 안내를 따르세요.

  1. Firebase 콘솔에서 다음을 엽니다. A/B Testing 드림 쿼리하려는 A/B Testing 실험을 선택하여 실험 개요:
  2. '옵션' 메뉴의 BigQuery 통합에서 실험 데이터 쿼리 BigQuery에서 프로젝트가 열립니다. Google Cloud 콘솔 콘솔 내에서 사용하여 실험 데이터를 쿼리합니다.

다음 예시는 'Winter welcome experiment'이라는 이름의 3가지 대안(기준 포함)이 있는 실험에 대해 생성된 쿼리를 보여줍니다. 각 이벤트의 활성 실험 이름, 대안 이름, 순 이벤트, 이벤트 수를 반환합니다. 쿼리 빌더는 프로젝트 이름을 테이블 이름에 입력합니다.

  /*
    This query is auto-generated by Firebase A/B Testing for your
    experiment "Winter welcome experiment".
    It demonstrates how you can get event counts for all Analytics
    events logged by each variant of this experiment's population.
  */
  SELECT
    'Winter welcome experiment' AS experimentName,
    CASE userProperty.value.string_value
      WHEN '0' THEN 'Baseline'
      WHEN '1' THEN 'Welcome message (1)'
      WHEN '2' THEN 'Welcome message (2)'
      END AS experimentVariant,
    event_name AS eventName,
    COUNT(*) AS count
  FROM
    `analytics_000000000.events_*`,
    UNNEST(user_properties) AS userProperty
  WHERE
    (_TABLE_SUFFIX BETWEEN '20240202' AND '20240502')
    AND userProperty.key = 'firebase_exp_25'
  GROUP BY
    experimentVariant, eventName

추가 쿼리 예시를 보려면 다음으로 이동하세요. 예시 쿼리 살펴보기

쿼리 예시 살펴보기

다음 섹션에서는 데이터 추출을 위해 사용할 수 있는 쿼리의 예를 제공합니다. 이벤트 표 Google Analytics개의 A/B Testing 실험 데이터

모든 실험에서 구매 및 실험 표준 편차 값 추출

실험 결과 데이터를 사용하여 독자적으로 검증하고 Firebase A/B Testing개의 검색결과가 있습니다. 다음 BigQuery SQL 문 추출 실험 대안, 각 대안의 순 사용자 수, 총수익 합계 in_app_purchaseecommerce_purchase 이벤트로부터의 값 및 표준 편차 _TABLE_SUFFIX 시작으로 지정된 기간 내의 모든 실험 지정할 수 있습니다 이 쿼리에서 얻은 데이터를 단측 t-검정을 위한 통계적 유의성 생성기를 통해 Firebase에서 제공하는 결과는 여러분의 분석과 일치합니다.

A/B Testing에서 추론을 계산하는 방법에 관한 자세한 내용은 다음을 참고하세요. 테스트 결과를 해석합니다.

  /*
    This query returns all experiment variants, number of unique users,
    the average USD spent per user, and the standard deviation for all
    experiments within the date range specified for _TABLE_SUFFIX.
  */
  SELECT
    experimentNumber,
    experimentVariant,
    COUNT(*) AS unique_users,
    AVG(usd_value) AS usd_value_per_user,
    STDDEV(usd_value) AS std_dev
  FROM
    (
      SELECT
        userProperty.key AS experimentNumber,
        userProperty.value.string_value AS experimentVariant,
        user_pseudo_id,
        SUM(
          CASE
            WHEN event_name IN ('in_app_purchase', 'ecommerce_purchase')
              THEN event_value_in_usd
            ELSE 0
            END) AS usd_value
      FROM `PROJECT_NAME.analytics_ANALYTICS_ID.events_*`
      CROSS JOIN UNNEST(user_properties) AS userProperty
      WHERE
        userProperty.key LIKE 'firebase_exp_%'
        AND event_name IN ('in_app_purchase', 'ecommerce_purchase')
        AND (_TABLE_SUFFIX BETWEEN 'YYYYMMDD' AND 'YYYMMDD')
      GROUP BY 1, 2, 3
    )
  GROUP BY 1, 2
  ORDER BY 1, 2;

특정 실험의 값 선택

다음 쿼리 예는 특정 BigQuery에서 진행 중인 실험. 이 샘플 쿼리는 실험 이름, 대안 이름(기준 포함), 이벤트 이름, 이벤트 수를 반환합니다.

  SELECT
    'EXPERIMENT_NAME' AS experimentName,
    CASE userProperty.value.string_value
      WHEN '0' THEN 'Baseline'
      WHEN '1' THEN 'VARIANT_1_NAME'
      WHEN '2' THEN 'VARIANT_2_NAME'
      END AS experimentVariant,
    event_name AS eventName,
    COUNT(*) AS count
  FROM
    `analytics_ANALYTICS_PROPERTY.events_*`,
    UNNEST(user_properties) AS userProperty
  WHERE
    (_TABLE_SUFFIX BETWEEN 'YYYMMDD' AND 'YYYMMDD')
    AND userProperty.key = 'firebase_exp_EXPERIMENT_NUMBER'
  GROUP BY
    experimentVariant, eventName

한도

A/B Testing는 총 300개의 실험, 24개의 실행 중인 실험으로 제한됩니다. 실험 초안 24개가 포함되었습니다. 이 한도는 출시 Remote Config개와 공유됩니다. 예를 들어 실행 중인 출시 2개와 실행 중인 실험이 3개 있는 경우 최대 19개의 추가 출시 또는 실험을 가질 수 있습니다.

  • 총 실험 한도 300개 또는 임시 실험 한도 24개에 도달하면 새 실험을 만들기 전에 기존 실험을 삭제해야 합니다.

  • 실행 중인 실험 및 출시 한도인 24개에 도달하면 새 실험을 시작하기 전에 실험 또는 출시를 실행하는 것이 좋습니다.

실험에는 최대 8개의 대안(기준 포함)과 각 대안당 최대 25개의 매개변수가 포함될 수 있습니다. 실험의 크기는 약 200KiB까지 가능합니다. 여기에는 대안 이름, 대안 매개변수, 기타 구성 메타데이터가 포함됩니다.