2

我需要将 Flurry 与 Android 集成,并想知道用户将在主屏幕停留多长时间(以分钟为单位)。是否有可能使用 Flurry 获得这样的分析?当我检查 Flurry 时,它给了我特定屏幕上命中计数的统计数据。我想知道的是用户在主屏幕上花费的平均时间。请在这方面提供帮助。

4

3 回答 3

5

这可以通过定时事件来完成。只需调用以下方法之一即可启动定时事件。在您的场景中,这应该在主屏幕的 onStart 方法中完成。

  • logEvent(字符串 eventId,布尔定时)
  • logEvent(String eventId, Map 参数, boolean timed)

结束您的定时事件通话

  • endTimedEvent(字符串 eventId)

在您的场景中,这将在主屏幕的 onStop 方法中调用。确保为布尔定时参数传入 true,并且始终匹配每个 Activity 的 onStart 和 onStop 中的 eventIds。

Flurry 将自动在您的开发门户帐户中的 Applications > Events > Your Event Id 下报告以下指标。选择事件持续时间链接或图标(时钟):

平均事件持续时间 - 这报告总事件时间除以某个时间段内的事件数。例如,假设您在某个时间段内有 2 个用户使用您的应用。用户 A 查看您的主屏幕 10 秒,然后转到辅助屏幕并返回您的主屏幕查看 3 秒。用户 B 查看您的主屏幕 20 秒。这被报告为 (10+3+20)/3 = 11 秒。

每个会话的事件持续时间 - 这报告每个会话的事件的平均时间长度。会话被定义为用户在您的应用程序的任何视图中不中断超过 10 秒(10 秒是默认暂停时间,可以更新)。例如,您的用户查看主屏幕 15 秒,然后转到辅助屏幕,然后返回主屏幕 5 秒。该用例的事件持续时间为会话的 20 秒。然后将其与同一时间段内的其他会话进行平均。

每个用户的事件持续时间 - 这报告每个用户的事件的平均时间长度。用户可以在给定时间段内多次使用您的应用。例如,假设用户在一天内查看了您的应用 3 次(3 个会话)。在第一个会话中,您的用户查看主页 5 秒,第二个会话 10 秒,第三个会话 15 秒。此用户的事件持续时间为一天 30 秒。然后在同一时间段内对所有其他用户进行平均。

于 2011-04-14T17:39:33.473 回答
0

我给你看一个简单的例子。在这段代码中,我想用一个类别记录简单事件和其他事件。

public void logAnalyticsEvent(final String versionName, final String strMsg, final String category){

        if (category==null){                
            FlurryAgent.logEvent(strMsg);           

        }else{              
            final HashMap<String, String> parameters = new HashMap<String, String>();
            parameters.put("Event",strMsg );
            FlurryAgent.logEvent(category, parameters);
        }


}

在条件的第一部分中,我记录了唯一的事件,在第二部分中,我将事件的名称放在 de 参数中(一个带有名为“Event”的键的哈希图并为事件的名称赋值),然后我用参数记录类别的名称(里面的事件)

FlurryAgent.logEvent(category, parameters);

希望这可以帮助!

于 2011-10-25T20:38:30.127 回答
-1

我不确定 Flurry,但您绝对可以使用带有 Localytics (www.localytics.com) 的事件属性来做到这一点。只需跟踪用户在主屏幕上花费的时间(或您的应用程序中的任何活动),然后将其记录为在该活动结束时触发的事件的分桶事件属性。

伪代码示例:

ActivityStart() {
  long startTime = getTimeInMilliseconds();
}

ActivityClosing() {
  long endTime = getTimeInMilliseconds();
}

ApplicationExitPath() {
  long timeSpent = endTime - startTime;
  String timeBucket = bucketizeTime(timeSpent);
  Dictionary attributes = [ "Main Activity Time Spent", timeBucket];
  tagEvent("App Exit", attributes);
}

String bcketizeTime(Long timeSpent) {
  if(timeSpent < 1000) { return "less than 1 second"; }
  if(timeSpent < 10000) { return "1 - 10 seconds"; }
  if(timeSpent < 30000) { return "10 - 30 seconds"; }
  ...
}
于 2011-04-11T14:22:31.317 回答