6

在尝试实现适用于 iOS 的 Google Analytics SDK 时,我遇到了两堵砖墙。

第一个是在执行此代码后application:DidFinishLaunchingWithOptions:

[[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-XXXXXXX-YY"
                                       dispatchPeriod:10
                                             delegate:self];
[[GANTracker sharedTracker] setDebug:YES];

..然后尝试跟踪任何内容或调用dispatch,不会记录任何调试消息。我NSLog在跟踪呼叫之前和之后添加了行,并且肯定可以达到代码。

其次,当我尝试进行手动调度时,它会返回NO. 我在网上看到的所有其他问题都是dispatch退货的地方,YES但不知何故无法正常处理。如果dispatch真的返回怎么办NO

我尝试添加NSError *对跟踪方法的引用,这些方法实际上成功了(没有错误,函数返回YES)。但是这些事件肯定不会定期发送,因为超过 24 小时后我们在 GA 帐户上没有看到任何内容。

编辑:NSLog在两个委托方法(hitDispatched:trackerDispatchDidComplete:eventsDispatched:eventsFailedDispatch:)中也有调用,而且它们都没有被调用。

4

6 回答 6

1

i think you should check this to delegate method of GANTracker

- (void)trackerDispatchDidComplete:(GANTracker *)tracker
              eventsDispatched:(NSUInteger)hitsDispatched
          eventsFailedDispatch:(NSUInteger)hitsFailedDispatch{

//print or check number of events failed or success

}
于 2012-05-22T11:38:11.700 回答
0

咳嗽

我拼错了#define在我的应用程序委托中启动跟踪器对象。其他文件拼写正确,因此出现了记录语句,但是当我在跟踪器启动之前尝试记录时,它没有显示。

哎呀。好吧,至少现在在 SO 上有一个不错的 Google Analytics 故障排除帖子!

于 2012-05-29T03:49:22.613 回答
0

调度可能依赖于调用线程的运行循环 - 您是否有可能从辅助线程运行它,在调度假设给您回电时可能不存在的辅助线程?

于 2012-05-28T21:52:25.270 回答
0
//Delegate is set to 'nil' instead of class instance which implements the delegate methods.    
[[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-XXXXXXX-YY"
                                   dispatchPeriod:10
                                         delegate:nil];

在您的情况下,假设 UIApplicationDelegate 可能正在实现GANTrackerDelegate,则消息调用应将委托设置为'self'

干杯!!
阿马尔。

于 2012-05-28T06:23:53.370 回答
0

你还没有启用dryRun吗?仔细检查:

[[GANTracker sharedTracker] setDryRun:NO];

还可以尝试 dispatchSynchronous,它会在发送时阻塞,但如果事情不在同一个线程上,可能会有所帮助:

[[GANTracker sharedTracker] dispatchSynchronous];
于 2012-05-28T23:55:15.660 回答
0

刚刚从头开始检查,派送完美工作的意思

a)您的设备在某种程度上有所不同(我仍然在特定的 iPad 3 上从 Apple 测试人员的未解决崩溃中得到解决,所以这不会是一个巨大的惊喜)

b)您的代码在某种程度上有所不同 - 这对您来说更容易修复。


对于 a) 没有建议,只能针对您可能获得的所有设备进行测试,对于 b) 我只能说什么对我有用:

  • 在此处下载 1.4 SDK
  • 得到了谷歌示例项目 git clone https://code.google.com/p/google-mobile-dev.analytics-end-to-end/
  • 配置 final/AnalyticsSample 启动,稍微改变了源

(trackEvent::::: 从示例中调用,应用程序手动重新启动,因为需要调度调用的时间段为零)

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [[GANTracker sharedTracker] startTrackerWithAccountID:kGANAccountId
                                         dispatchPeriod:0
                                               delegate:self];

    NSLog(@"Dispatch%@", [[GANTracker sharedTracker] dispatch] ? @"ed Successfully": @" Failed");

  [self.window addSubview:tabBarController.view];
  [self.window makeKeyAndVisible];

  return YES;
}

就是这样,日志说Dispatched Successfully,我想值得一试。

于 2012-05-29T01:20:40.553 回答