문제 해결

📘

이 문서에 대하여

이 문서는 SDK 연동 과정 중 비정상 동작으로 의심되거나, 그 외 버그로 의심되는 문제가 발생할 때 참고할 수 있습니다.
어떠한 기능의 지원 여부, 구현 노하우조언을 구하는 질문은 자주 묻는 질문 문서를 참고하시기 바랍니다.

1. 사용자 지정 식별자를 넣어 variation 메소드 호출 시 에러 발생

Q. JavaScript SDK 이용 중입니다. variation 메소드를 호출하는데 사용자 식별자와 관련된 에러가 발생합니다. 파라미터로 저희가 만든 사용자 식별자를 넘겼는데 어떤 문제인가요?

A. JavaScript SDK인 경우 variation 메소드에 사용자 정보를 넘길 때 오브젝트 형태로 넘겨야 합니다. 아래 예시 코드의 잘못된 사례처럼 단순 string type만 넘긴 것이 아닌지 확인해보시기 바랍니다.

hackleClient.variation(6, "user_id")       // 잘못된 사례
hackleClient.variation(6, {id: "user_id"}} // 올바른 사례

👍

개발 플랫폼 별 사용자 지정 식별자 넣는 방법

SDK 카테고리 내에 있는 사용자 식별자 문서에 언어 별 예시가 있습니다.

2. 사용자 지정 식별자 전달 시 지표 이상

Q. 핵클 SDK를 연동했고 저희가 만든 사용자 식별자를 이용하고 있습니다. 지표 결과가 이상한데 의심할 포인트가 있을까요?

A. variation 메소드 및 track 메소드 둘 다 사용자 식별자를 전달하고 있는지 확인해보시기 바랍니다. 두 메소드 중 하나라도 사용자 식별자를 전달한다면 다른 하나도 전달해야만 합니다.

// 잘못된 사례
hackleClient.variation(7, { id : "12345"} ) // 사용자 식별자 직접 전달
hackleClient.track("purchase") // 사용자 식별자 전달하지 않음

// 올바른 사례
// (1안) 사용자 지정 식별자 사용
hackleClient.variation(7, { id : "12345"}) 
hackleClient.track("purchase", { id : "12345"})

// (2안) 내부적으로 관리되는 디바이스 식별자 사용
hackleClient.variation(7) 
hackleClient.track("purchase")

잘못된 사례의 경우 variationtrack의 식별자가 달라져 지표 계산이 정상적으로 이루어지지 않습니다.
사용자 분배와 이벤트 전송 시 사용자 식별자 전달 방식을 동일하게 사용해야 동일한 사용자로 인식하고 지표를 계산합니다.
즉, 둘 중 하나만 사용자 식별자를 전달할 경우 두 메소드는 서로 다른 사용자를 대상으로 삼는 것으로 인지할 가능성이 있습니다.

3. 실시간 노출 현황 결과 이상

Q. 동일한 사용자로 variation 메소드를 여러 번 호출했는데 실시간 노출 현황이 증가합니다. 오류인가요?

A. 정상 동작입니다. 실시간 노출 현황의 경우 variation 호출 카운트(호출한 노출 횟수)와 동일합니다. 즉, 중복 제거 없는 전체 노출 수가 출력됩니다.
반면 목표 계산에서는 중복을 제거하여 UV로 계산됩니다. 즉 목표에서는 unique한 사용자 수가 출력됩니다.

4. A/B 테스트 종료 후 트래픽 이상

Q. A/B 테스트를 종료하고 Winner 그룹을 선택했습니다. 아직 Winner 그룹의 로직을 적용하지는 않을 생각인데 모든 트래픽이 Winner 그룹으로 가는 것 같습니다.

A. 특정 그룹으로 Winner를 선택하면 해당 A/B 테스트에 해당하는 모든 트래픽은 Winner 그룹으로 향합니다.
따라서 A/B 테스트 종료 시 아래의 순서대로 진행하시기 바랍니다.

  1. 핵클 대시보드에서 A/B 테스트 종료 및 Winner 그룹 선택
  2. 운영 환경(Production)에서 A/B 테스트와 관련된 코드 삭제
  3. 핵클 대시보드에서 1번의 A/B 테스트에 대해 테스트 보관처리 클릭하여 보관 상태로 전환

5. JavaScript SDK에서 수동 할당 미동작

Q. JavaScript SDK 사용 중입니다. 개발 환경에서 특정 사용자 대상으로 테스트 기기를 등록하여 테스트하려고 하는데 지정한 대로 테스트 그룹에 분배된 것 같지 않습니다.

A. JavaScript SDK의 경우 사용자 latency를 위해서 설정 값을 cache하고 있습니다. 따라서 제대로 할당되지 않은 것처럼 보일 수 있습니다. 이 경우 크롬 브라우저의 강력 새로고침 기능을 이용하여 즉각적으로 볼 수 있습니다.
만약 이 방법도 통하지 않으면 개발자 도구를 열고 새로고침 버튼에서 오른쪽 클릭 후 캐시 비우기 및 강력 새로고침을 클릭하여 다시 시도하시기 바랍니다.

868

크롬 브라우저의 캐시 비우기 및 강력 새로고침

6. 테스트 그룹 A에 쏠리는 현상

Q. 실시간 노출 현황을 통해 분배된 그룹을 보고 있는데 유독 테스트 그룹 A에만 몰리는 것 같습니다.

A. A/B 테스트에 할당되지 않았거나 수동 할당 대상인 경우, 에러 발생 등 여러 가지 이유로 기본 그룹인 테스트 그룹 A에 들어갈 수 있습니다. 테스트 그룹 분배와 상관 없이 테스트 그룹 A로 가는 경우에 대해서는 테스트 그룹 분배 과정테스트 그룹 분배 원리 문서에서 설명하고 있습니다.

SDK에서 제공하는 메소드를 통해서 원인을 파악할 수 있습니다. variationDetail 메소드를 지원하는 SDK의 경우 특정 그룹으로 분배된 사유를 함께 반환합니다. 해당 메소드를 적극 활용해보시기 바랍니다.