As a longtime user of TestFlight for both test build distribution and usage analytics, I was extremely disappointed to find that they have cancelled their FlightPath beta program for tracking usage statistics in your live app once distributed via the App Store. It was great to be able to reuse the same checkpoint infrastructure to collect usage statistics. Alas, they claim to be focusing more on their core product, which might be a good thing in the end.
As a replacement, I have started working with Flurry, which provides a great deal of usage statistics, including an event infrastructure similar to TestFlight’s checkpoint system.
Make sure to sign up for a free account and copy your application key. Let’s get started!
Setting Up Flurry
Update your Podfile to include FlurrySDK:
Next, update your app delegate to start a Flurry session when the app finishes launching.
1 2 3 4 5 6 7 8 9 10 11
Tracking Usage with Events
The event system provided by Flurry is similar to TestFlight’s checkpoints, but includes a few unique and really nice features. In TestFlight, events are limited to just a name, but with Flurry you can also associate a dictionary of parameters associated with the event, or cause the event to be timed.
The syntax for logging an event is similar to logging a checkpoint in TestFlight.
Simple Event Logging
Event Logging With Parameters
If you’d like to associate some data with the event, there is another static method available.
You can time an event and have the duration be reported by Flurry’s events dashboard.
1 2 3 4
Timed Events with Parameters
Lastly, you can combine all three.
1 2 3 4 5
Note that it can take a few hours for events to show up after your first session, and that unlike TestFlight, Flurry events are synchronized when the app is paused or terminated.
Flurry passively tracks a lot of other information about your app, too. Some of the neat metrics you get for free are:
- Active Users
- New Users
- Session Length
- Frequency of Use
- User Retention
- Version Adoption
- and many more
I plan to continue using TestFlight and Flurry side-by-side for a while, but may end up migrating completely to Flurry for events. It certainly has more interesting and useful features than TestFlight’s simple checkpoint logging. If I end up using the two in parallel, I’ll do a follow-up post on how to make that easier.