In our two previous blog posts, we discussed how XAPP Ads scale for Consumers and Advertisers. The final piece in the puzzle is how we provide scalability for mobile Publishers. Four scalability factors impact them directly:
- Scaling Transactions: How many ads we can serve per second?
- Scaling Implementations: How easily can Publishers implement the XAPP Ads SDK into their apps?
- Scaling Integration: How easily can XAPP Ads be integrated with Publisher’s existing ad serving infrastructure?
- Scaling for Ad Ops: How easily can Ad Traffickers upload and activate campaigns?
As technologists, transactional throughput (in the form of ads served per second) is probably one of the first things we think of when it comes to scale. And this has certainly been a key focus for our team. XAPP Ads provide a rich voice interaction for users that is more complex than standard display ads. There are more discrete transactions per ad and we are handling audio payloads, in addition to images. As a result, our system must scale transactionally across three parameters:
- Ad Request / Response Serving
- Media Distribution
- Voice Recognition
1) Ad Request/Response Serving
We leverage horizontal scalability, both on our application servers and data stores to accomplish this. We have a cluster of application and database servers spread out across multiple data centers that scale up to give us an almost unlimited processing and write-capacity. We rely on scalable cloud providers for this infrastructure.
So far, we have successfully load tested up to 50,000 requests per second. With more CPUs and resources added, we believe we could go to even higher levels, if necessary, and still provide acceptable response times.
2) Media Distribution
XAPP relies on a cloud-based content distribution network (CDN) to deliver the audio and image files integral to the ads delivered on behalf of advertisers. Our CDN is a fast and well-distributed solution for media delivery, providing an approximate 3x advantage over Amazon S3 in delivery times in our testing. We also utilize industry best practices around media encoding and compression.
3) Voice Recognition
We developed proprietary technology, the XAPP Speech Cloud, for deploying voice recognition in a manner that minimizes latency and payload size. This allows us to deliver a responsive speech service even in high-latency environments. Similar to our work on the ad request/response side, we apply horizontal scalability here to ensure that we can handle very high request levels.
When we began building our interactive audio advertising service, we assumed that Voice Recognition was a commodity and that there were multiple partners with workable business and technical solutions. This turned out to be incorrect.
To fill this gap, we built the XAPP Speech Cloud as a highly-scalable and cost-effective Voice Recognition service that works across multiple platforms for discrete phrase sets. We are not Siri and do not aim to be. Instead of accepting open-ended, user initiated input, we have created a reactive user experience (UX) optimized around recognizing specific, prompted inputs. This reactive UX ensures much higher recognition rates and greatly diminishes the frustrations often experienced with ambitious, proactive natural language tools such as Siri. The approach delivers both technical and user experience (UX) scalability.
Transactional scalability is great but we knew that securing ad inventory also required making it easy for audio publishers to get XAPP Ads working in their apps. The starting point for this is having an easy-to-use SDK. The XAPP Ads SDK comes down to just a handful of calls, so integration time is minimal.
This integration can be setup and running in an afternoon for many apps. Of course, we have seen more complex cases and configurations, but this complexity is dictated and driven by needs of the user experience, not our APIs.
Ad Server Integration Also Made Easy
XAPP Ads do not replace the ad server that orchestrates which ads are served and when. Our solution delivers ads when requested by the publisher’s ad server. To make this easy for publishers, we support multiple methods for ad server integration and have already completed integrations with DoubleClick for Publishers, as well as other well-known ad servers. And we are comfortable supporting novel implementations to ensure our customers’ success. We believe this attitude, along with all the factors listed above, make the XAPP Ads solution highly scalable.
Ad Ops was Not Left Out
Finally, we also considered the scalability needs of a mobile publisher’s in-house ad ops teams. These teams are under constant pressure to configure and traffic new ad campaigns and support new formats. The XAPP Ad Manager is a cloud-based point-and-click interface that scales to support publishers and advertisers large and small. Advertisers provide the same file formats as traditional radio advertisements. Ad Ops traffickers simply upload the files and click on a couple of configuration parameters before activating the ad. It only takes about a minute.
Scalability Across All Dimensions
Every engineer knows about the necessity for transactional scalability when serving ads. XAPP addresses these requirements by rapidly managing requests, delivering audio content and processing voice recognition. However, we didn’t stop there. We built the solution to be easy for Ad Ops teams to upload, configure and traffic ads. We also made the consumer interaction model easy enough to understand the first time, while ensuring simplicity for advertisers in ad creation. It is no longer sufficient to focus on transactional scalability alone. You must look at the entire system and ensure all aspects are scalable from both technical and process perspectives. That was our guiding objective with XAPP Ads.