How to convert customers from third-party delivery to first-party

November 8, 2019
Abhinav Kapur

I’ll be frank. If you’re looking for an easy answer, there isn’t one. Converting guests from third-party delivery requires some risk and digital-marketing know-how.

The reward? Better profits and more customer data. At the end of the day, aren’t those the main objectives when it comes to restaurant marketing?

Regardless, the key is to never stop fighting.

Grubhub, DoorDash, Uber…they’re all “nice” partners, in theory. But underneath all the talk of incrementality and helping brands participate in the growth of digital ordering + delivery, they’re waging a continuous battle for your guests – the heart of your business.

Their marketing engines never stop.

The only way they win big is by locking-in guests who should be ordering or visiting direct. The only way they create lock-in is by using the order data to optimize the guest experience. And by optimizing the guest experience, they further force restaurants to compete inside their marketplace for what is now their customer. Isn’t that the biggest signal from Uber Eats entering the ads business?

If you’re still reading, welcome!

High-level ways to create native platform lock-in

To convert guests from third-party delivery, you need to create platform lock-in. You have three options:

  • Price – menu prices on your native platform are cheaper than on third-party platforms (phrased another way: raise your prices on third-party delivery)
  • Scarcity – your best sellers or favorite items are only available on first-party
  • Loyalty – your loyalty program is fully integrated with delivery so guests earn points / rewards with every order

You can (and should) build towards at least including two of these. One is good, but two hammers home the incentives for favoring your native platform.

Before diving in, a special shout-out to the following, who heavily influenced our thinking:

  • a newsletter subscriber I met at a conference in September (yes I have been thinking about this for that long)
  • Moe’s Southwestern Grill, who lists brand specialties exclusively on their first-party menu;
  • and El Pollo Loco who raised prices across all third-party delivery platforms.

Here’s a side-by-side of native vs. third-party delivery prices for an El Pollo Loco location in Houston, TX:

The message is clear: the cost for an El Pollo Loco guest ordering through third-party delivery is a 25-30% tax on core menu items. And since Uber Eats charges 30% per order, the restaurant is essentially passing off the entire cost to the guest.

For this post, we’re only focusing on scarcity, but you can certainly run it on pricing as well. The ad copy / messaging will change, but the methodology for selecting initial test locations and creating your Facebook audiences / guest targeting should still be applicable. It’s also the easiest way to isolate the business impact, and requires minimal marketing chops.

Now onto our experiment.

An overview of the experiment

Here’s the tactical step-by-step outline of what you’ll be running. Please don’t be intimidated – every step is straightforward.

  1. Identify your brand’s top sellers / fan favorites
  2. Pick the locations on which you want to run this test
  3. For those locations, remove your top sellers / fan favorites from your third-party menus so they only appear on your first-party platform
  4. Update your website so prospective customers for those locations know that they can only find your favorites on your direct ordering site
  5. Design your Facebook / Instagram ad copy advertising that fan favorites for those locations are exclusively on your native channel
  6. Use Facebook Ads Manager to target customers in your delivery zip codes for your test stores
  7. Measure impressions, click-through rates, and conversions over a 3 to 6 week period
  8. Keep an eye on third-party delivery volumes – it’s OK if they dip, as long as it’s offset by an increase in first-party volume
  9. Measure conversions and ROI
  10. If it’s working, roll out to some more stores and test again. Keep an eye on performance. ROI doesn’t have to be the same as your initial test, just “good enough” (you should notice the impact in the P&L and decide from there).
  11. Monitor performance of the first batch of stores. What does retention look like? Are guests churning back to third-party? If retention is good, store-level profitability should grow over time.
  12. Rinse + repeat until you’re live across all stores

As I said before, there are no easy answers. You are fighting (“partnering”, lol) with companies that are wantonly subsidizing the true cost of delivery with their treasure troves of VC funding.

Are you ready for this test?

Must haves

  • At least 5 locations
  • At least one third-party delivery platform
  • A native ordering or loyalty platform
  • A digital marketing person or team that is ROI-focused and good with data
  • Comfort running campaigns via Facebook Ads Manager
  • Zip codes in your delivery area for each store
  • Access to guest data from your first-party platforms (may have to be requested as some don’t make it readily available…not sure why since it’s your data). This includes first name, last name, phone number, and street address.
  • $500 – $1,000 for a first test (budget can vary, but doesn’t have to be huge)

Nice to have

  • A Facebook custom audience of existing delivery customers (makes targeting more precise and can form the basis for lookalike audiences)
  • A restaurant CRM (dramatically simplifies calculating conversion and ROI)
  • Majority corporate vs. franchise ownership (makes it easier to test when you don’t need someone’s permission)

Bikky Burger Barn

I’m going to use my own dream concept to illustrate how I’d run the test and what the results can look like.

Let’s assume I run a trendy fast casual concept called Bikky Burger Barn. We’ve got 10 locations around NYC (across all boroughs, not that fake ass “only Manhattan and select Brooklyn neighborhoods” nonsense), we have a few all-star dishes, some reasonable performers, and a few that don’t do so great, but I hold onto them anyway.

Here’s how my business currently shakes out:

I got a good business, and my all-stars are the the Bikky Barnyard Classic (bacon and eggs on an Impossible burger), our classic Masala Fries, and our Cinnamon + Turmeric Lassi (our Indian twist on a milkshake).

My team works too damn hard and my product is just too good for a 10% (at best) profit margin on third-party delivery. I have a hunch if I move these best sellers to my native site – where I can ensure a quality experience – that my guests will follow.

Now my financials are in a spreadsheet, but you can most definitely access yours from your POS. If you’re running on Toast, here’s how you can figure out which locations are a good fit for the experiment:

Once you open this report and select all locations, Toast automatically ranks them by sales over your specified time frame (I like at least 3 months of data):

actual figures have been obscured to protect the innocent

Bikky Burger Barn has 10 locations – isolating 2 of them should be enough data to start (20% of your locations may be too much depending on your size, but as a smaller brand I need a larger % in order to discern signal from noise).

I don’t just want to look at overall sales though – I need to also take into account the mix of those sales. I want two locations that rank in the middle relative to my other locations, but also have relatively high third-party delivery exposure.

Here’s how they stack up based on these two criteria:

I’ve highlighted Great Kills, Williamsburg, and Bed Stuy. They’re all middle-of-the-pack and have high-enough delivery exposure to warrant this test.

There’s other nuance we can parse out as well.

I could just focus on Williamsburg and Bed Stuy because they’re both in Brooklyn. Sticking to the same geography would make my website and menu updates, ad design, and zip code targeting on Facebook easier.

Or I could leave out Williamsburg since it has the second-largest third-party delivery exposure. Testing where the stakes are lower might be a safer bet.

At a minimum though, I’m definitely leaving out Port Richmond. It ranks in the middle on sales, but just doesn’t do enough third-party delivery business relative to the other locations. Any testing here just wouldn’t make a big enough impact to call this test a success or failure.

I’m rolling with Williamsburg and Great Kills.

Now that I have my menu items and locations picked out, I can get started on the marketing piece.

Build your audience

There are two ways to build the audience – with Facebook’s help, or something more advanced / precise.

Use Facebook’s help for maximum reach and when you don’t have your own data. You’ll have more impressions, but potentially lower conversions (that’s the trade-off when you’re not directly targeting folks that already like your brand).

Use a custom audience when you already have some guest data (check your native ordering or loyalty platform for email, phone, and zip codes). You can directly re-target folks and also build a lookalike audience to target others like your existing customers.

Shameless plug: as a Bikky customer, you’ll already have the data aggregated in one place – across POS, loyalty, and delivery. To build a custom audience, you just need to export the data from your Bikky dashboard and upload the CSV file to Facebook.

Quickly creating a saved audience

For this, we just need the delivery zip codes for our test stores. If you’re not sure, you can pull it from your various third-party delivery dashboards.

For Great Kills, we’ll go with 10306, 10308, 10312, 10314, and 10305.

a nice spot off hylan boulevard, right by the beach

For Williamsburg we’ll use 11211, 11249, 11206, 11222, 11205, and 11237.

BK is big so we gotta keep our zone manageable. just make sure we’re targeting as many hipsters as possible.

We have our zip codes figured out, so let’s head over to our Facebook audiences. Click “create a saved audience.”

I dropped in all my target zip codes. I could stop here, and reach an estimated 650,000 people. Not bad.

I can also be more specific by adding some of Facebook’s own filters. If that’s the route I wanna go, then I should head down to the “detailed targeting” box and hit the “browse” button.

I’ll take folks who are interested in fast casual + fast food. I can make it even more targeted by focusing the ad on folks that Facebook deems “engaged shoppers,” i.e. they’ve clicked a “shop now” button in the past week.

This narrows down the potential audience to a still-respectable 200,000 peopleA note of caution – you’ll have to gauge your own potential audience after switching on these filters. The rest of the U.S. doesn’t share the same population density as NYC (shocker!). It’s better to be specific, but we still need the target audience to be a big enough.

A note of caution – you’ll have to gauge your own potential audience after switching on these filters. The rest of the U.S. doesn’t share the same population density as NYC (shocker!). It’s better to be specific, but we still need the target audience to be a big enough.

After that, all I need to do is click “Create Audience.”

Creating a Custom Audience

This is where things get a bit more interesting. You’ll have a bunch of options when you click-through to create a custom audience. We’ll focus on the top 2 sources:

If you have the Facebook pixel installed on your native ordering site or app, then you can go ahead and click on “website traffic”. Bikky Burger Barn doesn’t have that level of sophistication, unfortunately, so we’ll focus on uploading a customer list. It’s more manual, but still straightforward.

When you click on customer list, you get three options:

So a few easy options for me to build my audience. If you regularly upload all your guest data into Mailchimp (a good weekly practice), then you can go ahead and select that to target folks by email.

Let’s say this is the first time though that I’m putting all this together. I’ll select “use a file that doesn’t include LTV” since I’m not sure if that data point is readily available.

Facebook tells me exactly what info they need:

I’ll start consolidating all the data according to this template. I’ll download it as a CSV file and start inputting my first-party guest data. It’s super important that we separate out each line of the address – we need to target by zip code after all.

After uploading my data and naming my audience, I’ll have to make sure Facebook can accurately map all my data:

Once I’m good with this, Facebook will “hash” (the term they use to figure out which guests from my list they can target) the data. I’ll be taken back to my audience screen:

So both my audiences are nearly ready – I’m just waiting on Facebook to figure out the final size of my custom audience. This can take up to 30 minutes (but even then Facebook won’t reveal the full audience size due to privacy concerns).

Three options from here:

  • dig up the LTV data to create custom + lookalike audiences that target my best-performing guests
  • switch to designing my creative that advertises the menu change
  • get a cup of coffee – always good to take a break and stretch the legs!

Pro tip: we’ve focused on manually building a custom audience using data from just your native ordering platform. With a restaurant CRM like Bikky you can consolidate your guest data from both first-party and third-party sources and expand the reach of your custom audience.

When you’ve got all your audiences built, you’re set.

Now let’s create our ad and launch this.

Create your ad

I’m going to start with my more generic “saved audience”. It’s less targeted, but at least I’ve set it up so I’m only capturing folks that I know are in my delivery zone.

(As an aside, from our experience here at Bikky HQ [not to be confused with the Burger Barn], custom audience ad performance is almost universally better. Still, let’s keep the example simpler for now).

Now we need to define our objective. There are a couple options: traffic or conversions. Remember, in this example I’m using my larger – but less targeted – generic delivery audience. I want to advertise that favorites are now only available on my native platform, and at the very least drive more people to my site to learn more. For those reasons, I’m going with the traffic objective.

If I’m using my much more targeted custom audience, I’ll use the conversion objective. These folks are already customers, so I just want to ensure their next order comes through my native platform.

On the next page under “traffic”, make sure you choose website.

I’m fine with Facebook’s defaults here, the only thing I want to change is the budget down at the bottom. I’ll increase mine to $25 per day. My reach increases, the estimated click rate doesn’t really change, and I’m spending ~$175 per week. That means it’ll cost me no more than $700 to run a 4-week test, plenty of time and data to figure out if this is working. For simplicity, we’ll assume we’re only spending $500.

Last thing left to do is to design our ad. With a carousel, you can put images for every item that’s exclusive to your native platform. For simplicity, I’m going with a single image, but emphasizing in the copy that the Barnyard Classic – and other favorites – are only available on direct ordering.

highlighting the copy and direct ordering details for our ad

When your copy and images are set, hit confirm at the bottom of the page…and you’re live!

Now comes the fun part – if you’ve got the Facebook pixel set up on your site (again, we don’t here at Bikky Burger Barn) – then you can accurately track click-throughs and conversions.

Instead, I’ll rely on my financials and restaurant CRM to figure out not just ad conversions, but also if I’m converting guests from third-party delivery platforms.

Measuring ROI

I’ll add one disclaimer before diving into this section: Bikky Burger Barn is fake, and so are all these numbers. I kept going back and forth about how to actually measure ROI – do you just look for the traditional 4x return on ad spending (in which case we need $2,000 incremental revenue since our test assumes $500 in spending), or do we target a “minimum” growth rate in weekly revenue and profit?

I wasn’t sure, so just defaulted to the traditional method. All I want to do is provide a framework for how I would think about it if these numbers were real and I were running a brand. At the end of the day, any impact needs the context of your specific business objectives. But hopefully you can use this post as a step-by-step guide of how to achieve those desired outcomes.

As a reminder, here are the key metrics for the two locations we selected, Williamsburg and Great Kills:

totals are off a bit in Williamsburg due to rounding

The important thing to note is the disparity between our test locations. Williamsburg is much more dependent on delivery than Great Kills. Let’s assume that our weekly in-store transactions stay flat during the test period. That means we need a relatively smaller shift in first-party volume for Williamsburg to see a revenue and profit impact.

But Great Kills isn’t a delivery-heavy shop, and there’s a huge gap between first-party and third-party orders (>150 per week). That means here we need to really move the needle on native site orders. The goal for this store isn’t necessarily to convert guests from third-party delivery, just ramp up our native site traffic.

This provides the framework for success. A still large but achievable tweak for Williamsburg (with third-party conversion), and a big jump for Great Kills.

Now remember, I’m spending $500 over 4 weeks for this test. I want to drive at least $2,000 in native site revenue over that time frame. That’s the indicator I need to track before I can roll-out on a second batch of stores.

After a 4-week run for our test, here’s what that could look like:

So I need to add 36 orders per week in Williamsburg and 25 in Great Kills. This includes converting 5 orders per week from third-party delivery in Williamsburg and 4 in Great Kills (that’s 9 out of the total 61, or ~15%, consistent with the ROI we see in our data at Bikky HQ).

That’s about 3% overall weekly transaction growth. But something we consistently see in our data at Bikky HQ is that average order value on native platforms is actually much higher than on third-party delivery. Assuming that difference, we can increase our weekly revenue and net profit by 5-6%.

Note as well that while the overall first-party order counts may not seem massive, they are pretty substantial percentages: 40% growth in Williamsburg and 100% growth in Great Kills.

I think this is achievable though because:

  • I’m growing off a relatively small base
  • Facebook tells me I’m going to get an average of 90 clicks per day. That means 630 clicks per week. If I exclude out the 9 weekly orders I’m converting from third-party delivery, then that means I need 52 net-new orders from the 630 weekly clicks. That’s an 8% conversion rate. Not easy, but not difficult either.

Still, it’s good to map the range of possibilities here, so I put together a sensitivity analysis. The main variables are expected growth in first-party delivery at each location, and what weekly AUV growth, incremental revenue, and return on ad spend would look like in each scenario.

If I’m willing to be flexible, I could settle for a 3x return on ad spending. That’s as low as I’d be willing to go though.

And per my sensitivity analysis, that means I need at least $1,500 in incremental revenue per week and 45 new first-party transactions, or ~65% growth at Great Kills and 30% growth at Williamsburg.

Maybe I’ll run my custom audience campaign in conjunction with the generic delivery targeting one to increase my chances of hitting these numbers. Remember, this is a smaller, more precise list of first- and third-party delivery guests. I already know they love my brand, I just need to either convert them or increase their order frequency.

At Bikky HQ, we’ve ROI on the smaller custom audiences range from 12-20x (no joke). You’re already tapping into their love of your brand, but just letting them know that they need to come directly to you now to get it.

And if I’m not on track for these numbers right out the gate, I can’t give up.

I’ll have to keep iterating on ad copy and formats until I settle on something that starts converting at a higher rate. At the very least, I’m going to stick it out for the month and spend the $500 to $700 needed to see if I can make this a success.

And if it is, I’m ready to a) potentially throw more ad dollars behind the existing stores (increasing the Facebook ad budget? stickers on every bag to let all third-party delivery customers know where they can find my trademark items?); and b) select another 2-3 stores and repeat the playbook all over again.


The point here is that these are repeatable tests. Remember, third-party delivery platforms never sleep. It’s their job to build a marketing engine that continuously grabs hold of every potential guest and lock them in to their platforms.

But you need to do the same. You need to fight back based on the strength of your brand and food. It’s a long, arduous road, but the pay-off is obvious: better data and better margins.

And if you need some help (another shameless plug alert), get a restaurant CRM like Bikky to help you aggregate the data, use it to run these types of campaigns, and easily measure the ROI.

And as always, send your feedback, questions, and results to

See you out there. 🚀