Vision Mobile recently shared a new chart showing a higher percentage of Amazon Fire developers above the app poverty line versus other platforms. More specifically, 59% of developers distributing their apps on the Amazon Appstore make more than $500 per month versus <50% on other platforms. The chart also showed that developers continue to experience increased monetization in the Appstore - Amazon had a bigger proportion of developers making $5,000+ a month compared to developers on other platforms. We’re excited to see developers like you expand their reach and monetize apps through the Amazon Appstore.
Today the Amazon Appstore is available on more than just Fire devices including the all-new Amazon Fire TV Stick. The Amazon Appstore for Android is also pre-loaded on BlackBerry 10 devices and carriers including O2, EE, Deutsche Telecom and others on millions of Android devices. This wide reach gives your app access to even more customers. Plus, the latest Amazon shopping app fully integrates apps and games into the shopping experience enjoyed by millions of customers. So when customers are searching for products in the Amazon shopping app, they’ll also discover relevant apps and games that they may also enjoy. Here’s what some developers are saying about their experience with Amazon:
– Elad Kushnir, VP of Business Development at Playtika
– Jean-Baptiste, CEO at DJIT
P.S. The holidays are the best time of the year to submit your apps. Read our latest blog post to learn more: Three Important Stats About Holiday Device Sales
The Amazon Mobile Ads API lets you place high-quality display ads from the Amazon Mobile Ad Network in your app, helping you better monetize your apps and gain access to highly relevant ads from brand advertisers, including Amazon and its subsidiaries. Starting today, both Interstitial and Banner ads can now be displayed across iOS devices in addition to Android and Fire OS devices. Beginning on July 25, 2014, ads can also be displayed on the Fire phone. As a developer, you can now monetize your apps with the Amazon Mobile Ads API across iTunes, Google Play, and the Amazon Appstore while taking advantage of multiple targeting features.
With this release, we are also expanding ad serving to users in Spain and Italy across Android and iOS. Starting today, the Amazon Mobile Ad Network is serving ads to Android and iOS users in the US, the UK, Germany, France, Spain and Italy.
“Amazon Mobile Ads API is consistently delivering 20% higher eCPM on both Android and iOS platforms compared to other ad networks. In addition to increased earnings, the high-quality tailored ads provides an engaging experience for our users achieving 25% higher CTR.”*
- Tim Oswald, Co-Founder & CEO of Harpan LLC.
* Your results may vary.
If you are already using the Amazon Mobile Ads API in your Android apps today you can skip to the Integrating with Your iOS Apps section below. Otherwise, to get started with the Amazon Mobile Ads API, follow these quick steps:
**If you are performing services for the Amazon Mobile Ad Network outside of the US, please complete the Amazon Services Statement so we report your tax obligations accurately, and do not unnecessarily withhold taxes we are required to collect from developers who perform services in the US.
The Amazon Mobile Ads API for iOS requires iOS 6.0 or later and assumes you have Xcode 5.1.1 installed. After completing the Getting Started steps above, you can integrate iOS support in three steps.
1. Reference the AmazonAd.framework in your existing XCode Project
2. Set up your provided Application Key by calling into the AmazonAdRegistration setAppKey class method. You must set your app’s Application Key in order to receive ads. This allows Amazon to track your impressions and clicks, and associate them with your account. Here is an example of calling setAppKey:
3. Load an ad Using AmazonAdView. You can also set a number of optional parameters, including whether this is a test request. Test requests always return an ad and don’t count as part of your metrics. Here is an example of a loadAd call:
For more detailed information on integrating iOS support, check out our iOS Quick Start Guide here.
Note - During integration and testing of the Amazon Mobile Ads API, you should set the testRequest option to true. This indicates that the request is for testing. Here is an example:
Test requests will not show up in your metrics. Test traffic that doesn’t include this flag could result in blocked requests, fraud investigation, and potential account termination.
The Amazon Mobile Ad Network supports Interstitial Ads as well as banner ad sizes of 300x50, 320x50, and 300x250 for phones and 300x250, 728x90, and 1024x50 for tablets. Your app should request a device-appropriate size. Please see the following chart for recommended sizes by device:
Just like Android and Fire OS, there are a number of targeting options you can include in the requests you send to the Amazon Mobile Ad Network. In addition to ad unit size above, you can specify geolocation (US only), age and gender. For more information on ad targeting in iOS, check out our guide here.
The Amazon Mobile Ad Network allows you to participate in highly targeted campaigns with premium advertisers. The Amazon Mobile Ads API can serve both banner and interstitial ads across Amazon Appstore, iTunes and Google Play. For a limited time, when you send the first ad request from a qualified app, you will receive a guaranteed $6 CPM on interstitial ads (up to a maximum of 1 million impressions per app per month). Qualifying apps now include iOS apps. Please find more details here. The opportunities to monetize your apps have never been better!
To learn more about the Amazon Mobile Ads API, check out our developer portal here, the Quick Start Guide for iOS, as well as our blog with tips on ad mediation and tracking ad events inside your apps.
Beta software gets a bad rap. It is usually the first public release and comes as part of the final phase of testing, which means it isn’t always polished and bugs are common. It should be considered more than just a public bug bash, though. A beta serves another important purpose: it is your first chance as a developer to see if the software does its job and meets the need it is designed to meet.
Releasing your application to a community of “beta users” lets you observe unscripted interaction with your software in a wide variety of real-world environments. Managing this kind of release (a “beta test”), though, and collecting the interaction data has traditionally been a logistical chore.
Say we have a mobile game with multiple levels. How should they be presented? The obvious answer is in order of increasing difficulty, but maybe it makes sense to alternate easy and hard levels so players don’t become discouraged. Perhaps they should be arranged in groups, each of which starts easy and grows more challenging as a player advances.
This is the kind of fundamental behavioral question you might try to answer with a beta test. Using traditional techniques, you would code one approach, release it to your beta users, and evaluate its success based on, for example, the number of levels completed or highest level completed. Then you would code the next approach, re-release the updated app, record the user response to the new version, and so on. Finally, you would select the most successful approach for your production release.
There are obvious disadvantages to performing a beta test this way. You must release a new version of your app for each variation you want to evaluate. Beta periods are longer because you must test variations sequentially (unless you manage several different groups of beta users). Test results may be influenced by users’ previous experience, since they won’t necessarily bring fresh eyes to each variation.
For mobile app developers, distributing software to a limited group of users may not even be possible. Once an app is published to an app store—often the only practical way to handle distribution—it is automatically available to everyone using that store. App updates must also go through the store, which means resubmitting a new version and potentially restarting the approval process.
Although everyone agrees that beta testing is important, most developers would also agree it is very time-consuming and difficult to execute.
Amazon’s A/B Testing Service is designed to run in-app experiments, which also makes it perfect for beta tests. A free, cross-platform service that supports iOS, Fire OS, and Android, it can handle multiple tests at once with up to five variations each. You can use it to make app adjustments on the fly without updating client-side code or redeploying your app.
The service also makes it easy to manage beta users, since it has built-in support for user segmentation. This means that you can target your beta test to users matching particular criteria (that you specify), or even run more than one test at once targeting different groups.
The Amazon Developer Console provides an online dashboard from which you can monitor and control all aspects of your beta tests.
We can use Amazon’s A/B Testing Service to address these issues and simplify the testing process. First, we create a project to represent our test.
Next, we identify which users will be included in the test by defining a special segment. Only beta users will see the variations; everyone else will see the default behavior (also called the control).
Finally, we create the actual A/B test we want to run and describe each variation in terms of the variables that connect it to our app. We will evaluate success based on the percentage of time that players complete Level 5 after starting Level 5.
The user segment we defined above (betaUsers) will be divided equally, with each subgroup seeing one of the variations we described. We can use the Amazon Developer Console to review the results of our test.
As the customers in the “betaUsers” segment, play the game data is uploaded to the service is tabulated within an hour. Once the confidence reaches statistical significance (100% in the example above) you can decide how you’d like to react. You can pick the winning variation and make that live for all new users. In this situation, we see that the existing Level 5 design (Variation A) is better than the new level 5 (Variation B) that we’re testing. Somehow, we made the level worse and shouldn’t deploy this particular change to everyone.
Beta testing is an effective way to test different configurations in your app under real-world conditions, but it’s also a good opportunity to evaluate user satisfaction with your app’s basic operation. Using Amazon’s A/B Testing Service, you can easily compare different functional implementations of key features or behavior, allowing you to identify which approach will resonate most with your users.
To learn more about A/B Testing and how you can incorporate it into your app development, see Amazon’s developer website and the A/B Testing Service documentation:
While at GDC last week, I was able to speak to over 300 developers. It’s exciting to see all the ideas and the passion that fuels them - I love being around people that are so creative and productive. Often our conversations would turn to how to take their great idea and turn it into a great business. We’d talk about how to expand their distribution channels, best practices for monetization, opportunities for promotion and, most importantly, how to continuously improve the experience of their game.
Most of the people I spoke to understood the basic premise of AB Testing — to provide more than one experience and see which performs the best. For example, it’s common in advertising to deploy several ads with different messaging or art work to a small number of customers and then expand to more with the one that performs the best. It’s similar in a game, where you could test several experiences like the difficulty of a level, the impact of ad placement, or the effectiveness of your viral mechanic, etc.
Still, most of the developers I spoke to were surprised and excited by the following 4 aspects of Amazon’s AB Testing service:
You can give it a try right now. It’s available from the developer portal at https://developer.amazon.com/public/apis/manage/ab-testing.
Login with Amazon is now available to developers to integrate in their mobile apps and websites. The new service lets you take advantage of the same user authentication system used by Amazon.com. Login with Amazon allows you to securely recognize millions of Amazon customers and provide them with a personalized user experience. For example, you can greet visitors by their name or display customized offers based on their zip code.
Login with Amazon uses the OAuth 2.0 protocol making it easy for you to integrate it in your app or website. Developers who have previously worked with the OAuth 2.0 protocol will find the terms and concepts straightforward and consistent with other implementations.
How does Login with Amazon work?
Login with Amazon SDKs are available in public beta for Android, Kindle Fire, and iOS. To integrate the service in your app or website, go to login.amazon.com to register a developer account, download the SDKs, and view the Getting Started Guides.
Login with Amazon adds yet another capability for mobile app developers. Now, developers can use Amazon Web Services (AWS) for its infrastructure (e.g., compute, storage, and database). For those interested in building cloud-backed apps, you can read more about it here.
Since Android’s first release in September 2008, the number of Android users and supported devices has steadily increased. A recent comScore report shows that there are now nearly 16 million users in the US owning Android smartphones, surpassing the total number of iPhone owners. Late last year, Canalys reported that Android claims a quarter of the smartphone market segment share. Their recent report says that Android’s growth in 2011 will be twice the rate of their major competitors, including Apple’s iOS-based devices. There is a growing market segment here that presents a great opportunity to developers including those in the Android space, and those who have only developed for iPhone and iPad. For iOS developers, porting apps to Android presents a rare opportunity to tap into this market segment and a fast growing user base.
If you are considering taking advantage of this opportunity, here are key topics to be aware of when porting your apps from iOS to Android.
Differences between iOS and Android programming
Apps for iOS are written in Objective-C, an object-oriented descendent of the C programming language. Android apps are written in Java, a very popular programming language invented by Sun in 1994, traditionally used for building server-side applications over the past 15 years.
In addition to the differences in language, syntax and semantics, there is also a key runtime difference that affects how your code is written. Java has automatic garbage collection, which means that you do not have to explicitly free objects after they are used. Objective-C requires developers to manage memory explicitly.
Integrated Development Environment (IDE) options and SDK platform support
You have more options when it comes to selecting an IDE and platform when writing code for Android. While building Java-based apps, you can write and compile your code on all major operating systems, including Linux, Windows, and Mac OS X. Furthermore, the Android SDK integrates with most major IDEs, such as Eclipse and Intellij, which means you can run an Android emulator and test your application on either of these IDEs and operating systems. The iOS SDK, which includes XCode IDE, runs only on Apple-based operating systems.
Apple is the only provider of iOS devices, while many vendors offer devices supporting Android
As we discussed in a previous post, Android has many vendors, which means Android devices have varying capabilities and features. iOS devices are only manufactured by Apple and are currently limited to iPhone, iPad and iPod touch. For developers who are accustomed to building apps for a small set of devices, building apps for Android presents a completely new challenge.
Ultimately, iOS developers with a good understanding of these fundamental differences will be able to assimilate well in developing apps for Android. In fact, the developer who was previously constrained by the platform limitations of iOS devices may now find the flexibility of having IDE options, SDK platform support and the nuances of the Java language to be refreshing and energizing.