Under The Bridge Under The Bridge

Tag: Flurry
Kowalski, Analytics!

So it’s been a little while since we last looked at analytics for your iOS app, and as it happens we have a new one just out that could use some sober second thought on its analysis strategy going forward; let’s take a look at that today, shall we?



First off, since you don’t have to do any work to get them it’s always a good idea to keep abreast of the latest developments in App Store Connect App Analytics – especially since there’s a bunch there that you can’t get with any other service! But, since you can’t report any custom events so they’re not very interesting development-wise, we’ll just remind you of the documentation and move right along, to consider in detail the current crop of services that are FREE! and UNLIMITED! that being the tier of service that us scrappy Indies are most interested in naturally!

So, last time we were checking out this analytics thing, the buzz was all about Fabric Answers

The best of Answers realtime analytics is now part of Firebase. New apps should use Google Analytics for Firebase…

Well then. How about that old standby for website centric organizations, Google Analytics? Oh, look they’re shutting that down too this Hallowe’en…

To use the latest generation of app reporting in Google Analytics, you’ll need to install the Firebase SDK. If you do not have a Firebase project, go to firebase.google.com to get started. Once you have completed the setup, return to Google Analytics…

Huh. OK, if you’re tied into the Google ecosystem, or anything that was good it acquired, it seems your choice is very clear. Singular, in fact!

Personally, we’d prefer not to be tied into the Google ecosystem, particularly if we’re not depending on it for anything besides analytics, so we’ll leave the Firebase option off the table as long as possible. Besides, it isn’t completely free, although the free usage limits are generous.

For completely free to the developer, Flurry appears to still be the leader in app support suites, with push and real time analytics and advertising and remote config and all sorts of other goodies these days; come a long way since Peter Farago stopped by to say thanks for our first note on it over ten years ago and now he’s “GM & VP Flurry” at Verizon with a job description of “Making Flurry awesome(r)” so that would seem to indicate that it’s weathered its various acquisitions nicely and continues to be a solid choice going forward.

While we were developing this last project, we tried out Visual Studio App Center and were reasonably pleased with it in general — we didn’t get around to creating any specific events, but even the default session monitoring of App Center Analytics is providing useful information — it’s still maturing, but if you’re tied in to Microsoft platforms or the slowly migrating HockeyApp, this is the support suite for you! Without that, it doesn’t have a compelling use case … aside from being Not-Google. Should you find that compelling.

Another option, if you have a Facebook app as pretty much everyone does these days, is Facebook Analytics where if you’ve linked in the Facebook SDK you can see session info in Facebook’s Event Manager things logged with App Events for iOS. Not actually real time though, and you don’t get the push notifications and crash reporting and so forth of the above suites, so picking one of them is probably what most of us will be interested in. 

Now, there are a veritable plethora of other analytics services out there that don’t meet the FREE! and UNLIMITED! test, any number of which may be suited enough to your particular needs to be worth their investment: here’s a few of the better recentish roundups we looked at putting together post, check them out if you have a budget:

The Apps Have Spoken: Top 13 iOS App Analytics Platforms [2019]

Top 11 Mobile App Analytics Platforms in 2019 (Pricing Included)

Top 20 Mobile App Analytics Tools: Which is the best one for you?

Top App Analytics Tools (2019)

And if you don’t want a service at all but want to host your own analytics, an excellent start on that is this:

Countly Community Edition
Your very own, self hosted and open source desktop, web, mobile analytics server and SDKs

At least it looks like it. We wouldn’t know. We’re not into self-hosting or rolling our own of anything we can possibly get away with not. But if you are, check it out and let us know how that goes for you!

And finally, whichever one of these alternatives you pick first, it’s a solid bet that you’ll be called on to change it at some point, because that’s just the way it always works, isn’t it? Here is a nicely elegant post about creating

A modular analytics layer in Swift

We are going to build a layer that avoids using a static API, puts any backend APIs behind a protocol, uses the power of Swift enums and pairs each event with the pieces of data it needs to contain.

More specifically it should:

  • Be easy to report new and existing events.
  • Allow the data be sent to whichever analytics backend we wish to use, even multiple.
  • Be testable and mockable, allowing it to be an injected dependency.
  • Allow events to be reported from anywhere in the app, but encourage best practices.
  • Have compile-time safety of events and their properties…

Sounds like just about the way we like to put service wrappers around our dependencies yep — so whatever analytics you choose, check that out!


8 Critical KPIs for Your App and How to Track Them

Assertions in Production for tracking internal errors

SmartlookConsentSDK for getting user consent

Flurry Analytics

So if you’re looking for some commercial solution to stick some analytics in your app, you’ve probably heard of PinchMedia, Medialets, and AdMob, which all make money via ad insertion; and far as we can tell, nobody’s making huge sums of money off those, so we haven’t looked into those further. But here’s one you might not have heard of: Flurry, which provides nice-looking analytics for FREE! — always a good price — and does it over all major mobile platforms, no less.

The problem facing many mobile application developers is that they don’t get the best analytics information on the cross-platform software they create.

That’s why San Francisco-based Flurry has launched a new mobile application analytics tool that works across a variety of mobile platforms, including the iPhone and Google’s Android. Today, the company is announcing that more than 300 developers have used its free service since the beta launched in October.

The program also works with BlackBerry and Java ME platforms (though not Palm). Flurry lets developers see exactly how consumers use their applications, and provides information on which features of the application are used and for how long.

The software is meant to give developers a tool for monitoring application usage in real time. That way, they can fine-tune the application on the fly, said Peter Farago, vice president of marketing at Flurry…

Well, that all sounds quite interesting, so we signed up for a free account. The website appears nicely laid out, and since we didn’t notice any NDA, we’ll share the API with you here:

@interface FlurryAPI : NSObject

// Call startSession with your project apiKey in applicationDidFinishLaunching
// + This call will initiate tracking of the current user session and send any previously saved
// sessions to the Flurry analytics servers.
+ (void)startSession:(NSString *)apiKey;

// Use this instead of startSession if you want detailed location information in your analytics.
+ (void)startSessionWithLocationServices:(NSString *)apiKey;

// Call logError to track any errors in your application that you would like to view in your analytics.
// + Errors are uniquely identified and correlated by errorID so two different calls using the same
// errorID will be considered the same error type.
+ (void)logError:(NSString *)errorID message:(NSString *)message exception:(NSException *)exception;

// Call logEvent to track any custom events in your application, such as user behaviors or application
// execution points. The eventName is considered unique so two different calls using the same
// eventName will be considered the same event type.
+ (void)logEvent:(NSString *)eventName;

// You should not need this function.
+ (void)setServerURL:(NSString *)url;


Well, that’s short and sweet; and they provide instructions for putting logError in your uncaught exception handler for a simple crash reporter, although we still really like the looks of the previously mentioned PLCrashReporter for that. But maybe they can coexist nicely. In any case, if you are interested mainly in usage data, we don’t see any downside to jumping on board with Flurry!

h/t: VentureBeat!