How Deliveroo invented Virtual Neighbourhoods in order to grow Paid Search by 166%
Deliveroo is a hyper-local 3-sided marketplace. That means whenever someone orders a meal we have three parties who are going to be involved: the restaurant, rider and the customer.
All three have to be matched with one another within milliseconds, within a few miles of each other, and be served real-time updates.
Being hyper-local isn’t just a nice-to-have when running Paid Search campaigns for a food delivery company. It’s essential. Without ensuring accurate geo-targeting for your campaigns, you will almost certainly be throwing your ad spend away.
Customers order meals from restaurants that are within a few miles of their location. If you have broad geo-targeting applied to your campaigns, there is a very little chance you’ll be able to accurately match the customer with restaurants that actually deliver to their location — most of the time they’ll be too far away.
I joined the Paid Search team at Deliveroo in May 2018, and the team was at a tipping point. We were a relatively small in-house team with processes that were starting to buckle under the weight of the massive growth that Deliveroo was experiencing.
That summer we kicked off the project to lean into automation in a way that we hadn’t done before.
When Deliveroo launches in a new city, it often rolls out in one particular neighbourhood and then expands from there.
If we created campaigns that targeted the entire city, those campaigns would be blasting impressions to a lot of customers who wouldn’t be able to place an order. Yet.
Right now, Deliveroo operates in 13 markets and over 500 towns and cities around the world. We work with over 80,000 restaurants, and every year we add thousands of new restaurants to our platform and continue to expand into thousands of individual neighbourhoods.
When you combine the hyper-local nature of our business and our rapid expansion, plus the strict need for extremely accurate geo-targeting… Well, some challenges emerge for managing Paid Search campaigns.
The end result is an extremely granular account structure, and new campaigns need to be created whenever a new restaurant is added, or when our service expands to a new neighbourhood.
The Turning Point
A month after I joined Deliveroo, our team hit a brick wall. The process for uploading new restaurant campaigns and neighbourhood campaigns just wasn’t working anymore.
We had a backlog of thousands of restaurants that didn’t have any campaigns live, and we could only cover around 40% of the neighbourhoods where we were operating.
Deliveroo was simply growing too fast, and our existing process couldn’t keep up. We had to make a decision…
We chose to halt our normal processes, and we wouldn’t upload any new restaurants or neighbourhood campaigns. Instead, we were going to spend the next 6 months building the foundations for the future of Paid Search at Deliveroo — making sure it would be able to scale with the company’s rapid expansion.
From June to December in 2018 we designed the tools and processes we needed for fully automating our campaign creation and management process, and we made the following decisions along the way:
- We moved the creation of our ad-tech in-house. We knew that we needed to solve problems that were 6–24 months away, build a robust Paid Search technology roadmap and tackle challenges that were very unique to Deliveroo. In order to do this, we felt it was best placed to develop these solutions internally.
- We changed our team structure. We shifted from a semi-decentralised team with European and APAC hubs to a unified Global team. In order to take advantage of efficiencies at scale we needed to be able to replicate our new solutions in every market, and centralising our team unlocked our capacity to deliver this.
- Every solution needed to be scalable and localised. Food delivery is a hugely personal business. How people feel about their local Indian or Chinese restaurant is unique to that person in that neighbourhood. We knew that every solution we created needed to have the robustness of a global stable system, but be flexible to adapt to local markets (and individuals) if needed.
- Nothing would be done manually. We currently have over 850k campaigns, millions of active keywords, advertise in 13 different markets and in 10 unique languages. Everything we do within our accounts needs to be automated (or have the capacity to be automated in the future).
Our business revolves around restaurants, and the first steps of our automation overhaul began with updating our restaurant campaigns.
When I talk about “restaurant campaigns”, I’m referring to specific campaigns that target queries where the restaurant brand is mentioned like: “KFC delivery” or “Burger King delivery now”.
First, we built a robust data feed for every country, which included every bit of information that we would need in order to build automatic campaigns and keywords.
This data set included restaurant name, location information, opening and closing hours, main cuisine type, country, city, neighbourhood, and so on. We then fed this data directly into our campaigns to automate brand campaigns at scale.
The longest part of this process was building the templates for how our campaigns, ad groups, and keywords would be structured. Every market required their own templates to take into account local languages and market nuances.
But once the templates were built, we were able to scale this solution our to our markets very quickly. Within 10 weeks we had all 13 markets live.
We didn’t have any concerns regarding the location targeting for our restaurant campaigns when we started to build out the templates. When we created our data feed, we included all the longitude-latitude coordinates of each restaurant in our database. So applying geo-targeting accurately was relatively simple. We built a script to automatically apply the correct longitude-latitude coordinate with an appropriate proximity target. Job done.
Inventing our Virtual Neighbourhoods
Once we had restaurant campaigns up and running we shifted our attention to automatically generating campaigns for when we launched our service in new neighbourhoods.
This was to improve the automation for Brand, Competitor, and Generic campaigns, not just campaigns for specific restaurants. So, for these campaigns, we would be targeting search queries that didn’t mention specific restaurants, like “Deliveroo Newcastle”, “Order takeaway online”, “Food delivery”, “Order Pizza”, etc.
While our restaurant campaigns had a single longitude and latitude point which allowed us to build a geo-targeted radius, our neighbourhoods didn’t have that — there was no single “point” we could draw a radius around.
As a result, the primary challenge was being able to apply accurate geo-targeting for new campaigns when we launched in a new neighbourhood.
Remember, we couldn’t just target the entire city. Deliveroo might only operate in a single neighbourhood or in a few selected neighbourhoods. Targeting the city would be very inefficient.
We had our brief:
- We needed to calculate the boundaries of a new neighbourhood.
- The geo-targeting that we applied needed to work across all of our markets. We couldn’t just use city or neighbourhood names as targeting because names are not unique and we couldn’t guarantee accuracy. Therefore the best option was to use some sort of longitude-latitude coordinate with a proximity radius.
- This all had to work automatically, with no manual steps.
We spent 4 straight weeks trying to figure it out. Then it hit us.
In many ways, we had already done a majority of the hard work. We had already built a restaurant data feed. And in this feed, we knew exactly where every restaurant on Deliveroo was in the world.
We created a series of Google Apps scripts to group together the coordinates of every restaurant within a given neighbourhood. Next, we developed a formula to calculate the mid-point of that group of restaurants and determine the distance between the furthest apart restaurants in that neighbourhood.
These calculations gave us 2 important pieces of data:
- The first was a longitude-latitude coordinate that would sit at the center of a new neighbourhood.
- The second was the radius that we needed to draw in order to ensure full coverage for all of our campaigns in this neighbourhood. We then applied these formulas to every neighbourhood campaign.
In short: we are able to use our own restaurant location data to build virtual neighbourhoods by matching them with an external data set. Then we applied these geo-targeting criteria to our campaigns.
Virtual Neighbourhoods were born — we could map our restaurant data to individual neighbourhoods, and build our own neighbourhoods maps.
These Virtual Neighbourhoods are dynamic as well. As we add or reduce the number of restaurants within a neighbourhood, our spatial calculation of the neighbourhood changes.
Fun fact about creating the formulas to calculate the radius for the virtual neighbourhoods: we had to create slight adjustments for countries that were further away from the equator (like Australia) because of the curvature of the earth.
Once we implemented this solution, we were able to roll out automated brand, competitor, and generic campaigns across every neighbourhood around the globe where we operated.
Even better, we would also automatically create new campaigns whenever we launched a new neighbourhood without needing to take any manual steps.
Our automated restaurant campaigns launched between January — March 2019 and following them, our neighbourhood campaigns were launched from April — Jun 2019.
Looking back over the last 12 months, we have been able to scale Paid Search by 166% YoY with an improvement in efficiency.
And the best part, from my point of view, is that all of the growth has been generated by non-branded campaigns.
Conversion Growth (+166% over 12 months whilst CPA remaining flat)
Virtual Neighbourhoods have given us the ability to ensure that we have our campaigns running wherever we operate as a business, with no manual steps blocking our continual coverage of new markets.
This has also impacted our Search Share of Voice when compared with our peer set. Our current Search Share of Voice is 5x that of our peer set and we are the Search Share of Voice leaders in every market where we operate.
Through automation and building technical solutions specifically for our needs, we have been able to significantly scale conversions driven by Paid Search at Deliveroo. We have seen enormous growth over the last 12 months, and we have also created the technical foundations to allow us to grow sustainably in the future.