【问题标题】:iPhone Google Analytics SDK delegate and multiple accounts problemiPhone Google Analytics SDK 委托和多个帐户问题
【发布时间】:2011-07-16 13:17:14
【问题描述】:

我正在我的 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 帐户和 如何让我的委托方法做它应该做的事情 - 在调度后被调用:)

提前致谢, 卢卡

【问题讨论】:

    标签: iphone google-analytics delegation


    【解决方案1】:

    我一开始的要求完全相同,即能够将浏览量、事件等发布到两个不同的 Google Analytics(分析)帐户。但问题是,[GANTracker sharedTracker] 是一个单例对象,你总是得到相同或单一的对象实例,所以你不能真正拥有两个 sharedTracker 实例。

    同样,在您尝试查看是否调用回调方法的情况下,它不会被调用,因为您正在调用 [[GANTracker sharedTracker] stopTracker],这将阻止事件的调度发生。如果你注释掉那行,你的回调方法应该被调用。

    如果您查看 Documents 下的 app 目录,Google Analytics 会将所有数据存储在名为 googleanalytics.sql 的 sqlite 数据库中。您可以打开它并查看其中的表格。转到该目录并键入“sqlite3 googleanalytics.sql”,如果您知道 sqlite 命令,则可以浏览表格和内容。这些表都没有对帐户 ID 的引用,所以我的猜测是,除非你做一些非常聪明的怪癖,否则你不能真正发布到两个不同的帐户。

    【讨论】:

      【解决方案2】:

      Google 在其iOS SDK v2 中支持在同一应用程序中使用多个跟踪帐户

      查看这个 SO 问题和我的回答 there

      【讨论】:

        猜你喜欢
        • 2013-12-15
        • 1970-01-01
        • 2023-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多