繁体   English   中英

v3 SDK更新后,Google Analytics(分析)减少了会话跟踪

[英]Google Analytics Reduced Session Tracking after v3 SDK update

我在应用程序中使用Google Analytics(分析)来跟踪事件和会话

较早的分析版本为v2.x,现在我将其版本更新为v3,我可以看到会话跟踪方面存在重大差异。

我研究并找到了从v2.x到v3的迁移文档链接:

迁移文档指出该会话是在v2.x中自动创建的,但是我们必须在v3中手动创建它。 我尝试使用代码在应用启动时手动创建会话,但是会话跟踪仍然存在很大差异。

static NSString const *kGaPropertyId = @"UA-XXXX-Y";
    id tracker = [[GAI sharedInstance] trackerWithTrackingId:kGaPropertyId];

    [tracker send:[[[GAIDictionaryBuilder createEventWithCategory:@"UX"
                                                           action:@"appstart"
                                                            label:nil
                                                            value:nil] set:@"start" forKey:kGAISessionControl] build]];

任何人都不知道在v3出现之前是否可以通过管理员设置更改会话超时的功能?

或任何我能解决的原因或背后的原因???

我发现自己的平均会话时间为8分钟后就开始解决此问题,在那里我有一个播放电影的应用程序,并且您期望平均会话时间更长。

我完成了以下实现:

[[NSNotificationCenter defaultCenter] addObserver:[GATracking class] selector:@selector(startTrackingSession) name:UIApplicationDidBecomeActiveNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:[GATracking class] selector:@selector(endTrackingSession) name:UIApplicationWillResignActiveNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:[GATracking class] selector:@selector(endTrackingSession) name:UIApplicationWillTerminateNotification object:nil];

这些观察员处理会话的开始和结束。 会话将在应用程序处于活动状态时开始,并在应用程序进入后台或被终止时停止。

这是开始和结束跟踪会话的代码。 结束是在后台任务中进行的,以确保结束呼叫在进入非活动状态之前被调度到Google Analytics(分析)。 否则,它将是下次启动的时间表。

+ (void)startTrackingSession
{

    [GAI sharedInstance].dispatchInterval = 20;

    // Initialize tracker.
    id tracker = [[GAI sharedInstance] defaultTracker];

    [tracker send:[[[GAIDictionaryBuilder createEventWithCategory:@"application_events"
                                                           action:@"application_session_start"
                                                            label:nil
                                                            value:nil] set:@"start" forKey:kGAISessionControl] build]];

    // Set this after the session start has been sent. Only needs to be set once but you must    be sure that two starts are not sent in a row or you will end up with 0:00:00 sessions.
    [tracker set:kGAISessionControl
           value:nil];

    [[GAI sharedInstance] dispatch];
}

+ (void)endTrackingSession
{
    id tracker = [[GAI sharedInstance] defaultTracker];

    // Call when the session ends.
    [tracker send:[[[GAIDictionaryBuilder createEventWithCategory:@"application_events"
                                                           action:@"application_session_end"
                                                            label:nil
                                                            value:nil] set:@"end" forKey:kGAISessionControl] build]];

    [tracker set:kGAISessionControl
           value:nil];

    [self dispatchUsingBackgroundTask];
}

+ (void)dispatchUsingBackgroundTask
{
    // As the end tracking session gets called when entering background, run it in a background task to make sure it gets dispatched
    UIApplication *app = [UIApplication sharedApplication];
    __block UIBackgroundTaskIdentifier bgTask;

    bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
        [app endBackgroundTask:bgTask];
        bgTask = UIBackgroundTaskInvalid;
    }];

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        [[GAI sharedInstance] dispatch];

        double dispatchTimeout = 10.0;  // 10 seconds timeout
        dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(dispatchTimeout * NSEC_PER_SEC));
        dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
            [app endBackgroundTask:bgTask];
            bgTask = UIBackgroundTaskInvalid;
        });
    });
}

重要部分,如果您仍然看到最多30分钟的跟踪会话,请在媒体资源的管理部分中更改此设置: 将会话超时属性更改为最多4小时,以确保会话长度可以增加到30分钟

如果您没有看到此设置,则可能不是在使用Universal Analytics。 要确定您是否这样做,请查看以下链接: https : //support.google.com/analytics/answer/3450662?hl=zh_CN

有一个非常相同的问题。 最后在Google Analytics(分析)上创建了新的应用程序属性。 有了新的属性,一切都会像以前一样工作。 祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM