Xcode: insert Google Analytics

jeudi 16 janvier 2014

Voici un lien vers la documentation google du sdk IOS

Ici, je vais décrire l’intégration de la version 3 de l’API.

Il faut tout d’abord télécharger le sdk et copier le dossier Library (avec les 6 fichiers .h) et le libGoogleAnalyticsServices.a dans votre projet.

Après cela, il faut importer les différents frameworks suivants:

  • AdSupport.framework
  • CoreData.framework
  • libz.dylib
  • SystemConfiguration.framework
  • libGoogleAnalyticsServices.a

// Dans le .h
#import "GAI.h"

@property (strong, nonatomic) id<GAITracker> tracker;

// Dans le .m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // GOOGLE ANALYTICS
    // Optional: automatically send uncaught exceptions to Google Analytics.
    [GAI sharedInstance].trackUncaughtExceptions = YES;
    
    // Optional: set Google Analytics dispatch interval to e.g. 20 seconds.
    [GAI sharedInstance].dispatchInterval = 20;
    
    // Optional: set Logger to VERBOSE for debug information.
    [[[GAI sharedInstance] logger] setLogLevel:kGAILogLevelVerbose];
    
    // Initialize tracker.
    self.tracker = [[GAI sharedInstance] trackerWithTrackingId:@"UA-XXXX-Y""];
}

Maintenant, que le tracking est en place, il est possible d’enregistrer les écrans par lequel l’utilisateur est passé (comme les pages vues d’un site web). Si vous souhaitez enregistrer plusieurs écrans, voici la méthode à faire dans chaque ViewController:

// Dans le .h de votre vue
#import "GAITrackedViewController.h"
@interface UCHMainViewController : GAITrackedViewController


// Dans le .m, remplacer le ViewController en GAITrackedViewController
- (void)viewDidAppear:(BOOL)animated {
    self.screenName = @"HOME SCREEN"; // set screenName prior to calling super
    [super viewDidAppear:animated];
}

Attention: il est très important que l’attribut screenName soit défini avant appeler l’affichage de la vue.

UCHAppDelegate *myApp = [[UIApplication sharedApplication] delegate];
[myApp.tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"CATEGORY"     // Event category (required)
                                                         action:@"BUTTON PRESS"  // Event action (required)
                                                          label:@"GO"          // Event label
                                                          value:nil] build]];    // Event value

Il est aussi possible de rapporter des exceptions/crash, des actions sociales, des transactions ecommerce, etc…

Tags: Google analytics