我已将 Google 分析集成到我的应用程序中。它适用于少数屏幕,但不适用于少数其他屏幕(即 View Controller )。
我总共有 45 个屏幕,但 GAI 仅适用于 19 个屏幕。 我已按照 this documentation 中的步骤进行操作.
我在所有 View Controller 中进行了如下更改,
@interface Myviewcontroller : GAITrackedViewController
并在 .h 和 .m 文件中导入 GAITrackedViewController
#import "GAITrackedViewController.h"
它在某些屏幕上工作正常,但在其他一些屏幕上却不行。我正在使用 self.screenName = @"Home screen";
发送屏幕名称。
NSLogger对于成功集成的viewcontrollers如下,
VERBOSE: GoogleAnalytics 3.01 -[GAIBatchingDispatcher persist:] (GAIBatchingDispatcher.m:414): Saved hit: {
parameters = {
"&_u" = ".etno";
"&_v" = "mi3.0.1";
"&an" = My Project;
"&av" = "1.0";
"&cd" = "Home Screen";
"&cid" = "XXXXXXXXXXXXXXXXXXXXXXX";
"&sr" = 320x480;
"&t" = appview;
"&tid" = "UA-XXXXXXX-2";
"&ul" = en;
"&v" = 1;
"&z" = XXXXXXXXXXXXX;
gaiVersion = "3.01";
};
timestamp = "2014-04-28 09:44:17 +0000";
}
但是没有针对不成功尝试的日志记录,一段时间后我可以看到一些类似的日志记录,
INFO: GoogleAnalytics 3.01 -[GAIReachabilityChecker reachabilityFlagsChanged:] (GAIReachabilityChecker.m:159): Reachability flags update: 0X000007
INFO: GoogleAnalytics 3.01 -[GAIReachabilityChecker reachabilityFlagsChanged:] (GAIReachabilityChecker.m:159): Reachability flags update: 0X000002
INFO: GoogleAnalytics 3.01 -[GAIReachabilityChecker reachabilityFlagsChanged:] (GAIReachabilityChecker.m:159): Reachability flags update: 00000000
我检查了所有的 View Controller ,在这些屏幕之间集成 Google-Analytics 时代码没有区别。
我错过了什么?任何建议将不胜感激。
最佳答案
你在哪里添加 self.screenName = @"Home screen";
?
我以前发送页面浏览事件而不是使用自动跟踪:
//Init once
[GAI sharedInstance].dispatchInterval = 30;
[GAI sharedInstance].trackUncaughtExceptions = NO;
self.tracker = [[GAI sharedInstance] trackerWithTrackingId:gai_id];
并且在一个通用的 UIViewController 类中(然后您可以在任何想跟踪页面的时候继承自该类):
在.h中定义一个属性screenName
@property(nonatomic, copy) NSString *screenName;
在 .m 中使用它
-(void)viewDidAppear:(BOOL)动画{ //谷歌跟踪 [super viewDidAppear:animated];
@try { [tracker set:kGAIScreenName value:screenName]; [tracker send:[[GAIDictionaryBuilder createAppView] build]]; } @catch (NSException *exception) { NSLog(@"[ERROR] in Automatic screen tracking: %@", exception.description); }
记得在inheritViewControllers里设置
-(void)viewDidAppear:(BOOL)animated { self.screenName = @"my page name"; [super viewDidAppear:animated]; }
希望这对您有所帮助。
关于ios - 谷歌 ios 分析不适用于少数屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23338008/