我已将最新的 Google Analytics(分析)SDK 添加到我的 iOS 应用程序(版本 2.0 beta 4)中。 我按照指南说的做了同样的事情,并将这段代码添加到应用程序委托(delegate)中:
// 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 debug to YES for extra debugging information.
[GAI sharedInstance].debug = YES;
// Create tracker instance.
self.tracker = [[GAI sharedInstance] trackerWithTrackingId:@"UA-TRACKINGID-2"];//UA-33873963-13 - My testing google analytics trackingId
[self.tracker setSessionStart:YES];
[self.tracker setSessionTimeout:60];
现在,在每个 View 中我都添加了这个:
self.trackedViewName = @"Main Menu Screen";
一切正常,但出于某种原因,20 个屏幕中有 3 个没有将自己发送到 Google,我也不知道为什么。我在网上搜索过,但没有人遇到过这个问题。我想,如果有人熟悉这个问题,那就是堆栈溢出。
请帮帮我。 谢谢!
最佳答案
我前段时间遇到了同样的问题。我敢打赌,您不会在覆盖中调用以下方法:
[super viewDidLoad]
在你的-(void)viewDidLoad
覆盖[super viewDidAppear:animated]
在你的-(void)viewDidAppear:(BOOL)animated
override[super viewDidUnload]
在你的-(void)viewDidUnload
覆盖- ...(处理您从
GAITrackedViewController
覆盖的所有其他方法
具体来说,您的方法应如下所示:
-(void)viewDidLoad
{
// call this at the beginning of the overridden methods
self.screenName = @"Some Name";
[super viewDidLoad];
// your remaining code here
}
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
// your remaining code here
}
最重要的方法是 viewDidLoad
和 viewDidAppear:
因为特别是对于实时跟踪,viewDidAppear:
显示该 View 当前可见。
编辑:自 Google Analytics SDK 3.0 版起,应在调用 super 的 viewDidLoad
方法之前设置 screenName 属性。
关于ios - Google Analytics 不会跟踪 iOS 上的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14953136/