# クライアントSDKよくある質問
# クライアントSDKの報告ポリシーは何ですか?
ネイティブクライアントSDK(Unity、Unreal、Flutterなどを含む)のデータは、最初にローカルデータベースにキャッシュされ、次の場合にトリガーされます
- Appバックステージに戻る
- 1分に1回報告する(TAバックグラウンドで設定可能)
- キャッシュされたデータが100件を超えると報告がトリガーされます(TAバックグラウンドで設定できます)
- flushインターフェイスをアクティブに呼び出す
アプレット、ミニゲームSDK、JavaScript SDKはリアルタイムで報告され、ローカルキャッシュはありません。
# デバイスIDの値取りロジックは何ですか?
ネイティブクライアントSDK(Unity、Unreal、Flutterなどを含む)のデバイスID取得ロジックは次のとおりです
- Android:qǔAndroidID
Android 8.0以下のシステムでは、Android IDはデバイス固有のIDです。再スワイプまたは工場出荷時の設定を復元すると変更されます。すべてのアプリケーションを共有します。Android 8.0以降のシステムでは、アプリケーション署名キー、ユーザー、およびデバイスの各組み合わせに固有のANDROID_ID値があります。そのため、同じデバイスで実行されているが、異なる署名キーを持つアプリでは、同じAndroid IDが表示されなくなります(同じユーザーでも)。一つの特殊な状況:ユーザーがAPPデバイスをインストールして8.0以下で、アンインストールして、8.0にアップグレードした後にアプリケーションを再インストールした場合、Android IDは以前と違う再インストールがなければ、Android IDは変更されない。
- iOS: IDFVを先に取り、取れない場合はランダムUUIDを使う。最初に取得されたデバイスID値は、後続のIDFVが変更されても変更されないように、キーストリングに格納されます。
アプレット、ミニゲーム、JavaScriptインターフェイスは、ランダムに生成されたIDをデバイスIDとして使用して、同様のデバイス番号を取得できません。ユーザーがキャッシュを削除すると、デバイスIDが変更されます。
# クライアントSDKでサポートされる最小システムバージョンは?
クライアントSDKがサポートする最低バージョンはAndroid 4.0とiOS 8.0
# 問題を報告する方法?
一般的な問題はクライアントログですぐに見つけることができ、私たちは各アクセスガイドでクライアントログを開く方法を紹介した。
Androidでは、enableTrackLogインターフェイスを呼び出して
クライアントログを開くことができます。を使用してThinkingAnalytics
Android SDKのログをフィルタリングできます。
ThinkingAnalyticsSDK.enableTrackLog(true);
iOSでは、setLogLevelインターフェイスを呼び出し呼び出し
ログ印刷を開き、THINKINGでTHINKING
iOS SDKのログをフィルタリングできます。
[ThinkingAnalyticsSDK setLogLevel:TDLoggingLevelDebug]
ログを開いた後、テクニカルサポートエンジニアにログを送信して問題の特定を支援できます。
報告されたアドレスが正しいかどうかわからない場合は、チェックインターフェイスをチェックして報告されたアドレスの到達可能性を検出できます。https://YOUR_RECEIVER_URL/health-checkにアクセスし、ページがOKを返すと、受信側のアドレスが正しく設定されます。
そのほか、埋め込みポイント管理モジュールの機能によって、データ報告中の問題にも便利に位置付けることができる。
# Unity SDKでデータを報告する際の注意点は何ですか?
- SDKの初期化はAwake()で行われるため、呼び出しはAwakeでトリガーでき
- デフォルトでは、すべてのインターフェイスはメインスレッドでのみ呼び出すことができます。
- 私たちは、Androidシステムのコンポーネントライフサイクルを通じて、アプリがフロントに入るか、バックステージに戻るかを判断します。ただし、Unityではプログラムの最初からSDKを初期化する保証はないため、バックグラウンドに戻ったときに最初の起動イベントを判断できる可能性があります。現在、私たちは最初にバックグラウンドに戻ったときにta_app_startを補充します(報告は少し遅れていますが、イベント時間#event_timeは正しいので、後続の分析には影響しません)
# クラッシュイベントには何が含まれますか?クラッシュイベントの収集方法
クライアントSDKは、部分的なクラッシュログの取得をサポートします。SDKを初期化した後、APPCrashの自動取得を有効にする必要があります。クラッシュイベントに対応するイベント名: ta_app_crash
クラッシュイベントの収集をトリガーする状況:
- Androidプラットフォーム:仮想マシンでキャプチャされていない例外
- iOSプラットフォーム:
- Unixシグナル例外には、SIGABRT, SIGILL, SIGSEGV, SIGFPE, SIGBUS
- NSException例外
# Android自動収集イベントのトラブルシューティング?
自動収集イベントのほとんどは、enableAutoTrackインターフェイスを呼び出すだけです。コントロールのクリックイベントやフラグメントブラウジングイベントを収集する必要がある場合は、TAが提供する自動収集プラグインを適用する必要があります。Android SDK自動収集ガイドAndroid SDK自動収集ガイド章を参照してください。
自動収集プラグインを使用し、コンパイルエラーが発生した場合、一部のパッケージとの競合が原因である可能性があります。ほとんどの場合、ログのヒントのエラーのパッケージ名を見つけ、gradle構成に次の内容を追加するだけで解決できcom.alipayます。
thinkingAnalytics {
exclude 'com.alipay'
}
プロジェクトがMultiDexを使用している場合、ClassNotFoundExceptionのエラーが発生する可能性があります。この場合、エラーが報告されたクラスをプライマリdexにパッケージ化し、SDKのコードをプライマリdexにパッケージ化して、multiDexKeepProguardに次の構成を追加する必要があります
-keep class cn.thinkingdata.android.** { *; }