Web SDK

1. 対応ブラウザ

ブラウザ 対応バージョン
Apple Safari (Mac) 8以降
Apple Safari (iOS) 7以降
Google Chrome 52以降
Google Chrome (Android) 51以降
Internet Explorer 9以降
Microsoft Edge 10以降
Mozilla Firefox 47以降
Opera 41以降

2. HTMLページへのSDKの取り込み方法

HTMLページ内に下記タグを追加。複数回実行しても影響はありません。

<script src="https://assets.smrtbeat.com/scripts/smartbeat.min.js"></script>
<script type="application/javascript">
    // 初期化を行う
    SmartBeat.init("<SmartBeatコンソールからのAPIキー>","<アプリバージョン、例:1.1.25>","<アプリ名またはBundleID>");
</script>

注意点: 難読化を行っている場合、アップロードされたマッピングファイルとの対応付に利用されるので、独立したバージョンを設定するようにしてください。また、リリースごとに別バージョンを割り当てていただくことで、エラー管理や統計情報をより効果的にご利用することができます。

3. オプション機能

3.1 CatchしたExceptionの保存

アプリケーションがCatchした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();