Analytics and A/B Testing: Mobile Developers Get More Free, Cross-Platform Services from Amazon

Today we added to the list of free mobile services we offer across platforms:  Analytics is a fast new service, simple to understand and integrate, that shows customer engagement at a glance; while A/B Testing has been expanded to support iOS and Android in addition to Fire OS.  Both services are completely free to use across all supported platforms, regardless of usage level.  They are also bundled in the same lightweight SDK, which makes it that much easier to create and optimize your cross-platform mobile app or game.  Whether you use them together or separately, it’s all about reducing time to market, increasing stickiness, and understanding what’s working and what isn’t.

Analytics Helps You Understand How Your Customers Engage on Fire OS, Android, and iOS

Analytics puts several important metrics at your fingertips, helping you quickly assess customer engagement so you can make tactical adjustments.  Having empirical data on in-app revenue trends, for example, lets you take active steps to improve monetization.  You can view graphical reports or download the raw data in CSV format.  The Analytics Dashboard presents nine metrics with supporting graphs to give you a quick overview of your app or game performance, optionally filtered by platform.    

Key metrics available to you include:

Daily Active Devices (DAD), Monthly Active Devices (MAD), Sticky Factor

Understand user engagement better using active device reports and computed “sticky factor” instead of simplistic download and installation counts.

Total Sessions, Sessions/DAD

See how often your app is used on a given day and for how long.

1-, 3-, & 7-Day Retention, 1-, 2-, & 3-Week Retention

Measure how effectively you bring customers back to your app.

Avg. Revenue/Device (ARPD), Avg. Revenue/Paying Device (ARPPD) for In-App Items

Use in-app revenue trend data to inform catalog updates and identify areas for monetization improvement.

Integration and initialization

To integrate Analytics into your app, first create a unique identifier for it.  This will automatically generate public and private keys that you will use to initialize the service in your code.  Log on to Amazon’s Mobile App Distribution Portal and navigate to the Analytics page under Apps & Services. At the bottom, click Create Identifier.

You’ll be prompted to supply a name in order to identify the app or family of apps the identifier will represent.  Enter a name and click Save Identifier, after which you’ll be able to access the public and private keys via the View Keys link appearing next to the name you specified.

Note that both the Analytics and A/B Testing services are bundled in the same SDK and initialized with a single method call.  Download the SDK and install it according to your target platform (see the online documentation for Fire OS and Android or for iOS), then copy and paste the public and private keys into your code where you make this call.

On Android, initialization will look something like this:


. . .

// Create credentials from the public/private keys for this app.
InsightsCredentials credentials = AmazonInsights.newCredentials(

// Initialize Analytics and A/B Testing services on client.
AmazonInsights insightsInstance = AmazonInsights.newInstance(

On iOS, the code is similar:

#import <AmazonInsightsSDK/AIAmazonInsights.h>

. . .

// Create credentials from the public/private keys for this app.
id<AIInsightsCredentials> credentials =
    [AIAmazonInsights credentialsWithApplicationKey: @"YOUR_PUBLIC_KEY"
                      withPrivateKey: @"YOUR_PRIVATE_KEY"];

// Initialize Analytics and A/B Testing services on client.
AIAmazonInsights* insights =
    [AIAmazonInsights insightsWithCredentials: credentials];

Recording events and submitting them to Analytics

Analytics performs its analysis and generates metrics based on two kinds of events:  session events and purchase events.  Session events are recorded for you automatically by the iOS version of the client library.  On Android, override your Activity’s onPause() and onResume() methods to explicitly record these events as appropriate (see Record Session Events for more information).

Similarly, record a purchase event every time a customer buys something from within your app.  On Android, indicate whether the item was purchased from Amazon or Google Play (see Record Purchase Events for more information).

To submit events on Android, override the onPause() method of any Activity object that records them and include a call to EventClient.submitEvents() there.  On iOS, events are submitted automatically, although you can force a submission explicitly if desired.  On both platforms, event submissions are throttled and limited to WiFi connections by default, although WAN updates can be enabled.

Create a Better Customer Experience Using A/B Testing

A/B tests are a powerful way to present alternative versions of your features and content to different subsets of your customers, allowing you to measure and identify which version is most effective at “conversion”—for example, convincing a player to stay in the game, purchase an upgrade, or submit feedback when requested.

We have been improving the A/B Testing service ever since we launched it for Amazon Appstore apps last year, adding A/B/n tests, user segmentation, and Engagement Reports.  As of today, the service also supports all Android (not just Fire OS) and iOS devices like iPhone and iPad. Not only does it allow you to run A/B tests on the fly without writing client-side code or redeploying your app, it is free no matter how much you use it, regardless of platform.

Up to five variations can be tested at once using the A/B/n feature of A/B Testing, allowing you to optimize your app or game much faster than the traditional approach of comparing variations two at a time.  You can also use segmentation to constrain your test to customers with specific characteristics that you define.  Once testing is complete, you can launch the winning variation across all platforms with a single action, which means you can easily modify your app’s behavior no matter where it’s installed, no matter where it was purchased.  There’s no need to resubmit the app.  See the online documentation for more information about setting up testing projects, experiments, and variations.

As mentioned above, Analytics and A/B Testing share the identifier (and public and private keys) associated with your app, and are initialized together.  Download the SDK once and both services are made available.  While A/B Testing is not a pre-requisite to use the Analytics service, it does provide flexibility if you choose to add A/B tests in the future, since it eliminates the need to import any new files or spin up new services.

Amazon Apps and Games Services Portfolio      

These changes to the Analytics and A/B Testing services complement the other cross-platform services Amazon already offers for mobile development, such as GameCircle and Whispersync for Games.  GameCircle provides cross-platform Achievements and Leaderboards, and can even cross-post score updates to Apple’s Game Center, simplifying your code and reducing the number of methods you have to call.  It drives player engagement and we’ve seen it increase player retention for apps that include it.

Whispersync for Games synchronizes data across multiple platforms, between the cloud and local storage, and even handles connection management and retries when a device is offline.  It resolves conflicts automatically and provides simple getters and setters on the player data.  You access the data without ever worrying about where it’s physically stored or if it’s up-to-date.

All of these services are completely free, with no developer or player costs associated with integrating or using them in your app. Since they’re built on AWS, they’re reliable and scale smoothly as your app gains popularity.  They are simple to understand and integrate, and let you focus on game design instead of nitty gritty infrastructure details.

Amazon’s cross-platform services for mobile apps and games are always growing, with lots of exciting projects on the horizon.  Check out this latest release and give it a try on your platform of choice.  Our goal is to make mobile development easier no matter which device you are targeting.

Unavailable During Maintenance