B2B SaaS 무료체험 남용·trial 품질 필터 체크리스트 2026, 테스트 계정과 봇 가입을 보고서에서 분리하는 기준
B2B SaaS 무료체험 남용·trial 품질 필터 체크리스트 2026, 테스트 계정과 봇 가입을 보고서에서 분리하는 기준
B2B SaaS에서 무료체험 가입 수가 늘었다고 바로 좋은 신호로 보면 위험합니다. 내부 QA 계정, 반복 테스트 계정, 봇 가입, 학생 계정, 개인 이메일 체험, 기존 고객의 재가입, 경쟁사 조사 계정이 모두 trial_started로 들어올 수 있기 때문입니다.
이런 계정이 섞이면 광고 보고서, 제품 분석, PQL 점수, CRM 리드 품질이 모두 부풀어 보입니다. 가입 수는 늘었는데 활성화율이 낮아 보이거나, 반대로 실제 구매 가능성이 낮은 사용자가 PQL 후보로 넘어가 영업팀 시간을 쓰게 됩니다.
이 글은 법률 자문, 개인정보보호 자문, 보안 자문, 광고 성과 보장 글이 아닙니다. 무료체험과 제품 분석을 운영하는 팀이 테스트 계정과 남용 계정을 보고서에서 분리하기 전 확인할 실무 체크리스트입니다. 실제 적용 전에는 각 도구의 공식 문서와 회사 내부 데이터 처리 기준을 다시 확인해야 합니다.
무료체험 가입 이벤트와 PQL 흐름 자체는 B2B SaaS 무료체험·가입 전환 추적 감사 체크리스트에서 먼저 정리했습니다. 데모 요청 폼과 CRM 리드 흐름은 B2B SaaS 데모 요청 전환 추적 감사 체크리스트를 보면 됩니다. GA4와 GTM 권한부터 흔들린다면 GA4·Google Tag Manager 권한 감사 체크리스트를 먼저 점검하는 편이 좋습니다.
먼저 trial 품질 필터의 목적을 정합니다
무료체험 품질 필터는 가입자를 임의로 지우는 작업이 아닙니다. 같은 데이터를 목적별로 다르게 보는 기준입니다.
| 목적 | 필터 기준 |
|---|---|
| 제품 온보딩 분석 | 내부 테스트, 봇, 명백한 중복 가입을 제외 |
| 광고 성과 분석 | 내부 테스트, 직원, 기존 고객 재가입, 테스트 캠페인 제외 |
| PQL 산정 | activation, team signal, integration, usage threshold 중심으로 가중 |
| 영업 전달 | 무료 이메일, 경쟁사 추정, 기존 고객, support 문의를 별도 라우팅 |
| 제품 실험 | A/B 테스트 대상에서 내부 계정과 자동화 테스트 계정 제외 |
| 경영 보고 | 총 가입, 유효 trial, 활성화 trial, PQL, paid conversion을 분리 |
가장 중요한 것은 원본 이벤트를 삭제하지 않는 것입니다. 제품 분석 도구나 데이터 웨어하우스에는 원본을 보존하고, 보고서나 CRM handoff 단계에서 is_internal, is_duplicate, is_abuse_suspected, is_existing_customer, is_qualified_trial 같은 상태값으로 분리하는 편이 안전합니다.
제외할 계정 유형을 한 표로 고정합니다
무료체험 남용 필터는 감으로 운영하면 팀마다 기준이 달라집니다. 아래처럼 제외 후보와 보류 후보를 구분해야 합니다.
| 유형 | 예시 신호 | 처리 기준 |
|---|---|---|
| 내부 테스트 계정 | 회사 도메인, QA prefix, staging workspace | 기본 보고서에서 제외 |
| 자동화 테스트 | test automation user, 반복 API 호출 | 제품 QA 보고서로만 분리 |
| 봇 가입 의심 | 짧은 시간 반복 가입, 비정상 이메일 패턴 | abuse suspected로 별도 집계 |
| 중복 가입 | 같은 회사 도메인, 같은 CRM company, 같은 workspace | account 단위로 병합 |
| 기존 고객 재가입 | CRM customer status, 같은 billing account | expansion 또는 support 흐름으로 분리 |
| 학생·개인 학습 | 무료 이메일, 회사 정보 없음, 낮은 사용량 | 무조건 제외보다 별도 세그먼트 |
| 경쟁사 조사 추정 | 경쟁사 도메인, product-only browsing | 영업 전달 제외 후보 |
| 고객지원 문의 | support, help, billing 문의 목적 | sales lead가 아니라 support로 라우팅 |
이 표를 만들 때 주의할 점은 "무료 이메일이면 무조건 나쁜 trial"이라고 단정하지 않는 것입니다. 초기 사용자가 개인 이메일로 먼저 테스트한 뒤 회사 계정으로 전환할 수도 있습니다. 따라서 제외 규칙은 강한 신호와 약한 신호를 나눠야 합니다.
GA4 이벤트에는 필터용 파라미터를 분리합니다
GA4는 이벤트와 주요 이벤트를 기준으로 행동을 측정합니다. 무료체험 품질을 보려면 sign_up, trial_started, activation_completed, pql_created 같은 이벤트와 함께 필터에 필요한 파라미터를 정리해야 합니다.
출처: Google Analytics Help – Events and key events
출처: Google for Developers – GA4 event reference
| 이벤트 | 필터용 파라미터 예시 |
|---|---|
sign_up |
email_domain_type, signup_source, invited_by_user_id |
trial_started |
trial_plan, trial_start_source, account_id |
email_verified |
email_domain, is_business_domain_candidate |
workspace_created |
workspace_id, company_domain, workspace_name_pattern |
integration_connected |
integration_type, connection_scope |
activation_completed |
activation_rule_version, activation_reason |
pql_created |
pql_score, pql_reason, pql_rule_version |
trial_disqualified |
disqualify_reason, rule_version |
필터용 파라미터를 이벤트 이름에 섞으면 안 됩니다. trial_started_internal_test, trial_started_student, trial_started_bot처럼 이벤트 이름을 계속 늘리면 보고서가 깨집니다. 이벤트 이름은 고정하고, 상태값과 사유를 파라미터나 사용자 속성으로 관리하는 편이 낫습니다.
Measurement Protocol과 서버 이벤트는 중복 제거를 먼저 봅니다
무료체험 제품은 브라우저 이벤트와 서버 이벤트를 함께 쓰는 경우가 많습니다. 가입 완료는 프론트엔드에서 잡히고, 이메일 인증이나 결제 trial은 서버에서 잡힐 수 있습니다. 이때 같은 행동이 두 번 잡히면 남용 필터 이전에 숫자 자체가 부풀어 보입니다.
출처: Google for Developers – GA4 Measurement Protocol
출처: Google for Developers – Server-side tagging
출처: Google Tag Manager Help – Set up and install Tag Manager
| 확인 항목 | 감사 질문 |
|---|---|
| event_id | 같은 행동을 브라우저와 서버에서 식별할 수 있는가 |
| user_id | 가입 전 anonymous_id와 가입 후 user_id가 연결되는가 |
| account_id | 개인 사용자보다 회사 계정 단위 집계가 가능한가 |
| timestamp | 서버 재시도 이벤트가 뒤늦게 중복 집계되지 않는가 |
| retry policy | 실패 재전송이 중복 trial로 보이지 않는가 |
| test traffic | staging, QA, 내부 IP 이벤트가 분리되는가 |
서버 사이드 태깅을 쓰면 측정 안정성은 좋아질 수 있지만, 필터 기준이 더 중요해집니다. 서버에서 생성된 trial_started가 내부 자동화 테스트인지, 실제 사용자의 가입인지 구분할 수 있어야 합니다.
user ID, account ID, company domain을 따로 관리합니다
B2B SaaS의 trial 품질은 사용자 한 명만 보고 판단하기 어렵습니다. 같은 회사에서 여러 명이 가입했는지, 기존 고객의 다른 팀인지, 같은 사람이 이메일만 바꿔 반복 가입했는지 봐야 합니다.
| 식별자 | 쓰는 이유 | 주의점 |
|---|---|---|
| anonymous_id | 가입 전 방문 행동 연결 | 쿠키 동의와 브라우저 변경으로 끊길 수 있음 |
| user_id | 개별 사용자 행동 추적 | 이메일 변경, SSO 전환 뒤 유지 기준 필요 |
| account_id | 회사·workspace 단위 집계 | 같은 회사의 여러 workspace 처리 기준 필요 |
| workspace_id | 제품 내 작업 공간 구분 | 테스트 workspace naming rule 필요 |
| company_domain | 회사 추정과 중복 병합 | 무료 이메일과 자회사 도메인 예외 필요 |
| CRM company ID | 영업·고객관리 연결 | CRM 병합 규칙과 동기화 필요 |
| billing customer ID | 유료 전환·기존 고객 확인 | 결제 시스템과 product account 연결 필요 |
무료체험 남용 필터는 한 가지 식별자만으로 만들면 오판이 많습니다. 이메일 도메인만 보면 개인 이메일 trial을 놓치고, user_id만 보면 같은 회사의 팀 사용 신호를 놓칩니다. 최소한 user, account, company domain 세 축은 따로 봐야 합니다.
내부 테스트 계정은 처음부터 이름 규칙을 둡니다
내부 테스트 계정이 보고서에 섞이는 문제는 대부분 이름 규칙 부재에서 시작합니다. QA 팀, 개발자, 마케팅 팀, 대행사가 각자 테스트 계정을 만들면 나중에 제거하기 어렵습니다.
| 항목 | 권장 규칙 |
|---|---|
| 이메일 | qa+scenario@company.com, test+campaign@company.com처럼 prefix 통일 |
| workspace name | [TEST], [QA], [STAGING] prefix 사용 |
| company name | Internal Test, QA Account처럼 고정 |
| plan | test plan 또는 sandbox plan으로 분리 |
| source | internal_test, staging, agency_test로 명시 |
| CRM sync | 기본은 CRM 영업 큐로 보내지 않음 |
| 리포트 | 기본 KPI에서는 제외하고 QA 리포트에서만 확인 |
이미 테스트 계정이 많이 섞여 있다면 과거 데이터를 억지로 지우기보다, 특정 날짜 이후 새 naming rule을 적용하고 전후 비교표를 따로 두는 편이 안전합니다.
봇 가입 의심은 단일 신호로 차단하지 않습니다
봇이나 자동 가입을 구분할 때는 여러 신호를 함께 봐야 합니다. 한 가지 신호만으로 trial을 제외하면 정상 사용자를 잃을 수 있습니다.
| 신호 | 강도 | 설명 |
|---|---|---|
| 짧은 시간 같은 IP에서 다수 가입 | 강함 | 자동화나 공격 의심 |
| email pattern 반복 | 중간 | 무작위 문자열, disposable domain 후보 |
| 이메일 인증 미완료 반복 | 중간 | 낮은 품질 가입 후보 |
| workspace 생성 없음 | 약함 | 온보딩 이탈일 수도 있음 |
| user agent 이상 | 중간 | 자동화 스크립트 후보 |
| 가격 페이지 미방문 | 약함 | 제품 초대 가입일 수도 있음 |
| 핵심 기능 클릭 없음 | 약함 | 온보딩 실패일 수도 있음 |
| 매우 빠른 API 호출 반복 | 강함 | 자동화 테스트 또는 남용 가능성 |
운영 보고서에서는 bot_suspected처럼 의심 상태로 분리하고, 실제 차단 정책은 보안·법무·개인정보 기준을 확인한 뒤 별도 흐름에서 다뤄야 합니다. 이 글의 목적은 계정을 차단하라는 것이 아니라, 성과 보고서와 PQL 산정에서 오염을 줄이는 것입니다.
기존 고객 재가입은 신규 trial과 분리합니다
기존 고객이 다른 이메일이나 다른 workspace로 다시 trial을 시작할 수 있습니다. 이 계정을 신규 acquisition으로 보면 광고 성과와 PQL 품질이 왜곡됩니다.
| 확인 기준 | 분리 방법 |
|---|---|
| CRM lifecycle stage | customer, opportunity, churned customer 구분 |
| billing customer ID | 과거 결제 계정과 연결 |
| 회사 도메인 | 기존 customer domain과 매칭 |
| SSO organization | 같은 SSO tenant인지 확인 |
| support ticket | 고객지원 문의와 trial 가입 동시 발생 확인 |
| account owner | 기존 고객 담당자에게 라우팅 |
HubSpot은 lifecycle stage로 contact나 company의 단계를 관리할 수 있습니다.
출처: HubSpot Knowledge Base – Use lifecycle stages
Salesforce에서는 lead와 account, opportunity의 관계를 분리해 봐야 합니다.
기존 고객 재가입은 나쁜 신호가 아닐 수 있습니다. 확장 구매, 다른 팀 도입, 재활성화 가능성이 있습니다. 다만 신규 trial acquisition 지표와는 분리해야 합니다.
CRM에는 제외 사유와 다음 라우팅을 같이 보냅니다
무료체험 품질 필터가 제품 분석 도구에만 있으면 영업팀은 여전히 낮은 품질 리드를 받습니다. CRM에는 trial 상태와 제외 사유, 다음 라우팅이 함께 들어가야 합니다.
| CRM 필드 | 예시 값 |
|---|---|
| trial_quality_status | qualified, review_needed, disqualified |
| trial_quality_reason | internal_test, duplicate, existing_customer, bot_suspected |
| pql_score | 0-100 |
| pql_reason | activation + integration + team invite |
| account_match_status | new_account, existing_customer, duplicate_company |
| source_type | paid, organic, invite, internal_test |
| lifecycle_stage | subscriber, lead, MQL, SQL, customer |
| owner_route | sales, customer_success, support, no_route |
Salesforce의 중복 관리나 CRM 병합 규칙을 쓰는 팀은 중복 lead를 어떻게 처리할지 먼저 정해야 합니다.
출처: Salesforce Help – Duplicate Rules
HubSpot에서 리스트를 쓰는 팀은 active list나 static list로 trial 품질 세그먼트를 나눠 운영할 수 있습니다.
출처: HubSpot Knowledge Base – Create active or static lists
CRM에 모든 제품 이벤트를 다 보내는 것은 좋지 않습니다. CRM에는 영업 판단에 필요한 요약 필드만 보내고, 상세 이벤트는 제품 분석 도구나 데이터 웨어하우스에 남기는 구조가 관리하기 쉽습니다.
Amplitude 같은 제품 분석 도구에서는 속성과 이벤트를 분리합니다
제품 분석 도구에서는 이벤트와 사용자 속성을 혼동하지 않는 것이 중요합니다. Amplitude는 이벤트와 사용자 속성을 통해 사용자의 행동과 상태를 분석하는 구조를 제공합니다.
출처: Amplitude Docs – User properties and events
| 구분 | 예시 | 쓰는 이유 |
|---|---|---|
| 이벤트 | trial_started, activation_completed, trial_disqualified |
변화가 발생한 순간 기록 |
| 사용자 속성 | user_role, email_domain_type, signup_source | 현재 사용자 상태 기록 |
| 계정 속성 | account_size, company_domain_type, billing_status | 회사 단위 품질 판단 |
| 계산 속성 | pql_score, usage_score, abuse_risk_score | 보고서와 라우팅 기준 |
| 상태 속성 | trial_quality_status, pql_status | 현재 운영 상태 |
예를 들어 trial_disqualified는 이벤트로 남기고, 사용자의 현재 상태는 trial_quality_status=disqualified로 둡니다. 이렇게 해야 언제 제외됐는지와 지금 어떤 상태인지가 모두 보입니다.
결제 trial은 billing 시스템과 연결해 봅니다
카드 등록형 trial이나 유료 전환이 있는 SaaS는 제품 이벤트만으로 부족합니다. billing trial의 시작, 종료, 취소, 유료 전환이 product account와 연결되어야 합니다.
출처: Stripe Docs – Trials in subscriptions
| billing 신호 | 확인 질문 |
|---|---|
| trial_start | 제품의 trial_started와 같은 계정인가 |
| trial_end | 만료 전 사용량과 알림이 연결되는가 |
| payment_method_added | 구매 의도 신호로 따로 보는가 |
| subscription_created | 유료 전환과 product account가 연결되는가 |
| subscription_canceled | trial abuse인지 정상 이탈인지 구분하는가 |
| invoice_failed | 결제 실패와 제품 사용 신호를 분리하는가 |
카드 등록형 trial은 가입 품질이 높아 보일 수 있지만, 결제 실패와 취소가 섞이면 실제 전환율은 다르게 보입니다. 반대로 카드 없는 trial은 볼륨이 많지만 활성화 품질을 더 엄격히 봐야 할 수 있습니다.
보고서는 총 가입과 유효 trial을 분리합니다
무료체험 리포트는 하나의 숫자로 끝내면 안 됩니다. 아래처럼 raw, filtered, qualified를 분리해야 운영 판단이 가능합니다.
| 지표 | 의미 |
|---|---|
| raw signups | 필터 전 전체 가입 |
| verified signups | 이메일 인증 완료 가입 |
| trial started | 무료체험 시작 |
| internal/test excluded | 내부 테스트 제외 수 |
| duplicate excluded | 중복 계정 제외 수 |
| abuse suspected | 봇·남용 의심 수 |
| existing customer separated | 기존 고객 재가입 분리 수 |
| valid trial | 기본 품질 필터 통과 trial |
| activated trial | 핵심 행동 완료 trial |
| PQL | 영업 전달 후보 |
| paid conversion | 유료 전환 |
raw signups가 늘었는데 valid trial이 그대로라면 마케팅 유입 품질이나 봇 가입을 봐야 합니다. valid trial은 늘었는데 activated trial이 낮다면 온보딩과 제품 가치 경험을 봐야 합니다. activated trial은 높은데 PQL이 낮다면 회사 규모, 팀 사용 신호, CRM 매칭 기준을 다시 봐야 합니다.
변경 전후 7일은 rule version으로 비교합니다
trial 품질 필터를 바꾸면 과거와 현재 숫자가 달라집니다. 실제 사용자가 바뀐 것이 아니라 규칙이 바뀐 결과일 수 있습니다.
| 변경 항목 | 비교 기준 |
|---|---|
| internal domain rule 추가 | 내부 제외 수와 valid trial 감소폭 |
| duplicate company rule 추가 | account 단위 trial 수 변화 |
| bot suspected rule 추가 | abuse suspected 비율 |
| existing customer 분리 | 신규 acquisition trial 감소폭 |
| PQL score 가중치 변경 | PQL 수와 sales accepted lead 변화 |
| activation rule 변경 | activation rate 전후 비교 |
규칙에는 trial_quality_rule_version을 붙이는 편이 좋습니다. 예를 들어 2026-07-v1 규칙으로 집계한 7일과 2026-07-v2 규칙으로 집계한 7일을 구분해야 팀이 같은 숫자를 보고 이야기할 수 있습니다.
운영 체크리스트
아래 항목을 통과한 뒤에만 trial 품질 필터를 광고 최적화나 영업 라우팅에 연결하는 편이 안전합니다.
| 체크 항목 | 완료 |
|---|---|
| 원본 이벤트를 삭제하지 않고 필터 상태값만 추가하는가 | |
| 내부 테스트 계정 naming rule이 있는가 | |
| 봇 의심, 중복, 기존 고객, support 문의를 별도 사유로 분리하는가 | |
| user_id, account_id, company_domain, CRM company ID가 따로 관리되는가 | |
| 브라우저 이벤트와 서버 이벤트 중복 제거 기준이 있는가 | |
| GA4 이벤트 이름과 파라미터가 고정되어 있는가 | |
| CRM에 trial_quality_status와 trial_quality_reason이 들어가는가 | |
| PQL 점수와 pql_reason이 함께 남는가 | |
| billing trial이 product account와 연결되는가 | |
| 변경 전후 7일 비교표와 rule version이 있는가 |
무료체험 품질 필터의 목표는 가입자를 많이 제외하는 것이 아닙니다. 총 가입, 유효 trial, 활성화 trial, PQL, 유료 전환을 분리해서 봄으로써 제품팀, 마케팅팀, 영업팀이 같은 숫자를 믿고 움직이게 만드는 것입니다.