# クライアントSDKよくある問題
# クライアント SDK の送信ルールはどのようなものですか?
ネイティブ クライアント SDK (Unity、Unreal、Flutter などを含む) データは最初にローカル データベースにキャッシュされ、次の状況でデータ送信されます:
- APPがバックグラウンドに入る
- 30秒に1回(TEシステム内で設定可能)
- 30件以上のキャッシュ データで一回 (TEシステム内で設定可能)
- flush インターフェイスを呼び出す
ミニ アプリ、および JavaScript SDK は、ローカル キャッシュなしでリアルタイムで送信します
# デバイス ID の値のロジックは何ですか?
ネイティブ クライアント SDK (Unity、Unreal、Flutter などを含む) のデバイス ID 値のロジックは次のとおりです。
- Android: Android ID
Android 8.0 より前のシステムの場合、Android ID はデバイスのユニークの識別子です。初期化または出荷時の設定の復元は変更されます。すべてのアプリが共有します。 Android 8.0 以降では、アプリ署名キー、ユーザー、デバイスの各組み合わせにユニークの ANDROID_ID 値があります。したがって、同じデバイス上で実行されているが異なる署名キーを使用するアプリは、同じ Android ID を認識しなくなります (同じユーザーであっても)。特殊なケース: ユーザーが 8.0 以前のデバイスにアプリをインストールし、後でアンインストールし、8.0 にアップグレードした後にアプリを再インストールした場合、Android ID は以前とは異なります。再インストールがない場合、Android ID は変更されません。
- iOS:最初に IDFV を取得し、取得できない場合はランダムな UUID を使用します。最初に取得したデバイス ID の値はキーチェーンに保存され、その後の IDFV が変更されても変更されません。
ミニアプリ、JavaScript インターフェイスは同様のデバイス ID を取得できず、ランダムに生成された ID をデバイス ID として使用します。ユーザーがキャッシュを削除すると、デバイス ID が変更されます。
# クライアント SDK で対応されているシステムの最低バージョンは何ですか?
Android 4.0 と iOS 8.0
# データ送信問題はどうやって確認しますか?
一般的な問題は、クライアント ログを使用してすばやく特定できます。各SDKガイドで、クライアント ログを有効にする方法を紹介されています。
Android では、enableTrackLog
インターフェイスを呼び出して、クライアント側のログを有効にすることができます。 ThinkingAnalytics
を介して Android SDK ログをフィルタリングできます
ThinkingAnalyticsSDK.enableTrackLog(true);
iOS では、setLogLevel
インターフェイスを呼び出してログのプリントを有効にし、THINKING
を介して iOS SDK ログをフィルター処理できます。
[ThinkingAnalyticsSDK setLogLevel:TDLoggingLevelDebug]
ログを開いた後、テクニカル サポート エンジニアにログを共有して、問題の特定にサポートすることができます。
送信したアドレスが正しいかどうかわからない場合は、インターフェイスを確認して、送信したアドレスの到達可能性を確認できます。 https://YOUR_RECEIVER_URL/health-check にアクセスすると、ページに ok が返され、受信者のアドレスが正しく構成されていることが示されます。
# Unity SDK を利用してデータを送信する際の注意事項は何ですか?
- SDK の初期化は Awake() で行われるため、呼び出しを Awake でトリガーすることはできません。
- デフォルトでは、すべてのインターフェイスはメイン スレッドでのみ呼び出すことができます。
- APP がフォアグラウンドに入るか、バックグラウンドに戻るかは、Android システムのコンポーネント ライフサイクルを通じて判断します。ただし、Unity はプログラムの最初で SDK が初期設定されることを保証できないため、バックグラウンドに戻るときに最初の起動イベントを判断できる可能性があります。現時点では、最初にバックグラウンドに戻るときに ta_app_start を追加します (送信は少し遅れていますが、イベント時間 #event_time は正しく、その後の分析には影響しません)。
# クラッシュ イベントには何が含まれますか?クラッシュ イベントの収集方法は?
クライアント SDK は、一部のクラッシュ ログの収集を対応しています。 SDK を初期設定した後、APP Crash の自動収集を有効にする必要があります。クラッシュ イベントに対応するイベント名は、ta_app_crashとなります。
クラッシュ イベントの収集をトリガーする状況:
- Android :VMでキャッチされない例外が発生しました
- iOS :
- Unix 異常信号:SIGABRT, SIGILL, SIGSEGV, SIGFPE, SIGBUS
- NSException 異常
- Unityエンジンでの C# 異常の収集