Web SDK

1. 대응 브라우져

브라우져 대응 버젼
Apple Safari (Mac) 8이후
Apple Safari (iOS) 7이후
Google Chrome 52이후
Google Chrome (Android) 51이후
Internet Explorer 10이후
Microsoft Edge 10이후
Mozilla Firefox 47이후
Opera 41이후

2. HTML 페이지의 SDK적용방법

HTML 페이지의 body 태그 안에 아래 태그 추가. 여러 번 실행시켜도 영향은 없습니다.

<script src="https://assets.smrtbeat.com/scripts/v2/smartbeat.min.js"></script>
<script type="application/javascript">
    // 초기화를 진행함
    SmartBeat.init("<SmartBeat 콘솔로부터의API키>","< 어플리케이션,예:1.1.25>","<어플리 명 또는 BundleID>");
</script>

주의점: 난독화를 진행하는 경우 , 업로드된 맵핑파일과 맵핑에 사용되기 때문에, 독립된 버전으로 설정 해주십시오. 또한 릴리즈 할때 마다 별도의 버전을 나눠줌으로서 에러관리 및 통계정보를 좀 더 효과적으로 이용하는게 가능합니다.

3. 옵션 기능

3.1 캡쳐한Exception의 보존

어플리케이션이 캡쳐한 Exception을 기록하는게 가능합니다. 본API를 높은 빈도로 불러낼 경우, 통신량의 증가 및 어플리의 부하상승이 생길 가능성이 있기 때문에 빈번하게 발생하는 부분에서의 이용은 추천하지 않습니다.

유효화 방법
try {
    // 예외를 출력하는 코드
} catch (error) {
    SmartBeat.handledException(error.message, error.fileName, error.lineNumber, error.columnNumber, error);
}

3.2 로그 출력

콘솔로그에 출력할 필요 없이 로그 수집이 가능합니다.
※64KB이하 및 최대500행까지 최신로그를 보존 및 취득 합니다.
※인수에는String형태 또는 Object형태로 지정 해주십시오.Object의 경우에는JSON포맷으로 해서 로그를 남깁니다.

유효화방법

이하의API를 불러와서 로그를 보존하는게 가능해집니다.

// String형태 로그 메세지
SmartBeat.log("로그 메세지");
// Object형태 로그 메세지.JSON으로 변환하여 로그를 남김.
var someObject = {some: "object"};
SmartBeat.log(someObject);

3.3 콘솔 로그 취득

콘솔로그를 캡쳐하여 에러정보를 포함하는 경우에는 아래의API를 불러와서 window.console의 로깅기능을 덮어씌우게 됩니다. 덮어씌운 경우에는 로깅 퍼포먼스가 약8〜10us늦어지게 됩니다.(2.7 GHz Intel Core i7에서Safari/Firefox/Chrome을 베이스로 테스트 한 결과)

유효화 방법
SmartBeat.delegateLog(window.console);

※delegateLog은 한번만 실행하면 문제 없기 때문에, 필요한 경우에는 어플리 초기화시에 실행해주시면 됩니다.

3.4 콘솔 로그 출력 정지

delegateLog에서 콘솔 로그의 캡쳐를 유효한 상태에서, 콘솔의 로그 및 에러 출력을 억제하는게 가능합니다.

유효・무효방법
SmartBeat.delegateLog(window.console);
SmartBeat.enableConsolePassthrough(false);

임의의 타이밍에서 콘솔에의 출력 재개가 가능합니다.

SmartBeat.enableConsolePassthrough(true);

3.5 로그레벨에 따라 제한하기

캡쳐하는 로그의 레벨을 제한하는 것이 가능합니다.(JS콘솔 로그에는 영향을 주지 않습니다).

유효화 방법
SmartBeat.enableLoggingPriorities([SmartBeat.LOG_LEVEL.ERROR,SmartBeat.LOG_LEVEL.WARN]);

3.6 유저ID설정

대상의 어플리케이션이 관리하는 유저를 인식하는 ID가 이미 있는 경우,그 부분에 대해 설정하는게 가능합니다. 설정된 유저 ID는 에러와 함께SmartBeat서버에 송신됩니다. 어떤 유저에서 에러가 발생하는지 등 관리 콘솔상에서 확인이 가능합니다.

유효화 방법

이하의API불러오기를 하는 것으로 설정이 가능합니다.

SmartBeat.setUser("유저명");

3.7 확장정보

에러정보에 확장정보를 부여하는게 가능합니다. 어플리케이션에 따라,유저가 설정한 정보 및 어플리케이션 내부에 가지고 있는 정보가 에러해석에 많은 도움이 됩니다.

유효화 방법

이하의API불러오기를 적용함으로서, 임의의 키명과 키값 셋트를 에러 데이터와 함께 보존하는게 가능합니다.

SmartBeat.addExtraData("키","밸류");

키값을 변경하는 경우에는, 같은 키명에서 추가하면 새로운 키값으로 덮어씌워지게 됩니다.

3.8 브레드크럼(breadcrumb)기능

임의의 포인트에서 브레드 크럼을 남김으로서, 에러발생까지의 유저가 행동한 조작 및 화면전이등을 수집하는게 가능합니다.
※브레드 크럼은 최후에 기록되는 부분 부터 최대 16개가 보존됩니다.
※SmartBeat서버에 보내지는 브레드 크럼은|(파이프 문자)의 구분을 포함하여255문자까지가 됩니다.

유효화 방법

브레드크럼을 떨구고 싶은(기록을 남기고 싶음)장소에서 아래의 API를 불러와 주십시오.

SmartBeat.leaveBreadcrumb("유저 액션 상세 텍스트");

예를 들어「맵 화면」→「게임 화면」→「설정 화면」등과 키가 되는 화면의 전이시에 남기는 경우에는 에러직전에 유저가 어떤식의 화면전이를 했는지 알 수 있습니다.

3.9 맵핑 파일 자동 업로드

mapping File Upload script」을 빌드 환경에 적용하는 것으로 빌드시에 자동으로 Javascript의 맵핑 파일을 업로드하는게 가능합니다.

자세한 내용은 제공한 스크립트 내의readme파일을 확인 부탁드리겠습니다.

3.10 화면 캡쳐 기능

본 기능을 유효로 한 경우 에러발생시의 스크린샷을 보존하고 에러 정보와 함께 SmartBeat서버에 송신 합니다.
※화면 캡쳐 기능은 HTML캔버스와 세큐리티 제한에 의한 실사의 유저화면이 아니라 DOM으로 부터 재현하고 있는 화면이 됩니다.
※세큐리티 제한에 의한 별도 사이트 리소스가 포함된 경우, 부분적으로 빈화면(백 그라운드 색)로 됩니다.

유효화 방법

유효・무효를 바꿀때 아래의 API을 사용해주세요.

SmartBeat.enableScreenCapture();
SmartBeat.disableScreenCapture();