2

我正在尝试为 iOS 创建一个可以使用 Google Analytics 的示例应用程序。我在 Google Analytics 上创建了一个免费帐户,获得了 Tracking ID 并在 Google 的示例“BasicExample”中使用了它(仅用于测试目的)。

我运行了应用程序(在模拟器和设备中)并且没有错误,但是,我的 Google Analytics 帐户没有注册任何活动(即使在两天之后),所以我尝试打开调试并实现 GANTrackerDelegate 方法。

调度跟踪器时,不会调用委托方法,控制台中会记录或多或少类似的内容:

2012-08-17 09:25:53.835 BasicExample[402:707] dispatch called
2012-08-17 09:25:53.839 BasicExample[402:707] dispatching 5 hits
2012-08-17 09:25:53.853 BasicExample[402:707] GET /__utm.gif?utmwv=4.8mi&utmn=20613118&utmcs=UTF-8&utmsr=320x480&utmsc=24-bit&utmul=pt-br&utmp=%2FSUPAPAGE&utmac=UA-34104824-1&utmcc=__utma%3D1.1516748783.1345205912.1345205912.1345205912.1%3B&utmht=1345205912658&utmqt=441194 HTTP/1.1

Host: www.google-analytics.com

User-Agent: GoogleAnalytics/1.4 (iPod touch; U; CPU iPhone OS 5.0.1 like Mac OS X; pt-br)

在此之后,每次再次调度跟踪器时,都会在控制台中记录消息“...调度程序很忙”。而且我的 Google Analytics(分析)帐户没有更新。

这是我的 AppDelegate 代码:

- (void)applicationDidFinishLaunching:(UIApplication *)application {
    [[GANTracker sharedTracker] setDebug:YES];
    [[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-XXXXXXXX-1" dispatchPeriod:5 delegate:self];

    NSError* error = nil;

    if (![[GANTracker sharedTracker] trackPageview:@"/app_entry_point" withError:&error]) {
        NSLog(@"error in trackPageview");
    }

    [window_ makeKeyAndVisible];
}

- (void)dealloc {
    [[GANTracker sharedTracker] stopTracker];
    [window_ release];
    [super dealloc];
}

- (void)hitDispatched:(NSString *)hitString
{
    NSLog(@"foo");
}

- (void)trackerDispatchDidComplete:(GANTracker *)tracker eventsDispatched:(NSUInteger)hitsDispatched eventsFailedDispatch:(NSUInteger)hitsFailedDispatch
{
    NSLog(@"bar");
}

我的本地网络上有一个代理。

有人知道为什么委托方法永远不会被调用并且那件事会记录在控制台中吗?

4

1 回答 1

0

当您在跟踪某些内容后调用 dispatch 方法时它是否有效?你可以这样做:

[[GANTracker sharedTracker] dispatch]; // Manual dispatch

仅当您没有在很短的时间间隔内拨打 2 次电话时,此方法才有用。否则它将不再调度(“...调度员很忙”问题)。

如果你想清除命中堆栈(如果你想让谷歌分析再次工作,你必须这样做),你必须从模拟器中删除应用程序

于 2012-08-21T12:14:59.303 回答