iPhone谷歌分析SDK委托和多个帐户问题
我在我的iPhone应用程序中实施谷歌分析SDK。我用它来处理以下代码:iPhone谷歌分析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");
}
在我的analytics帐户中,我得到了想要的结果。然后我决定(不要问我为什么)尝试将我的跟踪数据发送到第二个分析帐户。对于好奇的人:一个帐户用于网页和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账户和 如何使我的委托方法做它应该做的 - 让调度:)
由于提前, 卢卡后调用
我有同样的要求开始了准确能够将浏览量,事件等发布到两个不同的Google分析工具上抽动账户。但问题是,[GANTracker sharedTracker]是一个单例对象,并且您总是返回相同或单一的对象实例,因此您无法真正拥有sharedTracker的两个实例。
同样在你的情况下,如果你正试图查看回调方法是否被调用,它将不会被调用,因为你正在调用[[GANTracker sharedTracker] stopTracker],这将阻止分派事件发生。如果你注释掉该行,你的回调方法应该被调用。
如果您查看文档下的应用程序目录,则Google分析将所有数据存储在名为googleanalytics.sql的sqlite数据库中。您可以打开它并查看其中的表格。转到该目录并键入“sqlite3 googleanalytics.sql”,如果你知道sqlite命令,你可以导航表和东西。这些表格都没有提及账户ID,所以我的猜测是,除非你做了一些非常聪明的怪癖,否则你不能真正发布到两个不同的账户。