このドキュメントでは、iOS 向け Google アナリティクス SDK v3 を使ったクラッシュと例外の測定についての概要を説明します。
概要
クラッシュと例外の測定では、アプリで発生したクラッシュと例外の件数と種類を測定できます。例外には次のフィールドがあります。
フィールド名 | トラッカー フィールド | タイプ | 必須 | 説明 |
---|---|---|---|---|
説明 |
|
|
× | 例外の説明で、最大 100 文字です。nil を使用できます。 |
isFatal |
|
BOOL |
はい | 例外が致命的かどうかを示します。
YES の場合は致命的です。 |
クラッシュと例外のデータは、主にクラッシュと例外レポートに 表示されます。
捕捉された例外
捕捉された例外とは、アプリの例外ハンドラのコードで定義したエラーです(データのリクエスト時にネットワーク接続のタイムアウトが発生した場合など)。
捕捉された例外を測定するには、トラッカーの例外フィールドに値を設定し、ヒットを送信します。次の例をご覧ください。
/* * An app tries to load a list of high scores from the cloud. If the request * times out, an exception is sent to Google Analytics */ @try { // Request some scores from the network. NSArray *highScores = [self getHighScoresFromCloud]; } @catch (NSException *exception) { // May return nil if a tracker has not already been initialized with a // property ID. idtracker = [[GAI sharedInstance] defaultTracker]; [tracker send:[[GAIDictionaryBuilder createExceptionWithDescription:@"Connection timeout" // Exception description. May be truncated to 100 chars. withFatal:@NO] build]]; // isFatal (required). NO indicates non-fatal exception. }
捕捉されなかった例外
キャッチされなかった例外は、アプリの実行時に予期しない状況が発生し、多くの場合は致命的であり、アプリがクラッシュしたインスタンスを表します。
trackUncaughtExceptions
プロパティを YES
に設定すると、捕捉されなかった例外を Google アナリティクスに自動的に送信できます。次に例を示します。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[GAI sharedInstance] setTrackUncaughtExceptions:YES]; return YES; }
自動例外測定を使う場合は、次の点にご注意ください。
- 自動例外測定を使って送られた例外はすべて、Google アナリティクスで致命的な例外としてレポートされます。
- Description フィールドは、例外の種類、クラス名、メソッド名、スレッド名を使ってデフォルトで自動的に設定されます。