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,所以我的猜测是,除非你做了一些非常聪明的怪癖,否则你不能真正发布到两个不同的账户。

谷歌已经在同一个应用程序使用多个账户的跟踪,在其iOS SDK v2

参见这太问题我的回答there支持。