Appstore Blogs

Appstore Blogs

Want the latest?

appstore topics

Recent Posts

Archive

Showing posts by Mike Hines

December 05, 2013

Mike Hines

At the Amazon Appstore, we test all apps before we publish them, and we’ve seen a fair number of PhoneGap apps fail with Timeout Errors. We have also seen Timeout Errors mentioned on StackOverflow so I thought I’d share some of the more successful tips I’ve seen floating around the community boards.

One, from Google Groups:

If you are spending a lot of time loading resources from local stores or the web when you get your timeout error, try increasing the loadUrlTimeoutValue to 60000 in onCreate:

super.setIntegerProperty("loadUrlTimeoutValue", 60000);

Two, from StackOverflow:

It may be a version specific issue in some cases.  If you are seeing this in cordova 2.7.0 and it’s not a resource loading issue, try going to back to cordova 2.4.0 or upgrade to 2.9

Three, from StackOverflow:

If loading the URL is still being difficult, try importing org.apache.cordova.* and calling Config.getStartUrl() in onCreate.

public void onCreate() {                            
super.onCreate(savedInstanceState);         
super.loadUrl(Config.getStartUrl());
}

While not a universal elixir (as you can see from this thread), the above fixes have helped some of our developer community and might help you too.

November 27, 2013

Mike Hines

Today we have a video interview with the executive leadership of Tre Sensa (http://www.tresensa.com/) a NYC based game development and distribution company that optimizes games for the mobile web. In this video, they talk about their business and the importance of HTML5 in their goal to deliver apps to as many screens as possible. They also discuss their experience developing HTML5 apps for Amazon mobile devices as well as a talk about how they came to use Amazon Web Services to support their mobile gaming applications. 

We hope you enjoy this video interview with TreSensa. 

 

November 26, 2013

Mike Hines

Ever wonder what’s involved in turning your web app into an app you can launch from a mobile device? On the Amazon Appstore, it’s pretty easy, and involves just a few steps you can learn about here. One of those steps is adding a JSON file called the web-app-manifest to your web app.

This manifest file contains information required to run your app on a mobile device, and the basic manifest file is created for you on the developer portal. Where you put that manifest file can make a difference though. You should know about that and how to edit your manifest file in order to give your app access to features like geolocation on the device.

Where can you put the Manifest, and what difference that makes.

While we recommend that you put the manifest file at the root of your web app, you can put the manifest file anywhere on your server. The location of your manifest file determines what pages will render in the context of your app, and which pages will render in the default browser. The pages in the sub-domains under your manifest will be accessible by your app and will render in the context of your app. Any pages outside of those domains or directories will open in the default browser instead of in the context of your app.

Take a look at what pages will and won’t be accessible from your mobile app depending on where you put the manifest. Note the special case of www. and m. addresses in yellow below.

If you put your manifest here…

These pages will open in your app

But these pages will open in a browser

http://foo.com/web-app-manifest.json

http://*.foo.com/*

http://*.notFoo.com/*

http://bar.foo.com/web-app-manifest.json

http://*.bar.foo.com/*

http://*.notBar.foo.com/*

http://m.foo.com/web-app-manifest.json

http://*.foo.com/*

http://*.notFoo.com/*

http://www.foo.com/web-app-manifest.json

http://*.foo.com/*

http://*.notFoo.com/*

http://foo.com/MyApp/web-app-manifest.json

http://foo.com/MyApp/*

http://foo.com/notMyApp/*

http://*.foo.com/MyApp/*

http://bar.foo.com/MyApp/web-app-manifest.json

http://bar.foo.com/MyApp/*

http://bar.foo.com/*

http://notBar.foo.com/*

http://notBar.foo.com/MyApp/*

http://bar.foo.com/notMyApp/*

SSL Note:

  • If the manifest is delivered with https://, then the entire app must be delivered over SSL as well.
  • If the manifest is delivered with http://, the app may be still be served over SSL.
  • If you use any permissions (IAP, Geo Location, Login), you must use SSL.

Now that you have a good idea where to put your manifest, what to put in it?

Contents of the web-app-manifest.json file

The manifest created automatically for you will look like this:

{
 "verification_key" : "c8efxxxx-xxxx-xxxx-xxxx-xxxxe5b239e9",
 "version" : "0.00(0)",
 "type" : "web",
 "last_update" : "2013-11-19 23:40:17+0000"
}

  • “verification key” connects your website to your app.
    *This is the only required field in the manifest.
  • “version” helps you track the version that you have submitted
  • “type” lets us know that in this case, the app is a web-app
  • “last_update” is when this manifest file was created (you can change it to match your updates)

In addition to the elements above, you may also wish to add one of these elements:

  • “permissions” specifies the permissions your app will request (these will require SSL use).  They consist of:
  • “Created_by” = you.
  • “launch_path” identifies the file you want your app to open
  1. iap = In App Purchasing
  2. geolocation = Get location information
  3. auth = if you request user credentials for login (facebook connect, google, your own.)

A finished web-app-manifest.JSON that uses all available fields might look like this:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

{

    "verification_key": " c8efxxxx-xxxx-xxxx-xxxx-xxxxe5b239e9",

    "launch_path": "index.html",

    "permissions": [

        "iap",

        "geolocation",

        "auth"

    ],

  

    "type": "web",

    "version": "0.1a",

    "last_update": "2013-04-08 13:30:00-0800",

    "created_by": "webappdev"

}

Updating your web-app-manifest.JSON file

If after your app launches, you decide you want to update you web-app-manifest.JSON file, the app on device will not automatically update with new JSON file data. You will need to publish an updated version of your app. You can create an updated version of your native app in the dev portal by using the ‘Add an upcoming version’ link at the top of the developer portal page for your app (see below).

Once your new version submission is underway, you can submit and verify a new manifest, and then submit the new app version for publication.

A Tip to Remember!

Please be sure to configure your server to accommodate .JSON MIME types! For example:

.json -> application/json
.webapp -> application/x-web-app-manifest+json

More Information

You can find detailed documentation on the web-app-manifest.JSON file and on HTML5 app submission on our Dev Portal here.

Should you have any additional questions about the web app manifest file and how it is used, please send us a quick note so we can get you the answer you need.

 

November 13, 2013

Mike Hines

AWS announced a great new service for developers today that allows you to stream your graphics and computationally-intensive apps in the cloud to a wide variety of devices, including tablets and mobile phones.  Check out Jeff Barr’s post for all the details and we’ll provide more details on the benefits for mobile developers in an upcoming post.

 

November 07, 2013

Mike Hines

Now is one of the best times of year to submit your apps to the Amazon Appstore and have them published for Android phones and tablets, including the new Kindle Fire line of tablets. In 2012, we saw a 50% increase in the number of app downloads during Thanksgiving week as compared to an average week. During ‘Digital Week’ in 2012, the week after Christmas, customers purchased and downloaded 600% more apps than an average week during the year.

As we’ve noted in earlier blog posts, it’s easy to get started as 75% of the Android tablet apps we’ve tested already work on Kindle Fire without any extra development. Amazon also has a tool that quickly ensures your apps have the best chance of passing both Amazon Appstore and Kindle Fire compatibility testing. Even if you’ve already got an app in the Amazon Appstore, you can use this service to check out any updates you plan on submitting.

The testing tool works fast and screens your apps for potential errors or incompatibilities. For example, you’ll learn:

  • If there are structural issues with implementation of Amazon APIs
  • If you are using any libraries that might impact compatibility
  • If your app has features that are not supported by some Kindle Fire devices

If an issue is found, you will also get some suggestions for fixing the problem. Note, the tool is not designed to replace debugging in your IDE, and it won’t find null pointer exceptions or similar coding errors.

To get started, you can find the tool in the SDK & Tools area of the Developer Portal where there is now a link for the App Testing Service.
 


 

The App Testing Service detail page includes a brief description of the tool and a button that initiates the App Testing Service. Clicking that button brings you to the app testing page (below) which contains a control into which you can drag your .apk.
 


To give you a sense on the experience you can expect, I’ll walk you through the short process. I started with a small quotation app that I created and dragged it into the tool. The testing was complete in under a minute and my app passed. The tool then displayed a ‘Submit to Amazon Appstore’ button that I could use to start the app submission process.

Next, I tested the same app that used Google In-App Billing instead of Amazon In-App Purchasing. The tool caught that error and correctly identified the issue and offered suggestions for fixing my app. Here is that test result:
 


Here is another test result that identifies an error in In-App Purchasing implementation:
 


Once the test is complete, you can find the results of this and all your tests in a table at the bottom of the app testing page. This lets you go back and re-visit previous issues and recommendations across all the apps you have tested.

So don’t miss out on getting in front of all those customers during the holiday season. Save time and go to https://developer.amazon.com/tya/welcome.html and make sure your apps are ready to submit to the Amazon Appstore. 

 

October 29, 2013

Mike Hines

Following up on the latest in a series of webinars covering Amazon devices, game services, and mobile applications, here’s a list of questions we collected during and after our presentation on the Amazon AB Testing API.

Q: AB test requires internet connection at every launch so even i switch to 100% for say thanksgiving.. it will not applicable to user if he is not connected to internet.. Is there any way to make it concrete...
A: If you query the server for a variant each time you use the app, the user will get the default value (“ABTest Default”) from this line:

newText = varNewText.getVariableAsString("varNewText", "ABTest Default");

If that default were set to “Thanksgiving”, you could be sure that you would get this value even if offline.

If you have a different, undesired value as default, you will need to wait until the user launches the app while online to effect the change. Even then, when offline, the user will see Default again.  To make sure this doesn’t happen, you can save the value once it’s been set. Then you can check to see if there is a connection before resetting the value from the server, and use the stored value if there is no connection. This way, the value can always be “Thanksgiving” (or whatever variant you select), even when the user is offline.

Q: if we r using a|b testing in our google play apps, does it need the amazon appstore app installed (for drm validation) in the device or just adding the insights jar file in our google play app will do?
A: Amazon Appstore does not need to be installed for A|B Testing to work. Just adding the Insights jar file will work.

Q: when i was a|b testing, i noticed delays in getting the variables  in my app as well as viewing the results in the portal... why is there a delay? what is stopping from real-time measurements on the portal?
A: The call to the Insights service updates asynchronously, and results are not posted to the server real-time.  It is reasonable to see some delay before the results appear in the portal.  When offline, the service batches all collected data and saves it until the customer’s device connects with our service.

 

Don’t miss out on our next webinar event: 
Tips & Tricks: How To Test, Submit, and Earn Revenue with Your HTML5 Mobile Web Apps
on November 7th, 2013 @ 10:00 AM
Pre-register here!
 

 

October 11, 2013

Mike Hines


Click here  to watch the exclusive webinar replay on YouTube!
 
Following up on the latest in a series of webinars covering Amazon devices, game services, and mobile applications, here’s a list of questions we collected during and after our presentation on the Amazon Maps API.
 
Q: Can we see some best practices about creating apps that support both Google and Amazon maps, if possible without doubling the codebase? So long story short: is there a way to hide the map implementation like behind a Factory pattern, or something like that, or we have to work with two separate projects?
A: You could create a common map library using a factory pattern. Others may prefer maintaining separate code bases, dependency injection...etc. Unfortunately, there is no single good answer. It depends on the goal and scope of your team.
 
Q: Can we use Amazon maps on regular Android apps?
A: No, at this time the Maps API does not support non-Kindle Fire devices.
 
Q: Is it preferred to save that geocoding locally so we dont make lot of calls?
A: Yes, avoid excessive network operations would improve the performance and battery consumption of your app.
 
Q: If our app has a map in it, is there a way to support the Kindle devices in China and Japan?
A: The Amazon Maps API is supported in countries where Kindle Fire tablets are sold, except for China and Japan
 
Q: Is there restrictions on how many geocoding calls we can make?
A: At this time, there are no specific usage quotas or limits for the Maps API. However, we reserve the right to throttle or shut down your application in the event we reasonably believe your use of the Maps API exceeds typical or expected usage and/or creates material technical burdens on our (or our partner’s) systems.
 
Q: What's the benefit of using Amazon Maps over Goolge Maps API?
A: Google Map API requires Google Play Service, which is not available on Kindle Fire tablets.
 
Q: Can we do geocoding of an address outside of the mobile app?
A: No, at this time the Maps API does not support query outside of a mobile app.
 
Q: How does Amazon Maps compare with Google Maps with respect to features?
A: The Amazon Maps API offers interface parity with the Google Maps API v1. At this time, the Amazon Maps API does not support Traffic, Street view, and Trackball gestures.
For more information, please visit https://developer.amazon.com/sdk/maps/faq.html
 
Q: Can the maps be cached locally?
A: No, at this time the Maps API does not support map caching.
 
Q: Is there a way to get Amazon Maps in a Fragment?
A: At this time the Maps API does not support fragments.
 
Q: Pretty cool maps, who is the map data provider? TeleAtlas, NAVTEQ?
A: Nokia. 
 
Q: There are several build targets in the amazon api(in eclipse, 3 only for API level 17). If I build on e.g. Kindle Fire 7(3rd generation) will it be ok for e.g. Kindle Fire HDX 8(3rd generation) as well?
A: Yes, the 3rd generation of Kindle Fire tablets are compatible with API level 17
 
 
Don’t miss out on our next webinar event: 
Integrating GameCircle in Your Android & iOS Games
on October 16th, 2013 @ 10:00 AM
Pre-register here!
 
 

 

 

October 02, 2013

Mike Hines

There have been some new features added to the Amazon dev portal (Mobile App Distribution Portal) recently. First of all, it’s not just mobile any more. You can now submit your PC and Mac software in addition to submitting Android apps and web apps for mobile devices. (See this post for details.)

You also have more flexibility with the Androlid apps or web apps you submit.  Previously, when an app was submitted and was under review, you needed to wait until the review was finished before doing anything else with that submission.  Now, you can cancel the submission if you like, change something, and re-submit it again.

Just click the Cancel App Submission button at the bottom of the submission’s detail page (it’s at the bottom of all the tabs, not just General Information), and it will place your submission into the ‘Ready to Submit’ status where you can edit and replace submission elements as required.

Thanks for letting us know this was a feature you wanted. If you wish to suggest other features, please drop us a line.

 

September 27, 2013

Mike Hines

Are you considering making your Android app available on the Amazon Appstore but aren’t sure what it’s going to take to get your app ready?  Here’s some good news, while we know that 75% of the Android apps we’ve tested just work on Amazon Appstore, we now have an easy way for you to find out if your app is part of the other 25% and, better yet, understand what you need to do to get your app ready.

Starting September 27th, we are opening a private beta of a new offering, The Amazon App Testing Service. This service will allow you to test your app before submitting it to the Amazon Appstore, and will give you feedback on what (if anything) you should change. We are looking  for developers who are interested in giving the service a try and providing some feedback before we go live.  As a participant you will have pre-release access to the test tool, and you can enter your feedback on a short web-form. If you choose to submit tested apps to the Amazon Appstore, we will prioritize your apps in our submission review process.

Interested?  Shoot an email to AppTestingService-beta-feedback@amazon.com and we’ll get you signed up. Easy as that.

 

September 24, 2013

Mike Hines

Amazon just announced our new Kindle Fire tablets and Fire OS 3.0! Here are the device specs:

With this launch we are offering some impressive hardware at very attractive prices. But for customers, it’s not all about the hardware; the experience matters. With these devices, we’ve made hundreds of enhancements to the platform to make tablet technology easy to use and accessible to a much broader range of customers.

So what does this mean to developers?

Graphics Direct Texture

The Fire OS graphics system is customized to quickly load large graphical assets like the high-resolution cover art in the Fire OS home screen. Graphics Direct Texture enables the Carousel and the Fire OS media libraries to include detailed images and still load quickly and scroll smoothly.

Things to consider about graphics:

  • If you use a development framework like Unity, Epic or other, please make sure that you select PowerPVR and Andreno options when building your apps!
  • You should check to see if your visual assets look good at the 2560x1600 resolution of the 8.9” device. If not, you should supply 2560x1600 assets instead of letterboxing your existing content.

New Device IDs

We recommend that you use capability detection to determine which features to support and which layouts to use.

If you have been using specific device detection to detect device-specific features or capabilities such as screen resolution or otherwise alter the behavior of your app you should be aware that each of the three new devices has a new model number, and you will need to update your Device ID list or switch to capability detection. You can find specifics on the Kindle Fire Device and Feature Specifications.

Things to consider about Device IDs:

  • android.os.Build.MODEL is changing for the new devices
  • android.os.Build.MANUFACTURER continues to be “Amazon”
  • You should try to use capability detection instead of strict device detection whenever possible

New Camera Options

The Kindle Fire HDX 8.9” now comes with forward and rear facing cameras and will respond to Android Intents accordingly. The 8MP camera on the back of the device has a flash accessible from your app via the Camera object. You can also use MediaStore.ACTION_IMAGE_CAPTURE or MediaStore.ACTION_VIDEO_CAPTURE to capture images or videos without directly using the Camera object.

Sensor Options

All new devices support TYPE_ACCELEROMETER and TYPE_GYROSCOPE. The HDX devices with the 4G WAN option will also support TYPE_MAGNETIC_FIELD and TYPE_ORIENTATION for compass functions and have GPS onboard to support accurate ACCESS_FINE_LOCATION. The two HDX devices will also include an Ambient Light Sensor.

Things to consider about camera and sensor options:

  • Have your code look for the features on the most advanced device and degrade gracefully if a camera or sensor is not present
  • Check this page for suggestions on sensor detection

Speaker Options

All three Fire Tablet support Dolby Digital+ processing, and no action is required for your app to benefit from this feature. Coupled with Kindle Fire’s new display features the addition of Dolby Digital makes Kindle Fire a very compelling platform for gaming and media apps.

Development and Debugging

Brand-new 2013 Kindle Fire emulators enable you to target the latest Kindle Fire devices even if you don’t have one on hand. The Amazon AVD Launcher streamlines creation of compatible Android Virtual Devices so you can get your apps running in the emulator faster than ever.

Fire OS 3.0

All of the new devices run Fire OS 3.0 and feature Amazon’s unique user-friendly interface, which we have optimized extensively to improve performance. Fire OS is based on Android 4.2.2 (API level 17), so Android compatibility is high, often requiring no additional development work. In fact, 75% of the Android tablet apps that we’ve tested run on Fire OS with no code changes.

Fire OS also includes a newly optimized, high-performance Chromium-based HTML stack, so your web apps deliver a native user experience using open web technologies such as HTML5, JavaScript, and CSS3.

Other APIs now available include Bluetooth gamepads and joysticks as Human Interface Devices (HID), and multiple user support. Allowing multiple users makes family use easier, especially in conjunction with child-friendly Free Time.

In addition, this release opens Fire OS to a whole new class of Enterprise applications. With user partition encryption and secure connections to enterprise Wi-Fi networks, your application can better protect user data on-device and during transfer. Kerberos authentication and a native IPSec VPN client allow you to connect securely to corporate intranet websites from your app.

Customers Love Kindle Fire

New customer-facing features and UI improvements enhance the user experience overall and better position your content with consumers. A redesigned Home Screen with Carousel and Grid views, for example, allows users to customize the display, while QuickSwitch gives them the ability to move between apps with a single swipe.

With Second Screen, users can fling content from their tablet to their TV, and new download prioritization ensures data transfers in the background don’t compromise device performance, degrade playback, or interfere with the foreground application. X-Ray for Music, Movies, and TV lets customers explore their media in new ways, while Reading Mode makes books on the Kindle Fire even more enjoyable.

One of the most innovative features in this release focuses on helping customers have a great experience every time, even when things are working quite right. Fire OS 3.0 delivers revolutionary live tech support via video, available 24x7, 365 days a year. The Mayday button is built into Quick Settings and connects customers to an Amazon Tech Advisor, who can guide a customer remotely through any feature. As the resident tech support guy for my extended family I can say I’m pretty excited about this feature.

Better integration with third-party applications means customers can spend more time with the Kindle Fire. This release adds support for Facebook contacts, events, and photos, for example, and enables printing of documents created with Microsoft Office. Conversation view in Email improves usability, and Screen Reader, Explore by Touch, and Screen Magnifier raise overall accessibility.

You benefit from these features without having to do anything in your own code. In addition, customers who purchase a new Kindle Fire will receive 500 Amazon Coins that they can spend (and you can receive) just like cash in the Amazon Appstore. Learn more about these and other consumer enhancements here.

Other New Features

The following improvements are not device or OS related, but are relevant nonetheless.

In the last several months, Amazon has added new APIs that:

  • Give you a way to do live A/B testing in your app and change app variables while they are in-market
  • Monetize your apps with display ads
  • Help you make money by selling physical and digital goods from Amazon within your app
  • Track scores, achievements and sync game state across Android and iOS platforms

Things to Consider:

As you develop your first app for the new generation of Kindle Fire Tablets, here are some things to consider.

  • The new devices have new MODEL numbers. (Please use capability detection)
  • Make sure your resources are appropriate for 2560x1600
  • Remember to select the Adreno GPU when using a framework
  • Sensors and features vary between devices. Assume the best and degrade gracefully
  • You can get more details about the device specs here

We are looking forward to sharing more details about Fire OS 3.0 in a blog post soon. We will also share additional details and implementation suggestions for the new features in future blog posts, but in the meantime, you can find excellent documentation on the new device on our developer portal: https://developer.amazon.com/sdk/fireos.html

September 11, 2013

Mike Hines

Amazon Device Messaging (ADM) helps you send push messages to your Kindle Fire users. Now, Amazon Web Services has just reduced the effort required to send push messages your users on all the different mobile devices they happen to be using.  With Mobile Push, an ADM-compatible extension of AWS Simple Notification Service (SNS), sending notifications to millions of users across Apple, Google and Kindle Fire platforms just got a lot easier.

Sending push notifications can be expensive and time consuming, even though mobile platforms don’t charge to deliver your messages.  Currently, each platform asks you to send notifications in a different format, via a different API.  You also have to manage a database of push tokens that can change unpredictably.  Getting it wrong means your notifications may be delayed or dropped entirely.  It all becomes even more complex when your mobile apps need to scale to support millions of users.

The new Mobile Push service takes these concerns off the table with a cross-platform API, token management, and automatic scalability.  In addition to reducing the overhead of managing multiple messaging services, you no longer have to treat each group of users separately, and instead can communicate with your users according to whatever grouping makes organic sense.

So how much does this cost? Most mobile developers won’t pay anything at all for SNS Mobile Push until their applications achieve scale.  Every customer can send 1 million push notifications for free every month.  After that, you pay $1.00 in total for every million you send ($0.50 per million publishes, plus $0.50 per million mobile push deliveries).

SNS Mobile Push is available now in all public AWS regions.

The new Mobile Push section of the Amazon SNS Developer Guide will help you to get started. 

 

September 10, 2013

Mike Hines

One of the problems I’ve had with my wine blog is that my audience couldn’t read it when they really needed to, that is to say, when they were at a restaurant or wine shop and they needed to read my brilliant and witty take on a wine. Fortunately, my blog generates an RSS feed, so my next step was to learn how to code an RSS reader for Android and iOS. I already do some Android development, so this didn’t seem too daunting. That is until I actually tried to find the time to start. Honestly, by the time I get around to this, some of the wines I’ve been aging will be eligible for Social Security!

Enter Conduit Mobile (http://mobile.conduit.com.) One of my colleagues was talking to me about my RSS reader woes, and he told me about a way I could get my wine blog distributed as a mobile app for iOS and Android in about 20 minutes. Hmmm, what kind of an app can I get in 20 minutes? I wanted to find out, so I went to mobile.conduit.com and found out that I could try it free without supplying any credit card info; just the level of commitment I was looking for! Sure, I could only distribute 5 copies of my app with the free account, but it would give me a chance to see what I could get, so I signed up to give it a try.

It really was simple to choose a layout suitable for a wine blog, and paste in the URL for my RSS feed. I bypassed the options for eCommerce and user messaging because I was in a hurry to see what it looked like. Conduit Mobile generated an .apk that I sideloaded to my Kindle Fire, and it ran great with no issues.

I got what I wanted, an app that works. But Conduit Mobile wasn’t finished. They also helped me manage the submissions to the app stores. I just needed to supply the metadata assets and my store credentials, and Conduit Mobile would submit the app and all app updates for me just by clicking one button. (They only supported Google Play and Apple App Store at the time, so I had to manage my own Amazon Appstore submission.) Elapsed time, ~90 minutes.

I’ll admit this was pretty easy, and the .apk Conduit Mobile generated looks really good, so I upgraded to an account that would let me distribute unlimited copies of my app. My next step was to ask our business development team why Conduit Mobile didn’t offer an Amazon Appstore option. Our BD team was probably already working on this with Conduit Mobile, but they were nice enough to let me think it was my idea, and now Conduit Mobile will publish your new app to the Amazon Appstore as well as Google Play and the Apple App Store.

I suppose I could be angry with my colleague for missing his ’20 minute’ time estimate by such a wide percentage, but honestly I’m still grateful for the tip he gave me. You see, it’s been months since I’ve published my wine blog as an app, and I still haven’t finished writing my first Android RSS reader.

 

September 06, 2013

Mike Hines

 

Another follow-up in the series of webinars covering Amazon devices, services, and mobile applications, here’s a list of questions we collected during and after our presentation on the Amazon In-App Purchasing API.
 

Q&A

Q: How does amazon recommend implementing restoring IAPs for device re-installs or multiple devices?

A: For Entitlements and Subscriptions, you can use PurchasingManager.initiatePurchaseUpdatesRequest(Offset.BEGINNING); to get all the receipts for the currentUser, and you can validate any receipt against the Receipt Validation Service (not discussed in the Webinar.)
 

Q:Can I host website files on S3 for app program?  How will only legitimate app purchasers access the website? Mobile app program needs more info/examples. e-book publishers can't relate.

A: Yes. IAP does not care where entitled content is fulfilled from. You can fulfill content from an S3 server. Your app would be responsible for validating entitlement or active subscription for currentUser, and then pulling down the S3 content and granting currentUser access to that data.
 

Q: Could you show how it looks visually in some app?

A: See ButtonClicker, a sample in the IAP section of the SDK download
 

Q: I mean specific recommendations implemented inapp purchases with ANE.

A: For information about IAP and Adobe AIR ANE, please visit:
https://developer.amazon.com/sdk/in-app-purchasing/documentation/adobe.html
 

Q: Can one test in-app purchases through emulator?

A: Yes, you can use the SDK Tester to test in-app purchases through emulator. You can learn more about the SDK Tester at:
https://developer.amazon.com/sdk/in-app-purchasing/documentation/testing-iap.html
 

Q: Anything specific for Adobe Air ANE?

A: For information about IAP and Adobe AIR ANE, please visit:
https://developer.amazon.com/sdk/in-app-purchasing/documentation/adobe.html
 

Q: We are looking to restore saved game data using the userID, is this a sensible use for the ID? If so what is the maximum length of this string, does it contain only ASCII characters?

A: Good question. We recommend using the userID (player name and alias) from the GameCircle API. Using this, you can not only get an identifier for saved game data, but you can also sync game state, store high-scores and register achievements.  If you don't want to use GameCircle, getUserID will return an app-specific ID of the currently logged in user, meaning the result will be different for different apps, even on the same device. The UserID will, however, always the same for the same package name, even across devices.
 

Q: What format is the userID field? (length, character encoding, etc)

A: userID is returned as java.lang.String, see API reference for details:
https://developer.amazon.com/sdk/in-app-purchasing/reference/api-reference.html
 

Q: Is there any way we can test a real IAP before launching the app? We have been bitten by minor differences between IAPs made in dev and production environments in the past.

A: Unfortunately it is not currently possible.
 

Q: We submitted our app, but we are told the app crashes, but no device logs are provided to help us identify where it is crashing…how could we get device logs when a crash it detected?

A: I'm sorry to hear that. Please submit a Contact Us with the details of your app:
https://developer.amazon.com/help/contactus.html
 

Q: Can you also add a few more samples of html5 code for us to check so that we know our content will work on multiple devices. 

A: So far, the only HTML5 samples we have are in the SDK. Amazon Mobile App SDK . This is a ZIP file that contains the JavaScript files that are required for your application to access the Amazon services it needs. I recommend using the Web App Tester (free) to test how your content will work. 
 

Q: Will the emulator work on my desktop?

A: Yes, you can learn more about the emulator at:
https://developer.amazon.com/sdk/fire/arch-emulator.html
 

Q: For apps that are html5 with css, you mentioned on Aug 7th press release that we could take mobile websites and turn them into apps.  How do I set that website so that it is secure to purchasers?  

A: We have a quick security overview here: https://developer.amazon.com/sdk/webapps/webappsecurity.html. More detail should really be provided on a case-by-case basis with a developer.
 

Q: Will you accept a .htmlz file?  Or only html5? 

A: They way you submit a web-app is by putting a manifest.xml file at the root of your web app and submitting the path to that manifest, so submitting a file is not required.
 

Q. We submitted our in-app billing application, but it keeps getting rejected because of various reasons.  We are not receiving any device log, so it complicated to debug and resolve.

A. Please submit a Contact Us with the details of your app, our engineers will be able to assist you:
https://developer.amazon.com/help/contactus.html
 

Q. When we complete an IAP item in the dashboard do we submit it before we submit the app or at the same?

A. Entering the IAP items in the developer portal before or at the same time is okay. It's not okay to wait for some time after the app is submitted to add your in-app purchase items to the portal.
 

Don’t miss out on our next webinar event: 
Monetize Your Apps With Physical Goods Using Amazon's Mobile Associates API
on September 17th, 2013 @ 10:00 AM PDT.
Pre-register here!

 

August 30, 2013

Mike Hines

Note: Effective 08-26-2015 Free App of the Day (FAD) has been replaced with Amazon Underground.

Amazon Mobile Ads API developer, Games2Win, Increases Earnings by 733% on Kindle Apps with eCPM up to $2.87

"The $2.87 eCPM we saw through Amazon far exceeded our expectations. Now we're racing to get Amazon integrated in all of our apps across all Android stores," says Mahesh Khambadkone, Co-Founder of Games2Win. See how Games2Win uses the Amazon Mobile Ads API to increase their earning by 733% on their Kindle Fire apps with eCPM up to $2.87. Click here for more monetization tips.

As I was reviewing our catalog of blog posts and thinking about blog posts we should write in the coming weeks, I was impressed by the number of ways Amazon helps developers monetize their apps. I thought it would be a good idea to recap those here!

Programs and Promotions

APIs

(no coding required)

(coding required)

Amazon Coins

In App Purchasing

Free App of the Day

Mobile Ads

Test Drive

Mobile Associates

Personalized Recommendations

Game Circle

 

A|B Testing

To learn more about the items above, please continue reading below.

Reach

No development effort is required to take advantage of Amazon’s reach.

•      In nearly 200 countries - The Amazon Appstore is available in the hottest app-buying markets in the world.

•      The only store on Fire - The Amazon Appstore is the only app store on Kindle Fire, the best selling Android Tablet worldwide.

Programs and Promotions

No development effort is required to take advantage of our programs, but you do need to sign up for Free App of the Day.

•      Amazon Coins – a virtual currency that users can get for up to a 10% discount, but still pay the developer the same as actual currency

•      Free App of the Day – Just tick the checkbox when submitting your app and you will be considered for the program.

•      Test Drive – By removing friction for customers who want to try apps, the more apps they will try. Those customers are more likely to find apps they are excited to download.  In this way, Test Drive helps customers understand the value of premium apps and helps drive downloads of freemium apps. Since Test Drive launched, it has been enabled on over 16,000 apps.

•      Personalized Recommendations – Increases the chance that your app will be seen by its most likely buyers.

Revenue Producing APIs

Development is required to make money with our APIs, and we’re working hard to make that effort as easy as possible. These are the APIs I’d like to talk about now.

In-App Purchasing (IAP): If you wish to sell digital assets like game currency or access to features or data within your app, the In-App Purchase (IAP) API has three good options for you:

Selling lasting items: If you have an app in which users need ownership of something durable, say, a new sword for their dungeon crawler character, you would use an IAP entitlement transaction. If you have a productivity app that has a set of advanced features you want to sell at a premium, you don’t need to have a free and a paid version of your app in the appstore; you need only one free version with an IAP entitlement inside to purchase access to the advanced features.

Delivering content or value over time: You could even collect $0.99 every month for the advanced features of your app if your users would rather subscribe to advanced features. For this, you would use the subscription IAP item. Access to advanced features would be available while the subscription was active, and inactive otherwise. You can also use subscription IAP items so a user can subscribe to a stream of entitled items like magazines. As long as you are subscribed, you get issues that you become entitled to even after your subscription ends.

Consumable items: If you have an app in which the user spends game currency, you would want a consumable IAP transaction. In a consumable IAP transaction, users get a set quantity of something, usually power-ups, hints, un-do actions or coins that they consume during play. Once they are out, they can buy more.

Mobile Ads: If you want to collect revenue by displaying ads on your site, then the Mobile Ads service is for you. You can display a traditional banner advertisement (anywhere on your screen above the fold), you can display expandable interactive ads, and you can even pop up large views displaying our largest ads for an interstitial ad experience.

Mobile Associates: If your app is a natural compliment for a physical good, then you will like the Mobile Associates program and API. If, for example, you have a GPS phone app, you could probably earn some revenue share income by offering hiking or outdoor-related items from the Amazon.com store to your customers. Your revenue-share in the Mobile Associates program varies depending on the category of the item sold, but you can use this API set to sell one item and never have the user exit the context of your app, or you can collect a rev-share on an entire shopping-cart of items that a user will purchase in the Amazon.com UI.

Other APIs

Okay, these APIs don’t generate revenue directly, but they are so important to generating revenue I had to find a way to get them in this post.

A|B Testing: Now you can test to see what makes more money in the real world.

Have you ever wondered if placing an In-App-Purchase dialog box at the beginning of a level or at the end of a level would result in more revenue? Now you can find out which is actually best with real users. You can test any set of conditions and successes to find the combination that is most profitable for you. And you can change the variables and the mix without having to re-submit your app. (works on all Android app stores).

GameCircle: The current version of GameCircle is free, and provides your users with saved game syncing, achievements, and leaderboards that work on most Android apps sold from any Android marketplace. The cross-store capability is nice, but the big take-away here is that games with GameCircle make 83% more average revenue per user than games that don’t.

So it turns out that there are a lot of things Amazon is doing to help you make the most from your app (documentation for the APIs can be found in our dev portal here) It’s easy to start selling your apps on Amazon. Just click here to create a free account today.

August 26, 2013

Mike Hines

Until today, developers have only had three methods to monetize their apps or games: selling them outright, going “freemium” with in-app purchasing or subscriptions, or using mobile ads. Starting now, Amazon has created a new method for developers to monetize: the Amazon Mobile Associates API, currently available for Android (including Kindle Fire). The Mobile Associates API allows developers to sell real products from the millions of items at Amazon, whether physical (i.e. toys, clothing) or digital (i.e. eBooks), from inside their apps or games while earning up to 6% in advertising fees from those purchases. The Mobile Associates API is an extension of Amazon Associates, our successful web-based affiliate program created in 1996, paying advertising fees to hundreds of thousands of affiliates worldwide.

With the Amazon Mobile Associates API, you’re now able to:

Sell a single item from Amazon in your app or game: The boss at the end of a stage in your game is a giant three-headed wolf, sell the popular “Three Wolf Moon” t-shirt from Amazon

Showcase a category of goods from Amazon in your app or game: Your app is based on improving nutrition over time, offer health-related products like vitamins, supplements, etc. or the Kindle edition of The 4-Hour Body by Tim Ferriss from within your app

Bundle a purchase of a physical product from Amazon with digital content within your app: Sell a toy version of one of the characters in your game, then automatically enable them to play as that same character

Here’s how it works: a customer initiates a purchase from within your app and is then presented with a dialog box showing the product details and cost. The customer can then complete the purchase using Amazon’s 1-Click purchasing, and then the items will be shipped directly from Amazon to the customer’s doorstep. You’ll earn up to 6% of the total purchase, added to your app distribution earnings.

Alt12 is the developer of “Pink Pad” and “BabyBump”: “Our custom solution to sell physical products within our apps took us 6 months to develop, and required complex relationships with more than 20 vendors. With the Amazon Mobile Associates API, it took us only 3 days, and provided us a better in-app shopping experience for our customers, while allowing us to offer a greater selection of products.”

Days of Wonder integrated the API into their game “Ticket to Ride”: “Customers are now able to purchase a physical expansion pack of our board game and then are delighted to get the digital version now for free. We can do this through the digital bundling functionality provided by the Amazon Mobile Associates API.”

Integration is simple. Initilize the Mobile Associates API, and tell us what you’re selling--you can choose to supply a specific set of ASINs (Amazon Standard Identification Number), search terms, or use the Amazon Product Advertising API to query a list of ASINs and product information. Then, initiate the purchase. We’ll take care of the rest!

We’ve posted a Quick Start Guide, sample code, and documentation here—start earning more with the Amazon Mobile Associates API today!

 

Want to learn how to integrate the Amazon Mobile Associates API? Don’t miss out on our next live webinar event: 

Mobile Associates Program: What It Is And How It Can Boost Your App Profits
on September 17th, 2013 @ 10:00 AM.
Pre-register here!

 

Want the latest?

appstore topics

Recent Posts

Archive