0

我使用的是 Google Analytics API v2,它运行良好。当用户打开我的应用程序时,它将显示在实时分析中,如果用户退出应用程序,该用户将不再显示在该报告中。这花了大约 20 或 30 秒。

但是使用 Google 在 Analytics API v3 上建议的新会话管理,用户在退出我的应用程序后需要将近 3 分钟才能从实时报告中消失。

这是我在启动我的应用程序时使用的代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
....
[GAI sharedInstance].trackUncaughtExceptions = NO;

// Optional: set Google Analytics dispatch interval to e.g. 20 seconds.
[GAI sharedInstance].dispatchInterval = 20;

// Initialize tracker.
id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"XX-YYYYYYYY-Z"];

[tracker set:kGAISessionControl value:@"start"];
}

这是结束分析会话的代码:

- (void)applicationWillResignActive:(UIApplication *)application
{
id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"XX-YYYYYYYY-Z"];

[tracker set:kGAISessionControl value:@"end"];
}

这段代码正确吗?我错过了什么吗?

4

2 回答 2

0

你错过了两件事:

1)您需要在每次会话控制调用之后生成一个“命中”(它们不会导致分析更新自身——“此跟踪器的下一个命中将是新会话中的第一个命中。”—— https: //developers.google.com/analytics/devguides/collection/ios/v3/sessions)。

2)您需要在发出第一个事件后将会话控制值重置为零。(“直接在跟踪器上设置会话控制会在所有后续命中中保留该值,直到手动将其设置为 null。” ——https://developers.google.com/analytics/devguides/collection/ios/v3/migration

注意:尽管https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#session声明“'start' 值强制新会话以该命中开始,而 'end' 强制当前会话以此命中结束。所有其他值都被忽略。”,对于 iOS SDK,情况似乎并非如此:使用“”值清除会话控制值似乎会破坏会话计时(即,产生正确的会话计数,但会话时间为 0:00)。

于 2014-03-24T17:20:02.380 回答
0

当然,谷歌分析有一点延迟,但我认为这并不烦人。您的代码是正确的,并且当我阅读时它工作正常。所以不用担心。有时真的很准时,有时会有点延迟。

我建议设置[GAI sharedInstance].dispatchInterval = 0;这将减少您的延迟。

于 2013-09-18T22:04:24.367 回答