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.h
,GAIDictionaryBuilder.h
,GAILogger.h
,GAITrackedViewController.h
,GAITracker.h
和libGoogleAnalytics_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.