As part of an e-commerce initiative, we are running a stand-alone e-commerce web-shop coupled with a connector to different marketplaces. One of which is Amazon, where we are running both Amazon Fulfilled and Merchant fulfilled programs. We are also using their advertising platforms to advertise our products using the headline search and sponsored product features.
Given that we are using python to perform data transformation, it made sense to look at what was available into existing SDK that could support our use case and on Python boto is the de-facto SDK to use to perform API calls towards Amazon, typically AWS.
One of the first thing that you must consider when dealing with Amazon MWS end points, is that there is quite some severe throttling limits, these limits apply per end point, depending on the type of usage and the scale that you would like handle with the API it might be worth looking into the reporting end point and/or setting up a subscription web-hook.
The Amazon Advertising API is setup in a very different way, it can handle a high volume of load, and for our purpose most of the calls would be to reporting end points, which are done both in an asynchronous manner. For their Advertising APIs their responses are provided in a Gzip format out of their reporting end points.
The Orders end points are composed of multiple subsegments: List Orders, Get Orders and List Order Items.
Getting a list of orders can be achieved using the MWSConnection Object of the boto API such as as in the example above. It is worth noting that European marketplaces use a different API end point than North American one mws-eu.amazonservices.com.
The Inventory end point provides by ASIN the supply quantity of items available in Amazon warehouses, typically for FBA purposes. In Europe, Amazon provides a consolidated view of inventory across all their European warehouses and marketplaces.
The output of which is a dataset providing 6 fields of interest:
Most of datasets that need to be obtained for performance tracking for Sponsored Products and Headline Search are done through the reporting end point of the amazon ads API.
The reporting end point works in an async manner, a request must be initiated to generate a report, this providing a reportId, which can then be used to check on the status of the request, once it is finally not IN_PROGRESS anymore the reports a location can be fetched from which to download the report.
The list of available metrics and dimensions that can be fetched for each type of reports is provided by the API documentation as shown above.
As shown above the key metrics are available either at Ad group or Campaign level.
Amazon offers an ecosystem covering marketplace, fulfilment and advertising. It is possible to extract quite some data out of their API for analysis and reporting purposes. There is some limitation in terms of what can be extracted and not everything you would wish available is or at the desired level of granularity. Yet it is still possible to get some understanding of your core metrics.