ReactNative用SDKでログを取得したい

はじめに

ログを取得するにはSDKの導入が必要です
導入手順の詳細については 以下の記事を参照ください

APIの仕様について

トラッキングAPI の提供関数について

b→dash mobile SDKで提供しているAPI関数は下記となります。

API 説明
sendScreen(Trackerパラメータ) b→dashのトラッキングデータの基本情報を送るAPI
sendEvent(Trackerパラメータ) sendScreen()にイベント情報も合わせて送るAPI
sendException(Trackerパラメータ) sendScreen()にクラッシュ情報も合わせて送るAPI

トラッキングAPI のパラメータについて

b→dash mobile SDKで付加できるパラメータの key については下記となります。

1. 共通パラメータ
パラメータ名 プロパティ名 説明 説明
スクリーン名 screenName スクリーンの名称を設定 256 byte
外部キー relationalKey 外部キー、外部値とセットで設定 128 bye             
外部値 relationalValue 外部キーの値、外部キーとセットで設定 128 byte
ログインユーザID loginUserId ログインユーザIDを設定 128 byte
起動タイプ bootType どこ経由からアプリケーションを起動したか計測する際に使用。
通知: BDashTrackerSDK.BOOT_PUSH
スキーマ:BDashTrackerSDK.BOOT_SCHEMA BDashTrackerSDKの部分はimport時に指定した名称。一回送るとリセットされる。
32byte
起動タイプのオプション値 bootValue 起動タイプ設定時に付与するオプション値。一回送るとリセットされる。 512 byte
ユーザマップ userMap アプリケーションで定義したユーザ情報をキー、バリュー値で設定 格納できるキーバリューのペアは10個まで。
キー: 32 byte    バリュー: 128 byte
※10個を越えるデータを入れる場合、キーの順番が保障されていないので10個を超えないようにご調整ください。
2. イベントパラメータ
パラメータ名 プロパティ名 説明 上限値
イベントラベル eventLabel イベントラベルを設定 256 byte
イベントカテゴリ名 eventCategory イベントカテゴリを設定 256 byte
イベントアクション名 eventActionName イベントアクションを設定 256 byte
イベント値 eventValue イベント値を設定 256 byte
イベントマップ eventMap アプリケーションで定義したイベント情報をキー、バリュー値で設定 格納できるキーバリューのペアは10個まで
キー: 32 byte    バリュー: 128 byte
※10個を越えるデータを入れる場合、キーの順番が保障されないので HashMapでの順序が保障されません。10個を超えないようにご調整ください。
3. クラッシュパラメータ
パラメータ名 プロパティ名 説明 上限値
クラッシュ名 crashName クラッシュ名を設定 256 byte
クラッシュ概要 crashDescription クラッシュ概要を設定 1024 byte
クラッシュが致命的 crashFatal 致命的なクラッシュの場合true
致命的なクラッシュでない場合false
booleanの範囲内
「設定したキー」と「データファイルのカスタム項目」を紐付けたい場合は、カスタマーサクセス担当まで、お問い合わせください。
Tracker API の上限値を超える場合

弊社では各項目の上限値に基づきテストしておりますので、上限を超えて設定される場合は、お客様の自己責任にてご設定頂くようにお願いいたします。

スレッドセーフについて

トラッキング機能を提供するTrackerはスレッドセーフではありません。複数のスレッド(メインスレッド、ワーカースレッド)から同時に書き込む処理を行う場合、排他制御をする必要があります。React-Native 版は単一スレッドのため、ネイティブで利用する場合のみ意識する必要があります。

APIの組み込み

b→dash mobile SDKを用いてb→dashへログを送信するには、SDKが提供するAPIをスマホアプリに組み込む必要があります。

スクリーンログを送信する

スクリーンログを送信するにはScreenViewBuilderが必要になります。ScreenViewBuilder はスクリーンビューが単純に発生したときに、画面名を設定して成果を生成するクラスです。WebView イベントやライフサイクルイベント時に成果を取得するサンプルコードを紹介します。webページが正常に表示されたとき、スクリーンビュー成果を送ってみます。

import BDashTrackerSDK from './src/bdash/BDashTrackerModule';

〜 省略

function sendScreen() {

 // パラメータキーの取得
var options = {
  screenName:'スクリーン名',
  loginUserId:'ログインユーザーID',
  relationalKey:'外部キー',
  relationalValue:'外部値'
 }

 // スクリーンビューの送信
BDashTrackerSDK.sendScreen(options);
}

イベントログを送信する

イベントログを取得するにはEventBuilderが必要になります。EventBuilder はイベントが発生したときに、画面名を設定して成果を生成するクラスです。WebView イベントやライフサイクルイベント時に成果を取得するサンプルコードを紹介します。下記例はGUIを操作した際に実行するメソッドに成果を送信する例です。

import BDashTrackerSDK from './src/bdash/BDashTrackerModule';

〜 省略

function sendEvent() {

 var options = {
  eventCategory:'画面遷移',
  eventActionName:'モーダル',
  eventValue:'イベント値',
  eventLabel:'初期表示',
  screenName:'スクリーン名',
  loginUserId:'ログインユーザーID',
  relationalKey:'外部キー',
  relationalValue:'外部値',
  userMap:{ sex:'男'},
  eventMap:{ eventDefineKey1:'eventValue1', eventDefineKey2:'eventValue2'}
}

 // イベントの送信
BDashTrackerSDK.sendEvent(options);
}

エラーログを送信する

エラーログを送信するにはExceptionBuilderが必要になります。ExceptionBuilder はアプリ内で、軽微・致命的問わず、クラッシュが発生したときの情報を追加して成果を生成するクラスです。例外が発生したことを検知したい箇所で実装します。

import BDashTrackerSDK from './src/bdash/BDashTrackerModule';

〜 省略

function sendException() {

 var options = {
  crashName:'クラッシュ名',
  crashDescription:'クラッシュ詳細説明',
  crashFatal:true
 }

 // クラッシュレポートの送信
BDashTrackerSDK.sendException(options);
}

起動タイプログを送信する

外部起動(スキーマ/Push通知起動) などで、通常と異なる「アプリ起動時のイベント」を集計することができます。

起動タイプ JavaScript呼び出し関数 JavaScript呼び出し関数
起動時(ホーム画面など) なし デフォルト未設定状態で起動時
通知 BDashTrackerSDK.BOOT_PUSH 通知から起動された事を示します。BDashTrackerSDKの部分はimport時に指定した名称。
スキーム BDashTrackerSDK.BOOT_SCHEMA スキームから起動された事を示します。BDashTrackerSDKの部分はimport時に指定した名称。
その他 BDashTrackerSDK.BOOT_OTHER その他(任意)から起動された事を示します。BDashTrackerSDKの部分はimport時に指定した名称。

以下はスキーマ経由で起動した際のイベント送信例となります。

import BDashTrackerSDK from './src/bdash/BDashTrackerModule';

〜 省略

function sendEvent() {

 let url = "URLスキーム";
var options = {
  screenName:'初期画面',
  bootType: BDashTrackerSDK.BOOT_SCHEMA,
  bootValue:url
 }

 BDashTrackerSDK.sendEvent(options);
}

会員IDなどの情報を紐付ける

B-Dash SDKでは、独自の「会員ID」など貴社サービスで管理しているIDを紐付けることができます。

import BDashTrackerSDK from './src/bdash/BDashTrackerModule';

〜 省略

 //会員IDを紐付ける
var options = {
  loginUserId:'ログインユーザーID'
}

 // スクリーンビューの送信
BDashTrackerSDK.sendScreen(options);

外部データなどの情報を紐付ける

B-Dash SDKでは独自の「外部データ」を紐付けることができます。

import BDashTrackerSDK from './src/bdash/BDashTrackerModule';

〜 省略

 // 外部データを紐付ける
var options = {
  relationalKey:'外部キー',
  relationalValue:'外部値'
 }

// スクリーンビューの送信
BDashTrackerSDK.sendScreen(options);
sendの仕様について

sendScreen、sendEvent、sendException 関数は仕様上、ほぼリアルタイムにログを送信することが可能となっています。

WebViewの呼び出しについて

WebView でページ表示を行うときは、SDK 独自のURLパラメーターに値を設定することで、集計データなどが詳細に集計されるようになります。パラメーターを付与することで、WebViewのコンテンツ上においても同一ユーザーとして識別することが可能となります。また、本パラメーターは同一ドメイン内でのみ有効となる為、異なるドメインにアクセスする場合、再度、付与する必要があります。

パラメーター名 バリュー 役割
_bdld BDashTrackerSDK.visitorId セッション判定が正しく集計される。
* 「BDashTrackerSDK」は任意の名称に変更可能です。

パラメーター名はそのままコピーしてご利用ください。