0

私は Google アナリティクス API v2 を使用していましたが、うまく機能していました。ユーザーがアプリを開くと、リアルタイム分析に表示され、ユーザーがアプリを終了すると、そのユーザーはそのレポートに表示されなくなりました。20秒か30秒くらいかかりました。

しかし、Analytics API v3 で Google が提案した新しいセッション管理を使用すると、アプリを終了した後、ユーザーがリアルタイム レポートから消えるまでに約 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

あなたは2つのことを見逃しています:

1)各セッション制御呼び出しの後に 1 つの「ヒット」を生成する必要があります(それ自体では分析の更新は行われません -- 「このトラッカーからの次のヒットは、新しいセッションの最初のヒットになります。」 -- https: //developers.google.com/analytics/devguides/collection/ios/v3/sessions )。

2)最初のイベントを発行した後、セッション制御値を nilにリセットする必要があります。(「トラッカーで直接セッション制御を設定すると、手動で 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 に答える