menu
Is this helpful?

# Debugモード

Debugモードは、開発者がデータ送信を簡単にデバッグできるように設計されており、テストフェーズでのデータ検証にのみ使用されます。Debugモードは、データ収集の品質とアプリの安定性に影響を与える可能性がありますので、本番環境では使用せず必ずテスト環境でご使用ください

# Debugモードを有効

(1)Android SDK

Android SDK インスタンスは、TDConfig で定義されている 3 つの動作モードをサポートしています。DEBUG または DEBUG_ONLY モードを選択してください。

/**
 * Instance operation mode, which is the NORMAL mode by default.
 */
public enum ModeEnum {
    /* In Normal mode, data will be stored in the cache and reported as per a certain cache strategy */
    NORMAL,
    /* Debug Debug mode, data is reported in an entry-by-entry manner. When a problem arises, the system will notify the user in the form of a log and exception */
    DEBUG,
    /* Debug Only Only mode only verifies data without storing the data */
    DEBUG_ONLY
}

例えば、次のコードはDebugモードを使用してSDKの初期設定を完了します。

// Acquire TDConfig instance
TDConfig config = TDConfig.getInstance(mContext, TA_APP_ID, TA_SERVER_URL);
// Set operation mode as the Debug Mode
config.setMode(TDConfig.ModeEnum.DEBUG);
// Initialize SDK
instance = ThinkingAnalyticsSDK.sharedInstance(config);

(2)iOS SDK

iOS SDK インスタンスは、TDConfig で定義された 3 つの実行モードをサポートしています。DEBUG または DEBUG_ONLY モードを選択してください。

/**
Debug Mode

- ThinkingAnalyticsDebugOff: Debug Mode is not enabled by default
*/
typedef NS_OPTIONS(NSInteger, ThinkingAnalyticsDebugMode) {
    /**
     Debug Mode is not enabled by default
     */
    ThinkingAnalyticsDebugOff      = 0,

    /**
      Debug_only mode is enabled, which only verifies data without storing it.
     */
    ThinkingAnalyticsDebugOnly     = 1 << 0,

    /**
     Debug Mode, data will be reported in an entry-by-entry fashion. When a problem arises, the system will notify the user in the form of a log and exception
     */
    ThinkingAnalyticsDebug         = 1 << 1
};

例えば、次のコードはDebugモードを使用して SDK の初期設定を完了します。

// Acquire TDConfig instance
TDConfig *config = [[TDConfig alloc] init];
// Set operation mode as the Debug Mode
config.debugMode = ThinkingAnalyticsDebug;
// Initialize SDK
ThinkingAnalyticsSDK *instance = [ThinkingAnalyticsSDK startWithAppId:@"YOUR_APPID" withUrl:@"YOUR_SERVER_URL" withConfig:config];

(3)その他クライアント

# Debugデバイス追加

本番環境でDebugモード実行を回避するには、デバイスを指定してDebugモードを有効にする必要があります。Debugモードは、クライアント側でDebugモードを有効にし「データ収集管理 - Debugモード」で構成したデバイスでのみ有効にすることができます。

デバイスIDは、次の 2 つの方法で取得できます。

  • クライアントログ: SDKの初期設定が完了すると、DeviceId が出力されます
  • getDeviceId を呼び出してデバイス ID を取得します

# 項目の仕様説明

デバイスを接続するとデバイスから送信されたデータがリアルタイムでデータ一覧に表示され、エラーが発生したデータについては、エラーの具体的な原因が示されます。

  1. 設定:現状接続されているデバイスを切り替えたり、新しいデバイスを追加したり、デバッガー機能の設定が全般可能です。
  2. 読み込み一時停止:テスト中に追加で処理を行いたい際に「一時停止」できます。また、補足情報として「読み込み開始」をクリックするとリアルタイムロード状態に切り替わります。データ収集(自動的に設定されたイベントなど)が一時停止状態であっても、上部のデータテーブルに表示されます。
  3. イベント検索:検索フィルターは、指定されたイベントまたはユーザープロパティのみを表示します。
  4. リストをクリア:「リストをクリア」をクリックすると現在のデータリストが削除され、クリアされたデータは表示されなくなります。 クリア操作はログのみを削除し、すでに格納されたイベントは削除しません。
  5. データプラン比較:テストデータを取得する前に、「データ収集管理 - データ収集プラン」でデータ収集を管理している場合「データプラン比較」を有効にすることができます。これにより、テスト段階でのテストデータとデータ収集プランの差異を取得し、迅速に調整することができます。

収集データ比較を有効にすると、データ収集プラン比較に基づいたエラー情報がエラー原因に追加されます (比較内容にはプリセットプロパティは含まれません)。エラーは次のとおりです。

  • イベントはデータ収集プランにない
  • データ収集プランには含まれていないが、実際に報告されているプロパティがある
  • データ収集プランにあるが、実際には報告されたプロパティはない
  • 送信されたプロパティタイプとデータ収集プランのプロパティタイプの間に矛盾がある

# 事例

# 4.1 Debug モードを使用してデータ収集プランを調整

Debugモードは、新しい収集プランを追加した際に、収集プランの正確性を検証するのに適しています。収集プランをテストする前に、TEのSDK でデバイスのデバイス ID#device_idを取得し、Debugモードでデバイスを追加します。次に、IDEまたは独自のデバイスで収集プランをトリガーし、Debugモードで表示されるデータに注意します。データがアップロードされているか否か、およびデータが正しいかどうかを注意してください。

# 4.2 収集プラン比較を有効

データ収集プラン」でアップロード後「収集プラン比較」を有効にすることを選択できます。テスト段階でテストデータとデータ収集プランの違いを取得し、タイムリーに収集プランコードを調整できます。なお、本機能の検証結果には、プリセットプロパティの検証は含まれません。