When Amazon recently implemented what it calls "efficiency guidelines" in its Amazon Product Advertising API, the online retail giant took some developers by surprise. The change was meant to limit access to sites that did not send buying customers. However, a change to your code is required to ensure that you receive the correct level of access. Those that didn't make the change were subjected to the lowest limits. For some, that meant lost revenue--both to the developer and Amazon.
The efficiency guidelines, which Amazon describes here, are meant to decrease the load from under-converting websites. In other words, if you don't send enough money to Amazon, don't expect to receive a wide pipe of data. The new restrictions seem fair, but the implementation left some high earners restricted. The reason is that some left their associate tag off of requests. Without any identifier with which to provide greater access, Amazon gave the smallest pipe of data--2,000 requests per hour. For high traffic sites, that just won't cut it.
A PC World article details one developer's struggle:
One website developer who asked not to be named said that during a busy hour, his site might max out with the new limits. His site lets visitors compare prices and shipping times for products sold by a variety of online retailers. Each time a visitor searches for a product, the site queries Amazon using the Product Advertising API for that information.
He was surprised at how Amazon handled this change. Because implementing the new code wasn't required to continue making queries, he didn't notice that he needed to and didn't implement it initially. That means that until he put it in place, Amazon results were turning up for visitors to his site usually only within about 15 minutes after each hour. After that time, if visitors bought products from other sites, the developer would have earned commission from those sites but Amazon would have lost out on a chance at the sale.
The solution is fairly simple: include your associate tag with every call. And Amazon has responded to developer complaints on forums, suggesting that developers who believe they're being erroneously restricted make contact. Like Twitter's move away from basic authentication, a change to an extremely popular API is tough to institute perfectly. There's bound to be fall-out, which lands on the developer first, but is eventually felt by the provider. For Amazon, it's felt as disenchanted developers, as well as lost revenue.
Amazon's approach is meant to maintain revenue by only restricting those who do not convert API calls into sales. The metric used is dollars per hour, averaged over the last 30 days. For each dollar, the developer receives an additional 500 calls per hour, maxing out at 25,000. Those without sales--or who do not include their associate tag--receive the minimum 2,000 calls per hour.