Platforms and APIs How to Open Up Your Digital Marketing
As open application programming interfaces (APIs) become the standard mechanism for interacting with software platforms on the Internet, businesses are now offering them as another way for their partners and customers to interact with their brands. We take a closer look at how to build platforms and APIs that are right for your business, and outline the fundamentals of what constitutes an effective API for a platform.
- Platforms and APIs How to Open Up Your Digital Marketing
- How to build a robust platform
- Enabling the platform with excellent APIs
Influential tech companies like Facebook, Twitter and Google seem to have found a winning formula that has helped secure their elite statuses and multi-billon dollar valuations. They have proven that, by relinquishing a little control over their data and opening up their software to the public, completely new and innovative business channels can be created to expand their client bases.
The adoption of cloud computing and software as a service (SaaS) platforms has the ability to remove the complexity from traditional in-house platforms, greatly increasing existing and new companies speed-to-market time. This, in turn, will increase the ever-growing ecosystem of platforms and open APIs. So the question is no longer whether you can afford to leverage digital marketing platforms and APIs the question is, how can you afford not to?
Groundbreaking companies like Amazon, salesforce.com, Netflix and eBay have pioneered a way to innovate quicker than ever before. By embracing open APIs and exposing their core business functionality and data to the technology community, an entire new ecosystem of applications and integrations has emerged. Facebooks authentication API, for example, has become the de facto standard for logging in online. Best Buy, one of Razorfishs large retail clients, has embraced Open Digital ServicesSM (ODS) such as BBYOpen, a platform that allows consumers to freely access product information, store details and reviews driving endless possibilities for re-using the data. The resulting Web sites and apps all drive business back to the retailer.
Indeed, the open API ecosystem is thriving and allowing businesses and developers to create smarter experiences. Companies like Google provide a myriad of open APIs that can be used as a foundation toolkit to make any technology smarter about how it approaches its customers. Ford, for example, is experimenting with Google Prediction APIs to create a more energy efficient commute, optimizing the power train based on the individuals driving behavior.
Its not an exaggeration to say that open APIs are becoming the standard mechanism for interacting with software platforms on the Internet. According to ProgrammableWeb.com, the growth in APIs over the past few years has been exponential. There are approximately 7,000 APIs so far in 2012, up from just 3,000 in 2011.
In order to benefit from this growth, two things must be considered: the platform and the API. Todays platforms come in two primary varieties. The first is on-premise solutions that focus on specific industry verticals, such as sales, marketing, communication, content management, ecommerce and many others. On-premise solutions are typically built using commercial or open-source software, and contain a myriad of one-off custom solutions. They often struggle to provide economies of scale and can potentially limit reuse of investment in technology solutions. Many of the challenges of our clients existing platforms are due to organic growth in scope over the course of years, as new components have been tacked on by multiple agencies, without strong governance models behind platform development. Additionally, these platforms arent always built on solid technology architectures that are extensible and scalable for the ever-changing, functional requirements that are a result of ongoing refinement of business priorities.
The second variety, SaaS-based platforms, include Facebook, salesforce.com, Demandware, Twitter, YouTube, Google, Pluck, Bazaarvoice and many others. The pay-as-you-go licensing and pricing model of SaaS platforms, along with outsourced development, support, and maintenance resources, is quite attractive to most companies especially as the risk of experimenting with a new product or technology is reduced, and the speed-to-market time accelerates exponentially.
APIs, formerly known as software development kits (SDKs), are nothing new to Web developers, who have long been designing Web sites and applications using software product APIs. Service-oriented architecture (SOA) integrates these APIs into technology solutions. The difference now is that both software product companies and organizations whose businesses are not software development or IT are offering these APIs, as another way for their partners and customers to interact with them.
No platform is complete without a robust API. If you dont believe us, consider Google, which was initially criticized for introducing the Google+ social platform without a developer API from the beginning. The company corrected this within a few months and, once the API was available, Google+ gained traction as developers started integrating the platform into third-party Web sites. However, compared to Facebook, Google+ still lacks a robust development API for creating apps, which we feel will severely limit its adoption and growth.
Now lets take a closer look at how to build platforms and APIs that are right for your business.
What makes a platform effective? First and foremost, consumers of the platform and its services need to find the platform useful. Platforms can be implemented to meet specific business goals typically to increase the pace of growth, or to reduce ongoing costs. However, there are secondary, yet equally important, general attributes that a platform must possess in order to be successful:
Depth vs. breadth of the solution. Some platforms claim to offer a wide variety of functionality. While these features may be broad, they are also thin. Our recommendation is to choose platforms that are focused in scope, while providing deep features to support that scope. For example, if you are building a content management platform, focus first on all possible features related to managing Web, mobile and social properties. When there is sufficient depth in the platform offering, add additional features, such as ecommerce, user management, targeting, CRM and community. Providing all these features upfront will make the platform very complex to build, roll out and maintain and result in a platform that is not comprehensive enough for any one specific business function, which could drive users of the platform to find alternative technology solutions. So, its clear that the old adage, jack of all trades, master of none, definitely applies to platforms and should be avoided.
Product roadmap. Another sign of quality is a solid product roadmap that focuses on depth first, and then broadens the scope incrementally within subsequent releases of the platform. When choosing a platform, ask for a detailed walkthrough of the product roadmap.
Adoption by all stakeholders. The platform should be accessible to the end user (who is essentially the recipient of services), the business user (who is managing and using the platform) and the client/agency developers (who are integrating the platform and building solutions on top of the platform and its APIs). Often, great products and technologies arent adopted due to poor user experience at some, or all, of those levels.
Flexibility and extensibility. We have all witnessed the magic of sales demos quickly dissipating when the reality of implementation sets in. Because each individual business and client is different, it is extremely rare to see products and platforms that dont need any customization or integration. Ensure that the platforms underlying technology architecture and infrastructure is extensible and scalable in order to meet both your current and future needs. Platforms that are designed to allow customization (via APIs and other mechanisms) are often the ones that succeed.
Security and privacy. Any product or platform should have security, compliance and privacy concerns accounted for during its design and construction phases. This should not only encompass user, data and content privacy, but also storage and transmission security. Additionally, a good platform should have periodic security and compliance audits that cover both infrastructure and software development processes. All local security, compliance and privacy laws should be factored in before global deployment because different countries have their own requirements.
Availability and performance. A platform is only effective when it can be used efficiently. In todays world of high-speed Internet access, reduced patience, and increased business productivity, high performance solutions are a necessity. Availability is often a requirement driving a higher level of uptime, with increased cost and complexity. Nonetheless, adequate backups and disaster recovery processes should also be implemented and tested periodically.
Documentation and training. A good platform should provide abundant, clear and consistent documentation that covers not only business users, but also developers and administrators of the platform.
Support and maintenance. In addition to self-service documentation and training courses, the platform should also provide robust support for service-level agreements (SLAs) (tier 1, 2 and 3) that is responsive to the trouble tickets and issues raised by consumers of the platform. Ideally, the platform should also provide professional services, in case the client needs expert assistance.
Licensing and pricing. Competitive pricing is always desirable, but a flexible licensing model is even more important. Traditional enterprise software vendors have complex licensing models that are inflexible and require a large upfront commitment that often stifles innovation and creativity. Cloud technologies and SaaS platform models are driving flexible, pay-as-you-go licensing and pricing, which are less risky for clients due to reduced upfront commitments and the absence of long-term vendor lock-ins.
Opening your data to the community via open APIs is no easy undertaking. Razorfish has helped clients build open APIs since the late 90s, back when we helped MLB.com build its open video platform. Our technology community has been thriving on the uptick of open APIs in the past few years.
What constitutes an effective API for a platform? Here are some fundamentals:
1. Build your business for SOA
When developing new applications or extending existing ones, consider employing service oriented architecture (SOA) principles and technologies. Thinking about your business in terms of services allows you to more efficiently open up its functionality as an open API later.
2. Implement robust security
As APIs are invoked over the Internet, without the containment of a closed private network, security becomes a critical concern. Privacy is becoming a common discussion topic as social platforms grow and social/community functionality is integrated into more applications. At a minimum, we recommend implementing SSL for transmitting sensitive information, such as usernames and passwords. We caution against sending personally identifiable information (PII) in plain text always encrypt using a security algorithm. Implement an authentication/authorization scheme such as the open standard OAuth 2.0 to manage access to your resources. Finally, make sure you keep end users and developers privacy concerns in mind while designing your API and sharing data.
3. Protect from abuse
4. Design effectively
APIs, like any software, should be carefully designed for the use-cases it needs to support. From an API protocol perspective, avoid SOAP, because of its complexity and inability to integrate client-side (directly from a browser, for example). Write RESTful services based on JSON or XML, since theyre easier for developers. One of the biggest complaints we hear from developers is that ever-changing APIs (like Facebook) require constant refactoring by developers. Therefore, one of the goals of an API should be to keep the API interface constant, even when the underlying implementation could potentially change. A versioning mechanism to handle future API changes should be a key design choice, not an afterthought. Finally, its important to name your APIs, parameters and codes in a userfriendly way, rather than in a system-friendly manner. Leverage rigorous, automated unit testing to enforce API quality, as well as the API-level compatibility between platform and API releases.
5. Document comprehensively
Lack of consistent and relevant documentation can hamper even the best API adoptions. Sample code, including requests and responses, should be included in the documentation, and the documentation should clearly explain authentication and error-handling processes. Search and filtering parameters should be specified in detail, as should any applicable information on quotas and rate limits. A growing trend is to provide interactive documentation like test beds for issuing live requests and obtaining real-time responses. This allows developers to ensure that their API interfaces are working correctly, and easier troubleshooting during development.
6. Keep it high performing and scalable
Always keep performance and scalability in mind while designing your API solution. Leverage cloud infrastructure for scalability. Determine if your APIs need globalization, and reduce geographic-driven latency by utilizing geo-location-based delivery of API services. Ensure that adequate caching techniques are used to increase API performance. Utilize quotas and rate limits for users and developers, and employ throttling techniques to manage API usage.
7. Keep an open mind
Build the right governance processes to listen to your customers and adapt your APIs to their needs. Build a feature roadmap and continuously re-release your APIs, including both bug fixes and new feature releases. This will build a vibrant developer community and drive the API adoption required to drive the marketing goals behind the APIs themselves.
8. Employ comprehensive analytics and monitoring
Implementing a robust analytics and monitoring solution on top of your APIs is important for operating your solution. A good measurement framework not only measures who is using what, but can also be used to monitor availability and response times of the APIs. This can ensure that your APIs SLAs and compliance requirements are satisfied.
There is a large ecosystem of companies that provide solutions for the technical complexities of open APIs. Just to name a few that assist in API management:
- Companies like Layer 7 and SOA Software have expanded their venerable SOAs and Web services management capabilities to encompass API management.
- Relatively newer Web 2.0 companies, such as Mashery, Apigee, 3scale and Managed Methods, focus solely on helping their clients develop and manage their APIs.
- Interestingly enough, some companies, such as WebServius, Kasabi and Infochimps, only specialize in managing data-oriented APIs.
- Products including API Axle and varnish apikey are open source and attempting to compete with commercial offerings.
Keep in mind that the above technology solutions focus on the management and operations of APIs not the development of the platform or the APIs themselves. Services generally offered by these companies range from API management (registration, key management), to usage throttling, API versioning, analytics, and many other key functionalities required to effectively open an API to the public and manage it over time. The work to actually build the platform and develop the API services is still a function that clients and their agencies need to undertake.
In summary, opening APIs can be an extensive undertaking that includes framing your business goals and determining the required APIs and supporting data. As weve explained, technology challenges should not be underestimated, especially because they can quickly drive up the cost of a solution. Defining your APIs will remain a challenge, but we at Razorfish have thought hard about how we can help our clients mitigate the latter challenge.
- Adam DuVander, 5,000 APIs: Facebook, Google and Twitter are Changing the Web, ProgrammableWeb.com, February 6, 2012.