Flurry

Flurry is an analytics platform for analyzing consumer interactions with mobile applications. It offers solutions for marketers to advertise in-apps, as well as a service for applying monetization structures to mobile apps. Apptimize integrates with Flurry by automatically importing the following for iOS and Android:

  • Events

  • Specific User Properties: Gender, Age and UserID

You are also able to use the Apptimize TestInfo API and our participation callbacks to forward your experiment data to Flurry. Please see our data export guidelines for more information on how to set this up.

Automatic Event Importing

Apptimize detects Flurry Events and automatically imports them for use as Goals within your Apptimize Experiments. Apptimize does not support event properties so please note that your events will only be imported with their names.

iOS (Objective-C)
// In this example, Apptimize will auto-import "Article_Read" as an event but will
// not include the "articleParams" properties into your Apptimize Goals.
  NSDictionary *articleParams = [NSDictionary dictionaryWithObjectsAndKeys:
  @"John Q", @"Author",
  @"Registered", @"User_Status", nil];

  [Flurry logEvent:@"Article_Read" withParameters:articleParams];

// The following logEvent would be auto-imported Apptimize as is
  [Flurry logEvent:@"EventName"];

In order for the import to take place, you will first need to trigger your events in a live experiment. We recommend running an A/A test in your app so that you can successfully have all existing events triggered, without affecting your end-users. Once experiment results are posted from your A/A test, you will see your Flurry Events listed as selectable goals for use in your future experiments.

Flurry Events that have been automatically imported from Flurry will appear with the prefix “fl:” in your Goals like so:

../_images/flurry-events.png

Note that logError and logEvent with timing methods not automatically imported. If you wish to have other specific events reflected in your Apptimize results, we recommend tracking manually with our Apptimize track method where the event occurs.

Automatic User ID and Properties Importing

Apptimize will automatically import the following user properties:

  • Gender

  • Age

  • User ID

After successfully importing these, you are able to Target with them in your Apptimize Experiments.

To have any of these properties be available for targeting, you simply need to fire an event or reach a screen in the app that utilizes your User Properties while your device is paired with the Apptimize Dashboard. To pair with the Dashboard, you will need to open our Preview Variants tool, which will mirror your active device. Once you trigger or navigate to the screen where you call setUserID, setAge, and/or setGender, Apptimize will detect these attributes and automatically import them for use. You should also be able to see the property fire on the left-hand side of the Preview window.

Once you have successfully paired and triggered your properties, they will be imported as selectable elements in the Target & Launch dropdown.

You will also be able to filter by your user ID/properties in your experiment’s Results.

If you wish to identify your users in Apptimize, so that the variant they see consistently depends on their user ID, please set their ID with the methods outlined in our documentation here.

If there are additional user properties that you would like to target with, please manually set these properties with our Custom Attributes where they are identified.

Exporting Experiment Data

Apptimize maintains a TestInfo API which can be used to export Apptimize experiment results data to Flurry. Here are links to the documentation of this API:

Calling TestInfo will return a map of the following info for all actively running tests:

  • Experiment Name

  • Variant Name

  • Experiment ID

  • Variant ID

  • Enrollment in Experiment Date

  • Start Experiment Date

  • User has Participated since Enrollment

This data provides comprehensive detail around the user’s experiment participation, and can be parsed and/or passed along to flurry or any other third party as you please.

As an example, your output might look like:

testinfo: {
 "New Experiment" = "Variant \"original\" (157581) of test \"New Experiment\" (11452),
 enrolled since 2015-06-06 01:15:56 +0000 (started on 2015-06-06 00:47:15 +0000)";

For additional details and sample implementation, please see our Data Export documentation page.