Design for Analytics: Going Beyond API Reports and Trends
Analytics play a crucial role in ensuring the success of API programs. But analytics to glean insights and improve an API product don't happen by accident. Are you designing for analytics? Are you considering the insights possible from the unique perspective of key links in the API value chain - API provider, developer, app, user?
I joined Brian Pagano & Kumar Srivastava of Apigee recently for a discussion of designing for analytics. The video is here. And below is an excerpt and sneak preview of an article I'm writing. The full story will be available on accenture.com in the coming weeks.
API Analytics: Design for Analytics
Accenture’s 2013 Technology Vision identifies “Design for Analytics” as a key principle in using analytics to uncover critical business insights. Accenture research finds that half the time companies lack the "right data” needed to answer critical questions. “Design for Analytics” starts with the business questions, and then designs the gathering of data to feed into analytics to supply the answers. API Analytics applies this principle to ensure the success of an API program.
The API as a Product
Today’s APIs (less well known as Application Programming Interfaces) are business-level artifacts: the channel to scale your business, elements to improve innovation and agility, and even a representation of your brand. Analytics plays a critical role in ensuring the success of APIs by providing the necessary insights to assess its value, measure its success, and identify how to improve performance.
API usage is the core driver of the success of any API program. API Analytics looks at APIs as a product – a key mindset to adopt. Thinking of the API like a product engenders related questions: is it the right product for its purpose? Is it functioning the way it should? Are people using it in the way it was designed and intended to be used? Is it easy-to-use and differentiated from other API products?
To address these questions, API Analytics goes beyond traditional trend and volume reports that only divulge “what happened” and answers more mission-critical questions such as “what is happening” and “why.” For instance, early detection of low API volumes, combined with visibility into whether the problem stems from IT issues or from confusion due to poor documentation, allows for more speedy and effective resolution before the problem becomes widespread.
API Analytics delivers the insights to improve the API product in terms of design, functionality, support, and offered terms in order to achieve program success.
Start with the Insights
“Design for Analytics” starts with identifying the insights needed to guide a successful API program.
Insight into “what makes a good API product” varies based on the perspectives along an API value chain – including perspectives from those that design and operate the APIs, as well as from those application developers (better known as app developers) that use the APIs.
The API Product Manager oversees an API product and needs to meet certain business goals. While the goals themselves may vary— from increased efficiency, to sparking innovation, or pure monetization – a common thread is that success hinges on making the API product appealing to the consumer. For example, it should make things easier for the consumer and be something the consumer wants to use – and re-use.
This raises questions about who is the end consumer, in other words who are the app developers who build the APIs into applications. Are they satisfied? What types of applications are they building? While answers may start with the traditional, fixed reporting on volumes and trends that serve to identify popular APIs and heavy users, however these insights aren’t enough – only speaking to “what happened.”
Machine learning assists in the real-time detection of access patterns defined by the timing and ordering of API calls an application makes. Consider the example of an online store where there is a specific ordering of API calls: catalog, shopping cart, account, shipping, payment, order. Access patterns that deviate from this ordering may signal incorrect use. Or a pattern that accesses the catalog in quick succession may indicate a case of data extraction. With this insight the product manager can determine whether to disallow this activity or to promote it as part of an opportunity to monetize.
Understanding “what is happening” and “why” helps the product manager get a holistic view of the business effectiveness of the API and take the appropriate proactive action.
On the API Operations side, IT focuses on keeping APIs running and meeting service level agreements (SLAs). This focus requires real-time insights to troubleshoot performance and security issues, and also long-term insights for capacity planning.
Like with the product manager, IT operations can leverage machine learning to identify events and patterns that are undetectable by fixed reports or human inspection. However operations have specific need for speed: they must quickly identify issues, troubleshoot root causes, and apply a fix to minimize performance degradations or even outages.
For example, suppose there is an unexpected surge in API volume. Insight into the context helps determine the right response: If the calls seem suspicious, request re-authentication, mask sensitive fields, or block access altogether. Or in the case of legitimate use, there is a choice whether or not to scale the backend systems to meet the demand depending on if the traffic is from test systems or from production systems.
App developers are the direct consumers of an API product. They determine whether to use an API within their applications if they are convinced that the API offers worthwhile functionality, is reliable, and is easy to understand and to use. Otherwise, the API consumer may switch to another option or forgo the API altogether.
For better insight, the API consumer and provider need to help each other. Consider differentiating an API product by offering app developers direct visibility into performance and availability and explicit notification of issues or degradation. This insight helps app developers rule out provider issues in troubleshooting their apps.
In return app developers can collect error logs, communicate use cases, and embed the capability into the app to trace an API call from the deployed app. Working together allows the API provider to offer better support and quicker resolution of issues.
About the Author
Teresa Tung is a senior manager within the Software Architecture Research Group at Accenture Technology Labs. Teresa and her team are responsible for taking the best-of-breed next-generation software architecture solutions from industry, start-ups, and academia, and for evaluating their impact on Accenture’s clients through building experimental prototypes and delivering pioneering pilot engagements. Recently Teresa is focused on developing Accenture’s API Management capability. As part of that work Teresa has worked alongside Apigee on a number of activities include business strategy, capability development, and client pilots.