Внедрение Google Analytics для iOS - PullRequest
3 голосов
/ 21 марта 2012

Как кто-то, имеющий опыт работы с Flurry Analytics, может ли кто-нибудь объяснить правильное местоположение для реализации отслеживания событий и пользовательских переменных в Google Analytics для iOS?Пример, который предоставляет Google, помещает все в AppDelegate.Не уверен, что они сделали это ради краткости или нет.Я могу понять, почему вызов инициализации происходит в AppDelegate:

//AppDelegate.m
- (void)applicationDidFinishLaunching:(UIApplication *)application {

   [[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-0000000-1"
                                    dispatchPeriod:kGANDispatchPeriodSec
                                          delegate:nil];

   //...

}

Но как насчет этих вызовов, которые собирают конкретные данные, относящиеся к конкретному представлению?Могут ли они войти в свои соответствующие ViewControllers вместо AppDelegate?

[[GANTracker sharedTracker] setCustomVariableAtIndex:1
                                                   name:@"iPhone1"
                                                  value:@"iv1"
                                              withError:&error]

[[GANTracker sharedTracker] trackEvent:@"my_category"
                                   action:@"my_action"
                                    label:@"my_label"
                                    value:-1
                               withError:&error]

[[GANTracker sharedTracker] trackPageview:@"/app_entry_point"
                               withError:&error]

Вопросы

1) Какие показанные выше вызовы Google Analytics для iOS должны быть в AppDelegate?2) Какие вызовы Google Analytics для iOS, показанные выше, можно поместить в контроллеры ViewControllers?

Спасибо

1 Ответ

3 голосов
/ 21 марта 2012

Вы положили первую часть в AppDelegate, это верно.

В viewDidLoad метод каждого представления viewController:

NSError *error;

 if (![[GANTracker sharedTracker] trackPageview:@"/app_entry_point"    
 withError:&error]) {    
 // Handle error here    
 }

где @ "/ app_entry_point" должно быть именем ViewController, например: "/mainWindow".

Следующий фрагмент кода, используемый для отслеживания ваших методов, используемых внутри методов.

     NSError *error;
     if (![[GANTracker sharedTracker] trackEvent:@"my_category"        
     action:@"my_action"        
     label:@"my_label"        
     value:-1        
     withError:&error]) {        
     // Handle error here        
     }
...