2013-09-16 2 views
17

Я пытаюсь реализовать Google Analytics .. может вы, ребята, пожалуйста, помогите мнеGoogle Analytics в прошивке (не работает)

-(void) setGoogleAnalytics{ 

    // Initialize tracker. 
    self.tracker = [[GAI sharedInstance] trackerWithName:@"ipad app" 
               trackingId:kTrackingID]; 

    NSDictionary *appDefaults = @{kAllowTracking: @(YES)}; 

    [[NSUserDefaults standardUserDefaults] registerDefaults:appDefaults]; 
    // User must be able to opt out of tracking 

    [GAI sharedInstance].optOut = 
    ![[NSUserDefaults standardUserDefaults] boolForKey:kAllowTracking]; 

    // 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 = 5; 

    // Optional: set Logger to VERBOSE for debug information. 
    [[[GAI sharedInstance] logger] setLogLevel:kGAILogLevelVerbose]; 

    [[GAI sharedInstance] setTrackUncaughtExceptions:YES]; 
} 

и назвав его в

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ 
      [self setGoogleAnalytics]; 
    // 
    // 
    // 
} 

Inside My реализации ViewController

[self dispatchEvent:@"Purchase Done"]; 

[self trackViewName:NSStringFromClass([self class])]; 


-(void) trackViewName:(NSString *) strClassName{ 
     [[GAI sharedInstance] defaultTracker]; 
     self.screenName=[NSString stringWithFormat:@"%@",strClassName]; 
     [self.tracker send:[[NSDictionary alloc] initWithObjectsAndKeys:strClassName,@"ViewName", nil]]; 
     [[GAI sharedInstance] dispatch]; 

    } 

- (void)dispatchEvent:(NSString *)strButtonText{ 

    id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; 

    [tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"ui_action"  // Event category (required) 
                  action:@"button_press" // Event action (required) 
                  label:strButtonText   // Event label 
                  value:nil] build]]; // Event value = [[GAI sharedInstance] defaultTracker]; 

    [[GAI sharedInstance] dispatch]; 
} 

Какую версию Google Analytics я должен загрузить сейчас Скачав google GoogleAn alyticsServicesiOS_3.01.zip (рекомендуется), как я не хочу работать с бета-версией GoogleAnalyticsiOS_2.0beta4.zip

+0

Просто примечание: вы устанавливаете trackUncaughtExceptions 2 раза. – Ricardo

+0

Надеюсь, что у вас уже есть рабочая версия GA, но наверняка, и для других, я обновил свой ответ для v3. – incmiko

ответ

11

UPDATE - Google Analytics SDK для IOS v3

Так я использую v3, и нет никакой проблемы:

Я реализован в AppDelegate. В файле .h:

#import "GAI.h" 
@property (nonatomic,assign) id<GAITracker> tracker; // I'm not using ARC (assign) 

.m:

#import "GAIDictionaryBuilder.h" 
#import "GAIFields.h" 

// GOOGLE ANALYTICS 
[GAI sharedInstance].trackUncaughtExceptions = YES; 
[GAI sharedInstance].dispatchInterval = 0; 
tracker = [[GAI sharedInstance] trackerWithTrackingId:@"yourGAID"]; 

и написать метод, как это:

- (void) sendGoogleAnalyticsView:(NSString*)viewName{ 
    [tracker set:kGAIScreenName value:viewName]; 
    [tracker send:[[GAIDictionaryBuilder createAppView] build]]; 
    [[GAI sharedInstance] dispatch]; // this will force track your views. 
} 

Старый ответ:

Смотрите этот ответ ниже эта ссылка, если вы сделаете это так же, как я сказал в этом ответе, она должна работа

Another stack-overflow answered question about google-analytics

и использовать эти методы:

[GAI sharedInstance].optOut = YES; 
[GAI sharedInstance].dispatchInterval = 0; 
[GAI sharedInstance].trackUncaughtExceptions = YES; 
    tracker = [[GAI sharedInstance] trackerWithTrackingId:@"YOUR TRACKERID"]; 


[tracker sendView:@"Your View name"]; 

[tracker sendEventWithCategory:@"YOUR CATEGORY" withAction:@"YOUR ACTION" withLabel:nil withValue:nil]; 

Скачать GoogleAnalyticsiOS_2.0beta4.zip из this link это будет содержать те классы, что вам нужно, и он будет работать отлично. Будьте осторожны, аналитика google получила время, чтобы показать вам информацию о реальном времени. И не в режиме реального времени Данные будут отображаться только на следующий день после

EDIT для 3,0:

Я нашел некоторые, вероятно, полезные вещи для вас:

Мы только что пришли по этому вопросу, и это немного из от даты , так что вот обновленный ответ. Вопрос, который мы имели после выполнения инструкции на веб-сайте Google Analytics, они проинструктировать вас добавить следующие файлы GAI.h, GAIDictionaryBuilder.h, GAILogger.h, GAITrackedViewController.h, GAITracker.h и libGoogleAnalytics_debug.a библиотеки. То, что они полностью забывают до , включает в себя инструкции на сайте, где у вас есть , включая библиотеку libGoogleAnalyticsServices.a.Это включено в zipped download, но нет инструкций, указывающих на включение в отладочную версию.

Примечание: В readme.txt libGoogleAnalyticsServices.a просто называют как libGoogleAnalytics.a Google не смогли обновить свои документации включить новое имя или правильные инструкции, указать это требуется отладить.

Файлы и библиотеки, которые будут включены наиболее

GAI.h 
GAIDictionaryBuilder.h 
GAIFields.h 
GAILogger.h 
GAITrackedViewController.h 
GAITracker.h 
libGoogleAnalytics.a // Also know as libGoogleAnalyticsServices.a 
libGoogleAnalytics_debug.a 

enter image description here

плюс информация:

Я уверен, что Google до сих пор не предоставил версию arm64 из их libGoogleAnalyticsServices.a, что очень раздражает ... у него есть bee ks, так как публика выпустила Xcode 5GM.

На данный момент я полагаю, что только для armv7, armv7s или удаляю аналитику google , пока они не выпустят свою голову из своих штанов.

Вот iOS Getting Started Guide. для его реализации.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    // 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 = 0; 

    // Optional: set Logger to VERBOSE for debug information. 
    [[[GAI sharedInstance] logger] setLogLevel:kGAILogLevelVerbose]; 

    // Initialize tracker. 
    id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"UA-XXXX-Y"]; 

} 

Чтобы вручную отправить просмотр экрана, установите значения поля экрана на трекере, а затем отправить хит:

// May return nil if a tracker has not already been initialized with a 
// property ID. 
id tracker = [[GAI sharedInstance] defaultTracker]; 

// This screen name value will remain set on the tracker and sent with 
// hits until it is set to a new value or to nil. 
[tracker set:kGAIScreenName 
     value:@"Home Screen"]; 

[tracker send:[[GAIDictionaryBuilder createAppView] build]]; 

Или автоматическое измерение экрана:

Автоматическое измерение представления как экранов с использованием класса GAITrackedViewController. Пусть каждый из контроллеров вашего вида продолжит GAITrackedViewController и добавит свойство под названием screenName. Это свойство будет использоваться для установки поля имени экрана. Отслеживание

// 
// MyViewController.h 
// An example of using automatic screen tracking in a ViewController. 
// 
#import "GAITrackedViewController.h" 

// Extend the provided GAITrackedViewController for automatic screen 
// measurement. 
@interface AboutViewController : GAITrackedViewController 

@end 


// 
// MyViewController.m 
// 
#import "MyViewController.h" 
#import "AppDelegate.h" 

@implementation MyViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    // Set screen name. 
    self.screenName = @"Home Screen"; 
} 

// Rest of the ViewController implementation. 
@end 

Событие:

link

Чтобы отправить событие Google Analytics, используйте GAIDictionaryBuilder.createEventWithCategory: Действие: метки: значение: и отправить обращение, как в этом примере:

// May return nil if a tracker has not already been initialized with a property 
// ID. 
id<GAITracker> = [[GAI sharedInstance] defaultTracker]; 

[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"ui_action"  // Event category (required) 
                 action:@"button_press" // Event action (required) 
                 label:@"play"   // Event label 
                 value:nil] build]]; // Event value 
+0

Я пробовал эти вещи, но не повезло. Я хочу сказать вам, что я работаю с версией GoogleAnalyticsServicesiOS_3.0.zip, так как это рекомендуется google.It не имеет метода sendView. –

+1

Я отредактировал свой ответ – incmiko

+0

Я все еще хочу работать с версией 3.0, поскольку она находится в выпущенной фазе. Я не хочу работать с бета-версией для любого приложения, которое будет выпущено в магазин приложений за 1 неделю –

10

У меня была такая же проблема с 3.01. Моя проблема была в разделе администрирования Google Analytics.

У меня была настройка профиля для мобильных устройств (которая фактически была настроена так, как если бы это был сайт), который работал с версией 1.x. Однако, похоже, Google теперь внедряет «мобильные» профили. Я считаю, что SDK 3.x для мобильных устройств не может отслеживать профили «Web».

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

Примечание: не устанавливайте отправкуInterval на 0, как это было предложено другими, это также предотвратило отслеживание, установило его на 1. Это фиксировало все для меня.

+1

Спасибо, проработал и 3.03. Из документации Google: «Если вы хотите отслеживать как приложения, так и веб-сайты с помощью Google Analytics, вы должны использовать разные идентификаторы отслеживания и отдельные свойства. Данные отслеживания приложений могут отображаться только в определенных отчетах о представлении приложений, а данные веб-отслеживания могут отображаться только в указанной сети Альтернативные конфигурации не поддерживаются и приводят к поврежденным или неполным данным ». https://support.google.com/analytics/answer/2587087 – Gomfucius

0
#import <Foundation/Foundation.h> 
#import <UIKit/UIKit.h> 
@protocol GAITracker; 
@interface GAITrackedViewController : UIViewController { 
@private 
    id<GAITracker> tracker_; 
    NSString *trackedViewName_; 
} 
@property(nonatomic, assign)id<GAITracker> tracker; 
@property(nonatomic, copy)NSString *trackedViewName; 
@end 

Paste this code on "GAITrackedViewController.h" file 
Then you can use self.trackedName = @"Some Name"; easly. 
+0

Это сбой для меня. Я на GAI 3.0.6 –

1

В AppDElegate.m файла:

#import "AppDelegate.h" 
#import "GAI.h" 
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    [GAI sharedInstance].trackUncaughtExceptions = YES; 

    [GAI sharedInstance].dispatchInterval = 1; 

    [[[GAI sharedInstance] logger]setLogLevel:kGAILogLevelVerbose]; 

    id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"TrackingId"]; 

    [GAI sharedInstance].defaultTracker = tracker; 

    return YES; 
} 

В ViewController.h

#import <UIKit/UIKit.h> 
#import "GAITrackedViewController.h" 

@interface FirstViewController : GAITrackedViewController 


@end 

В ViewController.m

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.screenName = @"RED Screen"; 
} 

Попробуйте. Это сработало для меня просто отлично. Я попробовал более трех приложений. И все работают в реальном времени. Если ваша учетная запись для ваше приложение новое, то вы можете должны подождать на 24 часа или более, чтобы увидеть результат. Иногда требуется время для отображения данных в реальном времени без каких-либо причин.

Иногда это также не работает из-за старого Google Analytics sdk. Чтобы получить последнюю версию sdk, вы можете использовать программу для какао. Ниже приведена процедура:

platform :ios, '10.0' 
target “GoogleAnalyticsTestApp” do 
    pod 'GoogleAnalytics' 
end 

Запишите эти строки в свой файл pod в каталог проекта и сохраните его. затем установите pod. Для того, чтобы знать, как установить какао стручка увидеть ссылку:

Error importing Google Analytics iOS SDK using Cocoa Pods

Не пишите Google/Analytics. Напишите GoogleAnalytics. Надеюсь, что это решит проблему.

Смежные вопросы