No results found
November 12, 2013David Isbitski
Update – 12/18/13 - As part of our continuing efforts to simplify the Amazon Appstore for developers we have loosened the requirement for SSL in Web Apps. The practice is still recommended but not required to pass certification for certain scenarios such as Geolocation and Authentication. You can view additional details on using SSL in your Web App here.
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 HTML5 Mobile Web Apps.
Q: How much does it cost to publish my Web Apps?
A: There are no developer registration or subscription fees. There is no cost to publish your Mobile Web Apps with Amazon and all of the corresponding services, such as In-App Purchasing, are free to use.
Q: How are apps currently published, do I need to have a Website?
A: Currently Web Apps get distributed by having you host all of your current on your own Web Infrastructure. You are free to use any hosting service and we walk through an AWS EC2 Micro Instance in the recorded webinar.
Q: Do I need to make any changes to my Website?
A: We support HTML5 and responsive web design for all Web Apps. The only required change is that you create a web-app-manifest.json file and return the JSON correctly. This ensures you are the owner of the website. We also highly encourage the use of SSL.
Q: How do I test my Web App?
A: Since the Web App application is the same HTML5 code as your Mobile Web site you can do all of your testing through a browser like you would normally or your favorite Developer IDE (WebStorm, Eclipse, Sublime, Visual Studio, etc.)
Q: How do I test my Web App on a Kindle Fire or Android Device?
When you are ready to see the website running on a device you can install the Web App Tester from the Amazon Appstore. The Amazon Web App tester will run on Kindle Fire and select Android devices.
Q: How do I debug my Web App on a device?
A: The Web App Tester tool uses ADB to allow debugging of your Web App through the Chrome Dev Tools. We do a complete walk through of this process in the recorded webinar and you can get more details on our SDK website here.
Q: What HTML5 features are currently supported?
A: The current version of Web Apps is built on the open source Chromium project version 25. You can view the full list of supported features here.
Q: Can I lock the device screen orientation?
A: Yes for a full list of best practices around device orientation and other capabilities check out the SDK documentation here.
Q: How do I take screenshots of my Web App for submission to the Appstore?
A: You will need to run the Web App Tester on a Kindle Fire device and hold down the power button + volume down. Once you have taken the screenshot you can find it in your pictures\screenshots folder. You can read more details here and we walk through this process in the recorded webinar.
A: The current Web App API library is hosted here and available for viewing or inclusion in your own web projects. The recorded webinar includes a walkthrough and summary of this file.
Q: Can I use In-App Purchasing with my Web App?
Q: Are Web Apps eligible for the Amazon Developer Select program?
A: Yes, Web Apps are eligible for Amazon Developer Select and you will automatically see the status for each of your apps under the My Apps section in the developer portal.
October 29, 2013Mike 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.
October 11, 2013Mike Hines
September 25, 2013Peter Heinrich
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 Mobile Associates API.
Q: Is the advertising fee fixed (6%) for all products?
A: Products belonging to certain categories have fixed fee rate ranging between 4-6%. Products in the General products category have a volume based fee rate between 4-6%. See Table 3 and 4 at the here.
Q: Do you plan to serve also the non-US users in the future?
A: Great request. We’ll be sure to pass this along to the product team.
Q: Does this mean we will not get credit for mobile users making purchases through our websites which use the regular api? Can we use the new mobile API on our websites where we have both mobile and desktop users making purchases, and get credit for both?
A: The Mobile Associates API is available only for Native Android Apps. Mobile Associates is linked to a new Associates account that we create for you when you accept the Amazon Mobile App Distribution Agreement and create your developer account. Reporting for your Mobile Associates account is only available on developer.amazon.com. You can continue to use Associates Central to access your pre-existing Associates account information. If both your Mobile and pre-existing Associates account earn advertising fees, they will result in separate payments.
Q. How do I select and specify products I want to offer in my app?
A: You can either offer specific product(s) in your app or offer product(s) that fulfill certain criteria.
To offer specific products, first you need to select the products that you want to offer. You can do that by going to Amazon retail website, determining the products you want to offer, and looking up their products IDs. Product IDs are also called ASIN. You can find details of finding product IDs here.
You can also offer product(s) that fulfill certain criteria. You can do this by specifying a search keyword, and product category. The API will return product(s) that fulfill that search criteria in the given category. You also have the option to sort and filter the search results.
Q. How can I get product information including properly formatted price of a product?
A: You can retrieve a product information using search and searchByID(..). Search API allows you to search for products using keyword and category. As part of the search results the API also returns product information that includes productID, title, description, image URL, price, and rating. searchByID allows you to lookup product(s) using productID. As part of the response, the API returns product title, description, image URL, price and rating.
The product information returned by both methods, search(..) and searchByID(..) are part of the Product class. You can call Product.getPrice to get the Price object. You can use the Price object to retrieve the monetary value, currency and the properly formatted price.
Note: search and searchByID APIs are only available if you app is distributed though Amazon Appstore for Android
Q. Can I offer digital products like ebooks, digital video etc. in my app?
A: Yes, you can offer digital products like ebooks, digital video etc through the Mobile Associates. Digital products are available for sale through DIRECT_WITH_DETAIL and DIRECT_WITH_PREVIEW purchase experiences. Digital products are not available for digital bundling feature i.e grant a virtual item based on a purchase of a product from Amazon.
Q. How can I check if a product is in stock and available for sale?
A: You can check if the product is in stock and available for sale by calling searchByID API. You can specify the productID of the product you want to offer in the SearchByIDRequest. SearchByIDResponse object will be delivered to your app through the ShoppingListener.onSearchByIDResponse callback. You can call SearchByIDResponse.getUnavailableProductIDs to check the products that are unavailable in your SearchByIDRequst. As a best practice you must always check if the product is available before offering it to the users in your app.
Note: search and searchByID APIs are only available if you app is distributed though Amazon Appstore for Android
Q. How can I get information on products that are available in different colors and sizes?
A: Products that are available in different shape and sizes are called variations. You can find product ID of a specific variation of a product on Amazon retail website. You can offer variations of the same products in your app by specifying the product ID of each variation in your app.
The Amazon product detail page handles variations. If a product has variations, users will be able to find and select variations on the Amazon product page. The Amazon Product detail page is presented to the user when you call the purchase(..) API and with IN_APP or DIRECT_WITH_DETAIL purchase experience.
You cannot retrieve product variation programmatically through the Mobile Associates API.
Q. Can I search for certain class of products using the API?
A: Yes you can search for products by specifying keyword and category. You can programmatically retrieve search results using the search API. Note: the search API is only available if your app is distributed through Amazon Appstore.
You can direct users to a search result page on Amazon site using LinkService.openRetailPage method and OpenSearchPageRequest request object.
Q. What are the available search categories?
A: Available search categories and list of available sortType and filters are available here.
Q. Can I filter and sort the search results?
A: Yes, you can specify the sort type and filters for search results. The available sort types and filters depend on the product categories. You can find the complete list here.
Q. Do I need to track the current user?
A: If you are implementing a digital bundle, you should keep track of granted virtual items based on the current logged in use. If the user changes you should retrieve the purchase receipts for the current user by specifying offset.BEGINING in the getReceipt call and make sure that you grant the items owned by the new user. You would also want to ensure that the new user does not have access to items owned by the previous user.
Q. When should I grant the digital item if I am implementing a Digital Bundle?
A: You should grant the digital bundle when the receipt for the purchase is delivered to your app. You will have to request for the receipt as part of the purchase call by setting the receiveReceipt flag to true. You should only set this flag to true if you are implementing a digital bundle.
When you set receiveReceipt to true, if the PurchaseResponse.Status is SUCCESSFUL in onPurchaseResponse, you can call PurchaseResponse.getReceipts() to retrieve the receipt for the purchase and grant the digital bundle.
If you receive PurchaseResponse.Status as PENDING, you will have to rely on ShoppingService.getReceipts(..) to get the receipt for the purchase. You must call getReceipts in the onResume method of the main activity and also in onResume of any activity that implements the Mobile Associates API functionality. This will ensure that when the transaction goes through, your app receives the receipt and grants the digital bundle.
Q. What if the customer cancels the order or returns the product that has a digital bundle?
A: If a customer cancels the order or returns the product that has an associated digital bundle, the receipt for that order is marked as canceled and delivered to your app when you call ShoppingService.getReceipts(..).You may want to revoke the granted digital item in this case. Hence, when implementing a digital bundle, you must track the receipts (preferably on your server) for which you have granted a digital item. You must also de-dupe the receipts using receiptID to ensure that you do not grant or revoke a digital item multiple times.
Q. On a successful product purchase, how can I check the product that corresponds to the purchase request?
A: Note: You can only find the product corresponding to the successful purchase if you are implementing an IN_APP shopping experience and you specify receiveReceipt to true (i.e implement a digital bundle) in the ShoppingService.purchase(..) method.
If you are implementing an IN_APP shopping experience and you specify the receiveReceipt to true, you will be able to retrieve the receipt for the successful purchase by calling PurchaseResponse.getReceipts(..) in ShoppingListener.onPurchaseResopnse callback. By calling Receipt.getProductID(..) you can retrieve the product ID of the product that corresponds to the purchase request.
Q. How do I test my implementation?
A: You do not require any additional tools to test your implementation for LinkService or DIRECT_WITH_DETAIL and DIRECT_WITH_PREVIEW purchase modes. However, to test IN_APP purchase mode and digital bundling functionality, you will need Amazon App Tester. Amazon App Tester enables you to test you IN_APP shopping and digital bundling feature in a production like environment.
Q. How do I get Amazon App Tester?
A: You can get the Amazon App Tester from Amazon Appstore for Android. See details here.
Q. What reporting is available for the Mobile Associates API?
A: Earnings and Payment reports for the Mobile Associates API are available through the Amazon Mobile App Distribution portal. You can view the earning reports based on shipped units, revenue, and net earnings. You can view sales, returns and net earnings for each of your app that integrates with the Mobile Associates API. You can also view this information for individual products that are sold through your app.
Q. How can I check at runtime what features of the Mobile Associates API are available?
A: You can check the available features at runtime by calling ShoppingService.getServiceStatus(..) method. This will result in a callback ShoppingListener.onServiceStatusResponse(..) with ServiceStatusResponse as a parameter. You can use ServiceStatusResponse to
Q: I am using b4a IDE to create android apps. The group using this IDE is considerably large. Can I use your API in our apps using this IDE.?
A: We do not provide specific support for b4a IDE. However, the Mobile Associates API is a standard JAVA library that should work with any IDE supporting Android development.
Q: Is it possible to integrate the API into non-Android devices like the iPhone/iPad? Or is there any way to do mobile affiliate linking for iOS?
A: MAA does not work on iOS. We’ll be sure to pass this along to the product team. You can monetize your mobile website on iOS devices through our standard affiliate program.
Q: Most apps are trying to reach global market. Would like to hear that Amazon is starting to think about how MMA can work in more countries. Maybe even plans to support e.g. Europe & Japan once MMA is working smoothly in USA.
A: Great request. We’ll be sure to pass this along to the product team.
Q: Are there any plans to allow shopping with MA API for digital goods, or is there a process in place for applying for that ability today?
A: Mobile Associates provides the ability to offer both physical and digital goods
Q: Any more detail on using the war file to test receipts?
A: Please see the section on Testing you App here.
Q: Is there an Adobe AIR native extension available?
A: Not currently. We’ll be sure to pass this along to the product team.
Q: Is it possible to interact with wish lists via the API?
A: Great request. We’ll be sure to pass this along to the product team.
Q: If we have sales through our regular website using our regular api and the customer is using a mobile device will we still get the same fees?
A: The standard Associates Program now allows affiliates to earn advertising fees by referring traffic from mobile optimized websites in addition to traditional websites.
Q: Can we see sample apps that are making money with the Mobile Associates API?
A: Please check out the Mobile Associates API site for more information.
Don’t miss out on our next webinar event:
Best Practices: How to Integrate Amazon Maps in Your App
on October 3rd, 2013 @ 10:00 AM
August 01, 2013Peter Heinrich
Following up on the second 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 Amazon GameCircle, including Achievements, Leaderboards, and Whispersync for Games.
Does the developer have access to the GameCircle nickname?
Yes, you can call getLocalPlayerProfile(), which returns a structure containing player id and player alias (same as nickname/username). NULL is returned if the player is in guest mode (they have not logged in). Player id is unique for each player.
When updating Achievement Progress can you decrement it as well or does the GameCircleCient hold onto the latest highest progress value?
Achievement progress is strictly increasing, which means updates must be greater than the current value or they’ll be ignored. Note that you can reset achievement data for draft achievements (those that have not yet been published).
With the update, does GameCircle still support Kindle Fire 1?
Yes. The GameCircle system app must be updated to v1.1_1101110, however. This should have been delivered OTA. On KF2, the GC system app should be v2.5.2500310 or greater.
Can leaderboards/achievements be translated?
Not yet, but localization is in development and will be available in a future release.
Is the same game discovery mechanism on Kindle Fire available on all Android devices as well?
The dedicated Games Tab is built in to the games library on Kindle Fire only. It’s not available on other Android devices.
What is the minimum OS supported?
GameCircle supports API level 10 up to API level 16 on all Android devices.
Is GameCircle available internationally?
Yes, GameCircle works internationally. Players in China are limited to Guest mode for now, due to data storage requirements imposed by the Chinese government, but we will address that in a future release.
Is the old version of GameCircle still supported?
Yes, for legacy games. Games that have been published using GameCircle v1.x will continue to work. If you had a game in development when GameCircle v2.0 was released, you can proceed to publish it using the old version. Since the Mobile App Distribution Portal no longer provides direct support for GameCircle v1.x app whitelisting, however, you must contact us to add or update package name/signature pairs. See the Whitelisting Notice on the GameCircle configuration page for more information.
What happened to the FileSync and BlobSync from Whispersync?
We greatly simplified the Whispersync interface to make it easier to integrate and expand auto-resolution of data conflicts. As a result, we dropped support for the blob and multifile sync options. They were complicated to integrate and forced the developer to manually reconcile data on occasion (or to ask the customer to do so). The new Whispersync requires significantly less integration overhead and provides a better customer experience in most cases.
Can I migrate old Whispersync data to the new format?
Yes, there are two methods on the WhispersyncClient that can help in the migration process. migrateVersion1GameData() and unpackVersion1MultiFileGameData() will download and unpack data stored using the previous version, respectively. They’re only meant to be used by games that integrated Whispersync prior to July 1, 2013. See the Javadoc for more info.
Is there any way to integrate game circle in Air apps?
Amazon provided an Adobe Native Extension (ANE) for GameCircle v1.x, but none is yet available for the new version. We are actively researching an upgrade to the existing ANE, but don’t have an official timeline. Check back here or follow @peterdotgames for updates on the availability of a new ANE. In the meantime, you can continue to the existing extension with GameCircle v1.x for games currently in development.
Where can I learn more about Unity plugin for game circle?
Check out the Amazon Unity Plug-Ins page on the Amazon Mobile App Distribution Portal.
Do users need to login with Amazon account username and password to use the game services?
No, GameCircle now supports a Guest Mode for users who don’t want to log in to an Amazon account. In this case, data will not be synchronized to the cloud or across devices.
Is there a good game to play to check out the features?
There are many great games that include GameCircle features, including well-known blockbusters and high-quality indies. In the Amazon Appstore, look for the GameCircle badge to quickly identify games that use Achievements, Leaderboards, or Whispersync for Games.
Don’t miss out next webinar event: How to Integrate Amazon Mobile Ads and Lift Your App Revenues
on August 15th, 2013 @ 10:00 AM.
July 03, 2013Peter Heinrich
Following up on the first 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 Amazon Device Compatibility and Optimization.
Is it possible to test the compatibility of my existing android app with an emulator?
Yes, you can and should use the Kindle Fire emulators to test compatibility of your Android app. The Kindle Fire emulator consists of:
The Kindle Fire system images provide the additional code needed to emulate Kindle Fire tablets.
Note: We provide ARM and x86 system images for the Kindle Fire emulator as SDK add-ons. If your development computer can run the x86 system images, which are available for all tablets except Kindle Fire (1st Generation), you should use them for faster emulation. For more information, see Understanding the Kindle Fire Emulator.
How does DRM and license validation work in the Amazon store? Can we verify it’s working once the app is live?
When submitting your app, on the Binary Files tab, developers can choose Apply Amazon DRM? If selected, only customers who have purchased the app may use it. If not, your app may be used by anyone without restrictions. To test this once the app is live, sign in to the Amazon store with a different user account (or simply sign out of the Amazon store client) and try to open the app on the device. If DRM is active, your app is protected and an error will be reported.
What versions of Adobe AIR are available? When will new AIR versions become available?
The original Kindle Fire runs Gingerbread and therefore ships with AIR 2.7. The second generation Kindle Fire, including all Kindle Fire HD devices, run IceCreamSandwich and ship with AIR 3.1. Developers that need newer versions of AIR 3 in their apps can do so by leveraging captive runtime.
Is there a low-tech solution to creating a screen-size that will work for Kindle Fire and Kindle Fire HD, like 600x600?
Please see Screen Layout and Resolution for information on designing for the different Kindle Fire screen. The simplest option would be to test each layout on the Kindle Fire emulators to confirm and tweak them as necessary. See Running the Kindle Fire Emulator for more information.
When you say unsigned apk, is that the same as not exporting the apk in Eclipse?
Yes. That is correct. We are referring to an apk not built for release.
Is there a rule, or recommendation about package names in different App Stores? Can they be the same?
Yes, they can be the same.
Can I apply a signature to my app?
All applications must be digitally signed with a certificate. The default signature applied to your app is a certificate supplied by Amazon that is unique to your developer account. If your signing strategy requires that a different certificate be applied, you may do so by submitting a request using the Contact Us form. Please indicate the title of the app for which you are submitting the request.
Is the certificate different from .keystore?
Yes. The type of certificate used by Amazon to sign a developer's application is the same type generated by standard tools like keytool or jarsigner.
Don’t miss out next webinar event: Integrating GameCirle in Your Games on July 25th, 2013 @ 10:00 AM.