26

我想在我的应用程序中添加一些分析功能,所以我在 Flurry 上创建了一个帐户,并将他们的 SDK 添加到我的项目中。然后我记录了一些事件、正常事件和定时事件。

直到这里没有什么特别的 :) 但即使在 2 天后,我也无法在 Flurry 的仪表板中看到任何这些事件。我可以看到会话数,所以我猜我的应用程序实际上正在发送一些东西。但没有事件。

任何想法?我没有对代码做任何奇怪的事情,我用我的 ID 注册(根据我之前所说的正确)

[FlurryAnalytics startSession:flurryKey];

并使用以下方式记录事件:

[FlurryAnalytics logEvent:@"MyEvent"];
4

5 回答 5

29

除了设置之外,了解 Flurry 如何记录事件也很重要。感谢一些评论,我在调试模式下运行了一些测试。您可以通过以下方式打开它:

[Flurry setDebugLogEnabled:YES];

当我的应用程序启动时,它会设置用户 ID 和一些 pageView 日志记录。这是日志输出:

    2013-05-27 12:19:00.636 MyApp[8492:907] Flurry: Starting session on Agent Version [115] 
    2013-05-27 12:19:00.659 MyApp[8492:907] Flurry: setUserID[<cut>]
    2013-05-27 12:19:00.684 MyApp[8492:120b] FlurrySession: Add session with startTime[2013-05-27 15:46:22 +0000] to saved sessions
    2013-05-27 12:19:00.704 MyApp[8492:120b] FlurrySession: Add crashed former session
    2013-05-27 12:19:00.713 MyApp[8492:120b] FlurrySession: Event logging enabled[1]
    2013-05-27 12:19:00.714 MyApp[8492:120b] FlurrySession: Session reports on close enabled[1]
    2013-05-27 12:19:00.715 MyApp[8492:120b] FlurrySession: Session reports on pause enabled[0]
    2013-05-27 12:19:00.716 MyApp[8492:120b] FlurrySession: Crash reporting enabled[0]
    2013-05-27 12:19:00.717 MyApp[8492:120b] FlurrySession: set pushToken [(null)], _pushToken = [(null)]
    2013-05-27 12:19:00.719 MyApp[8492:907] FlurryPageViewDelegate: delegate[(null)] created
    2013-05-27 12:19:00.720 MyApp[8492:907] FlurryPageViewDelegate: delegate[(null)] created
    2013-05-27 12:19:00.736 MyApp[8492:120b] FlurrySession: Initialized session from scratch with startTime[2013-05-27 16:19:00 +0000]
    2013-05-27 12:19:00.737 MyApp[8492:120b] FlurrySession: Created active session with API[<cut>]
    2013-05-27 12:19:00.738 MyApp[8492:120b] FlurrySession: Session reports on close enabled[1]
    2013-05-27 12:19:00.739 MyApp[8492:120b] FlurrySession: Session reports on pause enabled[1]
    2013-05-27 12:19:00.740 MyApp[8492:120b] FlurrySession: Event logging enabled[1]
    2013-05-27 12:19:00.741 MyApp[8492:120b] FlurrySession: Crash reporting enabled[0]
    2013-05-27 12:19:00.742 MyApp[8492:120b] FlurrySession: Sending sessions to server, include current NO
    2013-05-27 12:19:00.763 MyApp[8492:120b] FlurrySession: Initial timestamp[2013-02-20 00:46:06 +0000] from saved source
    2013-05-27 12:19:00.780 MyApp[8492:907] FlurryPageViewDelegate: delegate[(null)] created
    2013-05-27 12:19:01.192 MyApp[8492:120b] Flurry: start background task
    2013-05-27 12:19:01.202 MyApp[8492:120b] FlurrySession: Scheduled send 1 session(s).
    2013-05-27 12:19:01.215 MyApp[8492:120b] FlurrySession: Set userID[<cut>]
    2013-05-27 12:19:01.217 MyApp[8492:120b] FlurrySession: dealloc session
    2013-05-27 12:19:04.857 MyApp[8492:907] FlurrySession: networkStatusChanged to  reachable
    2013-05-27 12:19:05.616 MyApp[8492:907] Flurry: HTTP connection delegate received response[<NSHTTPURLResponse: 0x1c5a1310>]
    2013-05-27 12:19:05.624 MyApp[8492:7f03] FlurrySession: async http response code: 200, id [D1038462-66E2-48AE-8304-83A24B0E26EB]
    2013-05-27 12:19:05.634 MyApp[8492:7f03] Flurry: stop background task

Flurry 确实自动发送了初始会话设置,因此您将在分析页面上看到会话(上面的部分,异步 http 响应代码:200 表示成功)。您会注意到它说添加崩溃的前一个会话。这是因为我在 XCode 中单击了停止并终止了该应用程序。这不允许 Flurry 记录任何事件!它显示记录的事件,但没有安排发送会话:

    2013-05-27 12:19:41.184 MyApp[8492:aa07] FlurrySession: Recording event eventName[Doc Save] with parameters[{myparams = "xyz";
    }] complete

您需要先单击设备上的 Home 按钮以使 Flurry 实际发送记录的事件。单击主页后,您将在日志中看到:

    2013-05-27 12:21:15.884 MyApp[8492:a30f] FlurrySession: Pause session with pauseTime[2013-05-27 16:21:15 +0000]
    2013-05-27 12:21:15.885 MyApp[8492:a30f] FlurrySession: Finish session with endTime[2013-05-27 16:21:15 +0000]
    2013-05-27 12:21:15.887 MyApp[8492:a30f] FlurrySession: ending all unterminated timed events with _endTime[2013-05-27 16:21:15 +0000]...
    2013-05-27 12:21:15.890 MyApp[8492:a30f] FlurrySession: ...finished ending un-ended timed events.
    2013-05-27 12:21:15.891 MyApp[8492:a30f] FlurrySession: Sending sessions to server, include current YES
    2013-05-27 12:21:15.900 MyApp[8492:a30f] FlurrySession: Initial timestamp[2013-02-20 00:46:06 +0000] from saved source
    2013-05-27 12:21:15.914 MyApp[8492:a30f] Flurry: start background task
    2013-05-27 12:21:15.919 MyApp[8492:a30f] FlurrySession: Scheduled send 1 session(s).
    2013-05-27 12:21:16.729 MyApp[8492:907] Flurry: HTTP connection delegate received response[<NSHTTPURLResponse: 0x1c5ac0b0>]
    2013-05-27 12:21:17.090 MyApp[8492:9c0b] FlurrySession: async http response code: 200, id [BB7CE5C1-D9C4-412F-9A41-6A838174B8FC]
    2013-05-27 12:21:17.293 MyApp[8492:9c0b] Flurry: stop background task

然后你可以在 XCode 中用 Stop 杀死应用程序

于 2013-05-27T16:53:06.403 回答
14

当您说 Flurry Events 时,我认为您指的是 FlurryAnalytics。

选项1:

请交叉检查您的密钥以及您是否集成了适用于 iOS 的最新Flury SDK 版本。

选项 2:

请确认您是否正确引用FlurryAnalytics.hlibFlurryAnalytics.a

还要检查您是否已添加libFlurryAnalytics.a到您Link Binaries to Libraries目标设置中

选项 3:

尝试使用您的登录凭据登录其网站,然后再等待几个小时。

此外,据我所知,这不是实时服务。显示记录的结果大约需要6-8小时。

否则,您需要联系 Flurry Analytics 人员,因为它确实是一个简单的 API,开发人员可能造成的问题不会太多

希望这对您有所帮助。

于 2012-03-22T12:14:43.040 回答
6

如果您使用任何 backgroundModes,您必须设置:

[Flurry setBackgroundSessionEnabled:NO];

解释和说明:

https://stackoverflow.com/a/17840667/1041311

于 2013-08-27T06:15:17.310 回答
3

我遇到了同样的问题,并得到以下反馈support@flurry.com

任何事件一旦被删除,基本上都会被列入黑名单,并且不会再次被跟踪,除非 Flurry 管理员取消删除。

您是否希望显示已删除的 55 个事件?如果是,那么由于它们被删除,它们将不会再次被跟踪。

所以我从dev.flurry.com的管理部分删除了我的应用程序,并创建了一个具有相同名称的新应用程序,但它有一个新的API_KEY. 之后,我的所有 55 个事件都正确显示在 Flurry 分析的监视器中,并带有所有参数。

于 2014-05-05T13:52:04.263 回答
0

一些新的 Flurry 事件没有被记录的原因之一可能是(不同的)flurry 事件的最大允许数量的限制。如本答案中所述,限制为 300 个自定义事件。如果你达到这个限制,新事件将被 Flurry 系统简单地忽略,不幸的是,这个问题不会显示在 Xcode 日志中。

如果这是您的问题的根本原因,这里有一些建议:

  1. 摆脱不再需要的事件。您可以在 Flurry 管理屏幕(管理 → 事件)中执行此操作。注意:如果不联系 Flurry 支持团队(阅读此处),您将无法重新创建已删除的活动。
  2. 重新设计您的 Flurry 活动。最好为一组相似的操作使用一个不同的事件并在参数字典中提供详细信息,而不是为每个操作创建新的(自定义)事件。
于 2016-01-19T20:59:04.657 回答