iPhone Google Analytics SDK 委托(delegate)和多帐户问题

标签 iphone google-analytics delegation

我正在我的 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。

我巧妙的计划是创建第一个共享跟踪器,调度它,停止它,并对第二个共享跟踪器执行相同的操作:

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?");
}

我添加了委托(delegate)方法,以便了解正在分派(dispatch)的内容,并查明 SDK 是否发出两个不同的请求,但似乎我无法调用我的委托(delegate)方法! 删除第二个跟踪器的代码也没有帮助 我还尝试将调度周期设置为 0(以及手动调度调用的 -1),但我也没有运气......

所以,我的问题是: 如何实现 2 个 gAnalytics 帐户以及 如何让我的委托(delegate)方法做它应该做的事情 - 在调度后被调用:)

提前致谢, 卢卡

最佳答案

我一开始就提出了同样的要求,即能够将综合浏览量、事件等发布到两个不同的 Google Analytics 帐户上。但问题是,[GANTracker sharedTracker] 是一个单例对象,你总是得到该对象的相同或单个实例,因此你不能真正拥有两个 shareTracker 实例。

此外,在您的情况下,您试图查看回调方法是否被调用,它不会被调用,因为您正在调用 [[GANTracker sharedTracker] stopTracker],这将阻止事件的分派(dispatch)发生。如果您注释掉该行,则应该调用您的回调方法。

如果您查看“文档”下的应用程序目录,您会发现 Google Analytics 将所有数据存储在名为 googleanalytics.sql 的 sqlite 数据库中。您可以打开它并查看其中的表格。转到该目录并输入“sqlite3 googleanalytics.sql”,如果您知道 sqlite 命令,则可以导航表和内容。这些表都没有引用帐户 ID,所以我的猜测是,除非您做了一些非常聪明的怪事,否则您无法真正发布到两个不同的帐户。

关于iPhone Google Analytics SDK 委托(delegate)和多帐户问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5325064/

相关文章:

iphone - tabBar应用程序中下载多首歌曲的问题

iphone - 为 iOS 应用创建您自己的 UTI

javascript - 通过分析进行点击跟踪

google-analytics - Google Analytics沙箱

python - 在 Python : delegating __contains__ to contained-object correctly 中模拟成员资格测试

iphone - 如何隐藏键盘 iPhone 应用程序

iphone - 显示 Plist 到 UITableview

python - 谷歌分析在报告API中获取用户ID

Kerberos,委托(delegate)以及如何正确执行此操作?

objective-c - NSURLSession 委托(delegate) : How to implement my custom SessionDelegate class accordingly?