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
Pre-register here!