Yos*_*far 6 google-analytics objective-c ios
我已将最新的Google AnalyticsSDK添加到我的iOS应用程序(版本2.0 beta 4)中.我做了与导游说的相同,并将此代码添加到app 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];
Run Code Online (Sandbox Code Playgroud)
现在,在每个视图中我都添加了这个:
self.trackedViewName = @"Main Menu Screen";
Run Code Online (Sandbox Code Playgroud)
一切正常,但由于某种原因,20个屏幕中的3个没有发送给谷歌,我不知道为什么.我在网上搜索过,但没有人遇到过这个问题.我想如果有人熟悉这个问题,那就是堆栈溢出.
请帮我.谢谢!
who*_*9vy 19
前段时间我遇到了同样的问题.我打赌你没有在你的覆盖中调用以下方法:
[super viewDidLoad]
在你的-(void)viewDidLoad
覆盖中[super viewDidAppear:animated]
在你的-(void)viewDidAppear:(BOOL)animated
覆盖中[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
}
Run Code Online (Sandbox Code Playgroud)
最重要的方法是viewDidLoad
,viewDidAppear:
特别是对于实时跟踪viewDidAppear:
此视图当前可见的节目.
编辑:从Google Analytics SDK 3.0版开始,应在调用viewDidLoad
super方法之前设置screenName属性.
Sea*_*ean 15
我使用的是3.02版,遇到了同样的问题.以下解决了我的问题:
-(void) viewDidAppear:(BOOL)animated {
self.screenName = @"My Screen"; // set screenName prior to calling super
[super viewDidAppear:animated];
...
}
Run Code Online (Sandbox Code Playgroud)
你肯定想打电话,super
因为它会触发发送ga数据.在我看来,screenName
需要在它之前设定.
问题已经用最简单的方法解决了。
我写的代码是针对AppDelegate
. 使用跟踪 ID 初始化跟踪器一次后,您只需在使用它的每个视图中调用它即可。(我对此不确定,但无论如何它对我有用。)
所以,在AppDelegate
:
// 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];
Run Code Online (Sandbox Code Playgroud)
在视图控制器内部viewDidLoad
:
[GAI sharedInstance] defaultTracker];
[self.tracker sendView:@"Some name"];
Run Code Online (Sandbox Code Playgroud)
这样做之后,效果非常完美。
归档时间: |
|
查看次数: |
11732 次 |
最近记录: |