跟踪应用事件而不计入Google Analytics中的活跃用户?

时间:2017-07-30 11:29:46

标签: ios google-analytics google-analytics-v4 google-analytics-sdk

移动应用使用Google Analytics iOS SDK跟踪活动。

Active User

它还跟踪在没有用户交互的情况下在后台启动应用程序时发生的系统事件。但是,似乎每个跟踪的事件都被视为Google Analytics实时信息中心中的07-30 16:51:12.511 23120-23120/com.example.pratyush.geofencing W/System.err: java.sql.SQLException: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/cloud/sql/mysql/SslSocketFactory; 。因此,它会破坏当前使用该应用程序的用户数量。

enter image description here

我可以做些什么,以便跟踪的系统事件不会影响活跃用户的数量?

2 个答案:

答案 0 :(得分:1)

我研究了同样的问题,我发现将事件设置为非交互式会影响会话持续时间和跳出率,但对计算活动用户或会话没有影响。此2014年的博客文章指出:https://www.lunametrics.com/blog/2014/05/06/noninteraction-events-google-analytics/

我建议的解决方案是每当应用程序进入后台时,将跟踪器userId设置为虚拟值,例如“backgroundUser”:

guard let tracker = GAI.sharedInstance().defaultTracker else { return }
tracker.set(kGAIUserId, value: "backgroundUser")

然后,只要应用程序返回到前台,请将userId设置回实际用户的userID。

这将导致所有前台用户启动的流量计入正确的用户,并且它将正确跟踪主动使用该应用的实际用户数。所有后台活动都将归功于单个虚拟用户。会话计数仍将包括所有会话,前景和背景。

答案 1 :(得分:0)

要使用iOS GA SDK向GA发送非互动事件,您可以这样做:

id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];

// Set non-interaction hit property
[tracker set: kGAINonInteraction
       value:@"1"];

// Send event
[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"Test"
                                                      action:@"Test"
                                                       label:@"Test"
                                                       value:nil] build]];

P.S。我对ObjectiveC不是很流利,所以上面的语法可能不完美,但它应该给你一些想法。