iOS中的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 eg 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]; // // // } 

在我的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]; } 

哪个版本的谷歌分析,我应该下载目前我已经下载谷歌GoogleAnalyticsServicesiOS_3.01.zip(推荐),因为我不想与testing版GoogleAnalyticsiOS_2.0beta4.zip

更新 – 适用于iOS v3的Google Analytics(分析)SDK

所以我使用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. } 

老答案:

看到这个链接下面的这个答案,如果你这样做,就像我在这个答案中所说的一样,它必须工作

另一个堆栈溢出回答有关谷歌分析的问题

并使用这些方法:

 [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这将包含你需要的那些类,它将完美的工作。 要小心,谷歌分析得到了一个领先的时间,向您展示关于实时的信息。 而不是实时数据将只显示一天后

编辑为3.0:

我发现了一些可能对你有用的东西:

我们刚刚遇到这个问题,这是略有过时,所以这里是一个更新的答案。 在遵循Google Analytics网站上的说明之后,我们遇到了这个问题,他们指示您添加以下文件GAI.hGAIDictionaryBuilder.hGAILogger.hGAITrackedViewController.hGAITracker.hlibGoogleAnalytics_debug.a库。 他们完全忘记包含在网站上的说明是必须包含libGoogleAnalyticsServices.a库的。 这包括在压缩的下载中,但没有说明将其包含在debugging版本中。

注意:在readme.txt中, libGoogleAnalyticsServices.a被简称为libGoogleAnalytics.a未能更新其文档以包含新名称或指示debugging中需要的正确说明。

文件和图书馆最包括

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

在这里输入图像说明

加上信息:

我很确定谷歌还没有提供他们的libGoogleAnalyticsServices.a的arm64版本,这真的很烦人…自公开发行Xcode 5GM以来已有数周的时间。

就目前而言,我估计只能build立armv7,armv7s或者删除谷歌分析,直到他们把头伸出裤子。

这是一个iOS入门指南。 为了实施它。

 - (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 eg 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 

事件追踪:

链接

要向Google Analytics发送活动,请使用GAIDictionaryBuilder.createEventWithCategory:action:label:value:并发送命中,如下例所示:

 // 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 

我有与3.01相同的问题。 我的问题实际上是在Google Analyticspipe理部分。

我有一个configuration文件设置为移动(实际上设置,如果它是一个网站)与版本1.x工作。 不过,Google现在似乎也已经实施了“移动”configuration文件。 我相信3.x移动SDK不能跟踪到“Web”configuration文件。

按照这里的说明创build一个新的configuration文件。 然后使用新的跟踪ID,它应该开始跟踪。

注意:不要像以前其他人所说的那样将dispatchInterval设置为0,这也阻止了跟踪,将其设置为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,你可以使用cocoa豆荚。 这里是程序:

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

将这些行写在您的项目目录中的pod文件中并保存。 然后安装pod。 要知道如何安装cocoa豆荚请参阅链接:

使用Cocoa Pod导入Google Analytics iOS SDK时出错

不要写谷歌/分析。 写GoogleAnalytics。 希望它能解决问题。

 #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.