我正在iPhone应用程序中实施google Analytics SDK。我让它使用以下代码:
AppDelegate .m :
[[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-xxxxxxx-1"
dispatchPeriod:10
delegate:nil];
if (![[GANTracker sharedTracker] trackPageview:string withError:&error]) {
NSLog(@"Error happened with google analytics tracking 2, %@", error);
}else {
NSLog(@"OK");
}
在我的分析帐户中,我获得了想要的结果。然后我决定(不要问我为什么)尝试将我的跟踪数据发送到第二个分析帐户。对于好奇的:一个帐户用于网页和iPhone应用程序统计,另一个帐户应该只用于iPhone。
我的巧妙计划是创建第一个sharedTracker,发送它,停止它并为第二个执行相同的操作:
AppDelegate .h:
@interface AppDelegate : NSObject <UIApplicationDelegate, GANTrackerDelegate>
//implementation
AppDelegate .m:
//1st tracking account
[[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-xxxxxxx-1"
dispatchPeriod:10
delegate:self];
if (![[GANTracker sharedTracker] trackPageview:string withError:&error]) {
NSLog(@"Error happened with google analytics tracking, %@", error);
}else {
NSLog(@"1. GAnalytics: OK");
}
[[GANTracker sharedTracker] stopTracker];
//2nd tracking account
[[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-zzzzzzzz-1"
dispatchPeriod:10
delegate:self];
if (![[GANTracker sharedTracker] trackPageview:string withError:&error]) {
NSLog(@"Error happened with google analytics tracking, %@", error);
}else {
NSLog(@"2. GAnalytics: OK");
}
[[GANTracker sharedTracker] stopTracker];
- (void)trackerDispatchDidComplete:(GANTracker *)tracker
eventsDispatched:(NSUInteger)eventsDispatched
eventsFailedDispatch:(NSUInteger)eventsFailedDispatch{
NSLog(@"For the love of Got, why don't you say something?");
}
我添加了委托方法,以便了解调度的内容,并找出SDK是否发出两个不同的请求,但似乎我无法调用我的委托方法! 删除第二个跟踪器的代码也无济于事 我也尝试将调度周期设置为0(并且手动调度调用为-1)但我没有运气...
所以,我的问题是: 如何实施2 gAnalytics帐户和 如何使我的委托方法做它应该做的事情 - 在调度后调用:)
提前致谢, 卢卡
答案 0 :(得分:2)
我开始时完全符合能够将网页浏览量,活动等发布到两个不同的Google Analytics帐户的相同要求。但问题是,[GANTracker sharedTracker]是一个单例对象,你总是得到对象的相同或单个实例,所以你不能真正拥有两个sharedTracker实例。
同样在你的情况下,你试图查看是否调用了回调方法,因为你正在调用[[GANTracker sharedTracker] stopTracker]而不会调用它,这将阻止发生事件的发送。如果您注释掉该行,则应调用您的回调方法。
如果查看Documents下的app目录,Google Analytics会将所有数据存储在名为googleanalytics.sql的sqlite数据库中。您可以打开它并查看其中的表格。转到该目录并键入“sqlite3 googleanalytics.sql”,如果您知道sqlite命令,则可以导航表格和内容。没有一个表有对帐户ID的引用,所以我的猜测是,除非你做了一些非常聪明的怪癖,否则你不能真正发布到两个不同的帐户。
答案 1 :(得分:0)
Google支持在iOS SDK v2
的同一个应用中使用多个跟踪帐户请参阅此SO问题和我的回答there。