As a Location as a Service (LaaS) platform, our satisfaction comes from enabling developers and companies to build awesome products that make the world a better place. The FoneSense app, is easily one of our most impactful use-cases to date. This app turns a user’s phone into an audio billboard and rewards them when their phone rings or they receive an SMS.
FoneSense is an Irish start-up that is changing mobile advertising. Brands can reach their target consumers and turn them into brand ambassadors, while at the same time rewarding them with coupons, exclusive content, phone credit or donations to charity.
FoneSense needed to know the approximate location a brand message was broadcast for internal analytics and provide location specific advertisements. In the process they wanted a solution that didn’t drain the consumers battery and also returned good location.
In their processing engine, one of the stages is adding the location to the broadcasting record. They already have the Cell ID, LAC, MNC & MCC. All they had to do was make a web service request to the Location API, and get the result.
“It’s truly a painless experience, it’s really straight forward to use.”
All broadcasting records now are location tagged and ready for intelligent processing by FoneSense’s algorithm-rich backend. They are now able to profile and target users accurately adding a whole lot of value to their Advertisers.
“We looked at a number of different services and found the best in every way was Unwired Labs, based on results, coverage, price and performance.”
As an API provider, we believe reliability comes first. Thousands of developers and companies on our platform use our service for non-trivial use cases and we do our bit to ensure high availability.
As a responsible company, we believe transparency in our operations comes immediately after reliability. Ask any customer and they’ll vouch for our honesty in all communications with them; whether it’s about accuracy estimates or system status.
Today, we’re going one step further to achieve this by launching a API availability dashboard that displays the real-time status of our API endpoints. We’ve integrated it with our internal monitoring tools so anyone else can view the status of our API in real-time.
You can also subscribe to the RSS feed or follow the twitter handle @unwired_status for notifications.
As always, please let us know what you think with a comment!
As a startup, adding high-availability can be both time consuming and expensive; two factors usually more critical than high-availability itself. Like most startups, we bootstrapped on AWS with an app server, a DB server, no replication or backups and a few Cloud Watch alarms.
As luck would have it, we had no major down-times and this scaled easily to our first 100 users. Even at this scale, we couldn’t sleep too well at night, knowing that a down-time would affect a lot of critical services relying on our API. One day, we decided enough was enough and set out to build a good, solid infrastructure. Our team put in place a cost-effective (opinions welcome here!) solution that comprises multiple solutions, some of which can take minutes to configure, and others days.
Here’s an extremely brief overview of what we did:
We setup a server outside our main infrastructure provider that runs Nagios / Icinga. It monitors all services (API health, CPU, RAM, etc) on all hosts. It also calls us if there’s something critically wrong with any service, so we know about it right away.
- Load balancers, and many many more instances
To scale requests on our primary endpoint, we added more App servers, replication and daily back-ups in different physical locations / data-centers, and put them behind load balancers. For our servers on AWS, we used their load-balancer. For others, we deployed a reverse-proxy using HAProxy to achieve this.
- Multiple end-points
Our API serves customers world-wide, and it made sense to launch similar infrastructure in multiple locations. All it took was rock-solid replication (with alerts if it fails), fast DNS servers and a little more money. We were also careful to pick different data-centers for each location, to decrease risk of downtime due to hardware failures. This was a win-win for customers because it reduced latency for them and us, because the load on the primary endpoint was lesser.
- DNS-based Failovers
Another win for a multiple end-point architecture is the ability to reroute requests from one endpoint to another, in the event of down-time, with just a DNS change. With Cloudflare as our DNS provider, and per second health-checks by CloudRoutes, we could reroute requests instantly (again, via CloudRoutes), and with zero down-time. DNS time-to-live doesn’t matter because our servers are behind Cloudflare’s reverse proxy; it’s our IP that changes, not theirs.
- Keeping track of logs
There were so many things happening in our systems – malicious requests, slow requests, buggy code – that weren’t very visible. Then we found a great logging solution. All system and API log files are shipped to this logger, email and web-hook alerts are created based on simple searches.
We can’t stress enough on this one! From having someone responsible for code-review before pushing it to production, to drawing straws on who would get the first phone call if there was a problem after hours, we spent sometime putting SOPs down on paper and on an internal wiki.
The industry standard seems to be 99.95%, but when thousands rely on our platform for non-trivial use cases, we think 100% availability is pretty darn important.
We have launched new endpoints in Asia (Singapore), USA West (San Francisco) and Europe (Amsterdam). Customers and developers in these regions can now enjoy low-latency access to our API. Along with the existing endpoints in USA East (New York) and Europe (Ireland), this launch increases the count of our global endpoints to 5.
The URLs to access each of our endpoints are listed here.
We’re excited to announce the Street Addresses (or reverse geocoding) feature on LocationAPI. With this launch, you can now request a physical street address along with the geolocation result.
To request an address, add the “address” parameter to your JSON request and set it’s value to “1” (without quotes). Please refer to the illustration below:
You can try this out live on our API page here. Happy locating!
We’re happy to launch an update version of our API v2.
Major changes include:
- Support for LTE technology with about 350,000 cells from 3 new data providers
- Reduced server response time to under 15ms
- New “radio” parameter that supports GSM, CDMA, UMTS and LTE cells
Please mail in your feedback to contact[at]unwiredlabs.com; we’d really appreciate it!
Of the twenty or so metrics we monitor at Unwired Labs, the Karma metric is the most important one.
What is the Karma metric, you ask? Embarrassingly simple, really. It’s our name for successfully serving a request to a customer – in our case, successfully geolocating a request.
And Why is it so important? Because we believe in Karma. Every time we geolocate a customer’s request, we’re helping them help someone find their way in this world. And in time, we hope that means more requests from these customers, and at times, from their customers.
And it’s paying off.
Over the last 60 days, our Karma rate has increased from 83.11% to 95.26%. That’s 95.26% good karma. And about 12% lesser bad Karma than 60 days ago. Incidentally, our user base and revenue have grown at a much faster rate.
What’s your Karma metric? Figure out what’s most important to your customer, quantify it and there you have it! Do leave a comment with your thoughts!
In many ways, 2013 was the year that defined us. Here are some highlights:
- We started as a Cell Tower data aggregator supplying to other LBS companies
- We pivoted from aggregating data to providing an affordable API for developers and companies
- Our database grew from 2 million to 43.7 million cells in the last year
- We reached a 3 million API requests per day milestone, and,
- We hit the 6500 users and paying customers mark
We’d love to hear about how your year went. Do leave us a comment!
Oh, and PS: from all of us at the Unwired Labs’ LocationAPI team, here’s wishing you a happy new year 2014! May this be your best yet!
Our 6500th user signed-up yesterday! That’s not all, we also reached 3 million API calls in the last 24 hours! This from just 100 users and 5000 API calls back in March!
We’d like to thank you, dear users, for getting us this far! We’d also like to thank Thomas Edison’s advice that helped us through tough times:
The three great essentials to achieve anything worth while are: Hard work, Stick-to-itiveness, and Common sense.
Thomas A. Edison