デバッグモード
デバッグモードは、開発者がデータ送信をデバッグしやすくするための機能で、統合段階でのデータ検証にのみ使用します。デバッグモードはデータ収集の品質やAppの安定性に影響する可能性があるため、本番環境では使用しないでください。
1. デバッグモードを有効にする
(1)Android SDK
Android SDKのインスタンスは3つの実行モードに対応しており、TDConfigで定義されています。DEBUGまたはDEBUG_ONLYモードを選択してください:
/**
* インスタンスの実行モード。デフォルトはNORMALモード。
*/
public enum ModeEnum {
/* 通常モード。データはキャッシュに保存され、一定のキャッシュポリシーに従って送信される */
NORMAL,
/* デバッグモード。データを1件ずつ送信する。問題が発生した場合はログと例外でユーザーに通知する */
DEBUG,
/* Debug Onlyモード。データの検証のみを行い、データは格納されない */
DEBUG_ONLY
}
たとえば、次のコードはデバッグモードでSDKを初期化する例です:
// TDConfigインスタンスを取得
TDConfig config = TDConfig.getInstance(mContext, TA_APP_ID, TA_SERVER_URL);
// 実行モードをデバッグモードに設定
config.setMode(TDConfig.ModeEnum.DEBUG);
// SDKを初期化
instance = ThinkingAnalyticsSDK.sharedInstance(config);
(2)iOS SDK
iOS SDKのインスタンスは3つの実行モードに対応しており、TDConfigで定義されています。DEBUGまたはDEBUG_ONLYモードを選択してください:
/**
デバッグモード
- ThinkingAnalyticsDebugOff : デフォルト。デバッグモードを有効にしない
*/
typedef NS_OPTIONS(NSInteger, ThinkingAnalyticsDebugMode) {
/**
デフォルト。デバッグモードを有効にしない
*/
ThinkingAnalyticsDebugOff = 0,
/**
Debug_onlyモードを有効にする。データの検証のみを行い、データは格納されない
*/
ThinkingAnalyticsDebugOnly = 1 << 0,
/**
デバッグモード。データを1件ずつ送信する。問題が発生した場合はログと例外でユーザーに通知する
*/
ThinkingAnalyticsDebug = 1 << 1
};
たとえば、次のコードはデバッグモードでSDKを初期化する例です:
// TDConfigインスタンスを取得
TDConfig *config = [[TDConfig alloc] init];
// 実行モードをデバッグモードに設定
config.debugMode = ThinkingAnalyticsDebug;
// SDKを初期化
ThinkingAnalyticsSDK *instance = [ThinkingAnalyticsSDK startWithAppId:@"YOUR_APPID" withUrl:@"YOUR_SERVER_URL" withConfig:config];
(3)その他のクライアント
2. デバッグデバイスの追加
デバッグモードが本番環境で有効になるのを防ぐため、デバッグモードはデバイスを指定しないと有効にできません。クライアントでデバッグモードを有効にし、かつデータ収集管理 - デバッグモードで接続設定を行ったデバイスのみ、デバッグモードを有効にできます。
デバイスIDは次の2つの方法で取得できます:
- クライアントのログ:SDKの初期化が完了すると、デバイスの
DeviceIdが出力されます getDeviceIdを呼び出してデバイスIDを取得します
4. 使用方法
デバイスを接続すると、そのデバイスから送信されたデータがデータリストにリアルタイムで表示されます。検証でエラーになったデータについては、調査しやすいように具体的なエラー原因が表示されます。
- 設定: クリックすると、現在接続しているデバイスの選択・切り替えや、新しいデバイスの追加ができます。
- 読み込みを一時停止: テスト中に特定のイベントで止めてさらに確認したい場合は、「読み込みを一時停止」をクリックします。一時停止中に発生したデータ(設定した自動収集イベントなど)は、データテーブルの上部に通知されます。「読み込みを開始」をクリックすると、リアルタイム読み込みの状態に切り替わります。
- イベント検索: 検索で絞り込み、指定したイベントまたはユーザープロパティのみを表示します。
- リストを削除: 「リストを削除」をクリックすると、現在のデータリストがクリアされ、クリアされたデータは表示されなくなります。クリア操作で消えるのはログのみで、格納済みのイベントは削除されません。
- データ収集プランの比較: データをテストする前にデータ収集管理 - データ収集プランモジュールでデータ収集プランの情報を管理している場合は、「データ収集プランの比較」を有効にすると、テスト段階でテストデータとデータ収集プランの差異を取得でき、トラッキングコードをすぐに調整できます。
データ収集プランの比較を有効にすると、エラー原因に、データ収集プランとの比較に基づくエラー情報が追加で返されます(比較対象にプリセットプロパティは含まれません)。発生する可能性のあるエラーは次のとおりです:
- イベントがデータ収集プランに含まれていない
- データ収集プランに含まれていないが、実際には送信されているプロパティがある
- プロパティが欠落している(データ収集プランには含まれているが、実際には送信されていないプロパティがある)
- 送信されたプロパティのタイプが、データ収集プランのプロパティのタイプと一致しない
4. ベストプラクティス
4.1 デバッグモードでトラッキングをデバッグする
デバッグモードは、トラッキングを新たに追加したときに、その正しさを検証するのに最適です。トラッキングをテストする前に、まずAE SDKでのデバイスのデバイスID#device_idを取得し、デバッグモードにそのデバイスを追加します。その後、IDEまたは自分のデバイスでトラッキングをトリガーし、デバッグモードに表示されるデータを確認します。主に、データがアップロードされているか、データが正しいかを確認します。
4.2 データ収集プランの比較を有効にする
「データ収集プラン」ページでプランをアップロードした後、「データ収集プランの比較」を有効にすると、テスト段階でテストデータとデータ収集プランの差異を取得でき、トラッキングコードをすぐに調整できます。なお、この機能の検証結果には、プリセットプロパティの検証は含まれません。

