Plantages et exceptions – SDK iOS

Ce document offre une présentation générale de la mesure des plantages et des exceptions à l'aide du SDK Google Analytics pour iOS v2.

Présentation

La mesure des plantages et des exceptions vous permet de mesurer le nombre et le type de plantages et d'exceptions qui se produisent dans votre application. Voici une exception dans Google Analytics:

  • NSString (Facultatif) Description : description de l'exception (100 caractères maximum). Accepte nil.
  • boolean isFatal : indique si l'exception était fatale. YES indique une erreur fatale.

Les données sur les plantages et les exceptions sont principalement disponibles dans le rapport "Plantages et exceptions".

Exceptions capturées

Les exceptions détectées sont des erreurs dans votre application pour lesquelles vous avez défini du code de gestion des exceptions. Il s'agit généralement d'erreurs qui peuvent se produire lors de l'utilisation normale de votre application et pour lesquelles vous souhaitez que votre application puisse récupérer, telles que le délai d'inactivité occasionnel d'une connexion réseau lors d'une requête de données.

Vous pouvez mesurer les exceptions interceptées en ajoutant sendException: au bloc catch de votre code de gestion des exceptions.

Dans l'exemple suivant, une application tente de charger une liste de scores élevés à partir du cloud. Si la demande expire, peut-être en raison d'une connexion réseau lente, nous envoyons l'exception à Google Analytics avant de la traiter pour l'utilisateur:

@try {
  NSArray *highScores = [self getHighScores];
}
@catch (NSException *exception) {
    [tracker sendException:NO // Boolean indicates non-fatal exception.
            withDescription:@"Connection timout %d: %@", connectionError, errorDescription];
}

Vous pouvez renseigner automatiquement le champ de description d'une exception avec le nom et la raison en utilisant sendException:withDescription:withNSException:, comme dans cet exemple:

@try {
  NSArray *highScores = [self getHighScores];
}
@catch (NSException *exception) {
  [tracker sendException:NO withNSException:exception);
}

Pour renseigner automatiquement une erreur avec le domaine, le code et la description de l'erreur, utilisez sendException:withDescription:withNSError: comme indiqué ci-dessous :

NSError *error = nil;
if (![self updateHighScoresWithError:&error]) {
  [tracker sendException:NO withNSError:error);
}

Mesure des exceptions non détectées

Les exceptions non détectées représentent les instances où votre application a rencontré des conditions inattendues au moment de l'exécution et sont souvent fatales, ce qui entraîne le plantage de l'application. Les exceptions non détectées peuvent être envoyées automatiquement à Google Analytics en définissant la propriété sendUncaughtExceptions sur YES. Pour ce faire, utilisez la méthode application:didFinishLaunchingWithOptions du délégué de votre application :

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [GAI sharedInstance].sendUncaughtExceptions = YES; // Enable 

  // ... the rest of your code, include other GAI properties you want to set.
}

Lorsque vous utilisez la mesure automatique des exceptions, tenez compte des points suivants:

  • Toutes les exceptions envoyées à l'aide de la mesure automatique des exceptions sont signalées comme fatales dans Google Analytics.
  • Le champ de description est renseigné automatiquement à l'aide de la trace de la pile.