
Duck Tales: How DuckDuckGo provides useful “near me” search results, while keeping your location private.
Inside DuckDuckGo
In this episode, Greg and John (Search) discuss local search results, and how we help you find local cafes, restaurants, and business, without knowing your precise location.
Disclaimers: (1) The audio, video (above), and transcript (below) are unedited and may contain minor inaccuracies or transcription errors. (2) This website is operated by Substack. This is their privacy policy.
Greg: Hello and welcome to DuckTales where we go behind the scenes at DuckDuckGo and discuss the stories, technology and people that help build privacy tools for everyone. In each episode, you’ll hear from employees about our vision, product updates, engineering or approach to AI. I’m Greg. I work on the search engine here at DuckDuckGo. With me today is John. John, would you like to introduce yourself?
John: Hi, I’m John. also work here at DuckDuckGo on the search engine and I’ve been focused on working on local search for most of my time here.
Greg: Awesome. Yeah, that’s kind of what we wanted to talk about today is local search. And so I’m looking forward to chatting with you a little bit about how local search works, how we do it at DuckDuckGo and get into some of the challenges that we have as a private search engine and how we solve those. Local search generally, it’s kind of maps related searches. whether you’re searching for places, businesses, restaurants, those kinds of search queries we kind of call local searches. We have a couple different versions of a map that shows up on the search results page. When you do one of those searches, either you’re searching for something kind of in a city and you put the name of that city in your search query, or if you search for something near you, have ways to provide those results. still in a privacy preserving way. So maybe as a starting point, I thought it would be good to just, if you could walk us through a little bit of the life of a local search query, how it goes from kind of something the user has submitted to us to what we decide to show on the page.
John: Yeah. So we start with a, we get a user query. So somebody type something in and sends the query to us. And we try to figure out whether that would benefit from some sort of mapping information. So maybe the query contains a number and a few words and then drive or street or road. And you know, that looks like an address. So we’ll show a map of that address. Other common patterns are, you know, common. types of businesses like restaurants, hotels, cafes, and those sometimes come in with location indications. know, cafes in New York City or cafes in Paris. And sometimes they don’t, sometimes it’s just cafes or cafes near me. So we kind of have to handle both those types of situations. And the ones that are nearby are really kind of the more interesting ones. because we have to find a way to figure out where Nearby is for the user. And we have to do that in a very privacy-respecting way because that’s our whole thing. So the browser, the web browser that you’re using will send a location. But we don’t just straight up use that because we deal with lot of partnerships where we have to get some data from our partners at Apple and TripAdvisor. And we don’t want to just send them raw user locations because that is a privacy issue. So what we do is we’ll kind of add some noise to it. So if you say you’re at, you know, this exact location in a city, instead of sending that, we’ll move you a little bit. Depending how big the city is, we might move you just a few hundred meters. If you’re way out in the country though, where maybe you’re our only user for miles, you know, we might move you a few miles. And so that... can affect your results, makes them a little less accurate, but we think we do it with as little noise as possible to get you a lot of privacy benefit while still giving you results that are hopefully very accurate to the location you’re interested in.
Greg: Yeah, so there are a couple of things in there that I think are interesting to talk a little bit more about. when you kind of described how we add noise to a user’s location, there’s a lot of documentation, by the way, about this, if you want to read more on our help pages. But I’m wondering how we think about the kind of trade-off between making sure that the results are still good and the way that we’re obfuscating someone’s location is sort of sufficient from a privacy standpoint. So maybe you can talk about the first part first. How do we think about the quality of the results and whether or not we’re showing the right local results for someone when they do one of those nearby queries?
John: Right, yeah, we have a lot of criteria that we check against before we show results to users. We’ll get a whole bunch of options that might be relevant to the query. And if you’re searching for a cafe, maybe a restaurant is relevant, but probably a hotel is not so relevant. And so we may make sure we get the category right first. And then we also want to make sure the location is correct. And because we’re dealing with partners, they might give us some locations that aren’t as relevant just because we don’t give them as accurate of a location. And so we’ll kind of refine those on our side without sharing some of that information with a partner to say, you you gave us this location that’s 100 miles from the user and that’s maybe because we gave you the wrong location on purpose. And so we’re not going to show that to the user, but we will show these other locations that are actually nearby and relevant to the users.
Greg: Got it. Yeah, and then, I mean, even, you know, sometimes when there is a location in the query, it could be one of those that is still ambiguous to us, right? I think a lot about the difference between Paris, Texas and Paris, France. Users don’t always clarify what they mean. So we have to try to figure that out based on context too, right?
John: Exactly. even some locations that are very well defined. If somebody says New York City, that’s just one place that we’re going to look. But New York City is huge. just determining which part of New York City is maybe the most relevant to send to the user is another challenge that we have to figure out.
Greg: Yeah, and I mean, just we’re sort of riffing on these now, but, you know, if you search someone searches for New York pizza, right, that could be they’re looking for a pizza restaurant in New York City, or they’re looking for a restaurant near them that serves a New York style pizza. So, yeah, all kinds of things that we have to sort of contend with and try to figure out to give those right results. I’m wondering if maybe we could talk a little bit more than about. the different types of ways we actually display the results once they appear on the page because we have a couple different versions of our local modules that we show depending on the type of result and the number of results we get back. So I’m wondering if you’d say a couple things about that.
John: Yeah, we have many different ways to display based on what the user is searching for. As I mentioned earlier, we have a special address display if you’re just looking for a map given a location. That’s a pretty bare result. It’s mostly just a map and the location label. Some more popular landmarks, we have a special display for that where you’ll get the map and if it’s the Eiffel Tower or something like that. Then you’ll get a picture of the Eiffel Tower and a little description that we sourced from. Wikipedia and then there’s a business searches is the next big category and those are kind of divided into two as well if you’re searching for a very specific single business like, you know Joe’s cafe and Las Vegas I don’t think there is a Joe’s cafe in Las Vegas maybe there is Then then we’ll just show you that one Joe’s cafe ideally, you know, we don’t want to show you Bob’s cafe That’s also in Vegas or Joe’s cafe. That’s in Idaho or something
Greg: There might be.
John: And then there’s the sort of category or chain type businesses where if you search for Walmart or restaurants, we’ll show you a big listing of businesses and where they are distributed on the map to let you kind of click in and explore more if you want to do details about each one individually.
Greg: Got it. And then that’s gonna vary too based on the category of the result, right? I think we have some kind of special display for hotels as well.
John: Yeah, we’ve just kind of introduced this and I can share this real quickly because I think it’s a pretty cool feature. So just recently we’ve added some pricing indicators. So if you’re searching for a hotel, you probably want to go stay at one of these hotels. And one thing that is important about staying in a hotel is how much is it going to cost and is it available at the time I’m traveling. So we’ve got a new interface. We just released this last month where you can put in your check-in dates, check-out dates, how many people, and it’ll tell you a pricing estimate of how much it’s going to cost for those dates. And then once you click into it, you can get different offers from different providers. So you can get expedia and go through and actually have really easy access to booking one of those hotels that you’re interested in.
Greg: Awesome, yeah, I think this is a really good example of something where it’s a new feature that we’ve added that captures a particular use case that we know users have. mean, that we ourselves as users of a search engine have when you’re booking a hotel, trying to make it easier for users to complete the task that they’re doing, not necessarily just kind of see the different results. I’m wondering, maybe you could talk a little bit more about some of the other challenges around those additional use cases or business data that’s important for us to show and how we’re thinking about that and how we see that evolving over time.
John: Yeah, we build this feature on a few different really important partnerships with Apple, Yelp, and TripAdvisor being the main three. And we use those partnerships to give us all sorts of data about different businesses. Yelp gives us lot of information about restaurants and new service businesses, shopping, stuff like that. And then TripAdvisor gives us hotel information and information more about that. attractions, know, museums, theme parks, stuff like that. And we’re trying to push more into using this data to give the user a lot richer experience. Some ideas, you know, including menu links for restaurants, giving the ability to order food or serve tables, call us a service business, you know, if you want to plumber, you can get it like kind of a quote directly. And all those are kind of ideas that were pushing for and hope to release soon.
Greg: Yeah, definitely. There’s all kinds of different use cases that people have with businesses. know even just knowing the hours that the business is open, right, is so important. And these are things that users ask about all the time. I think if I had to pinpoint one big challenge with local in general, it’s just that the coverage for the business that the user cares about in that particular moment is so important. And so we’re constantly trying to figure out ways to expand that coverage and make sure we have the right information about as many businesses as possible.
John: Yeah, exactly. We’ve done a lot recently also in terms of taking user feedback because, you know, we found users get very upset if we send them to a business and we got the hours wrong and the business is actually closed or they try to call a business and it’s the wrong phone number. So we’ve taken a lot of steps to submit or solicit feedback from users on when we get it wrong and then forward that upstream to our partners so that they can correct it and we can correct it and everybody gets a better experience.
Greg: Of course. Yeah. Yeah. Yeah, definitely. I want to emphasize, if you as a user send us feedback that, know, hours are wrong or, you know, an address or a phone number, you know, we take all of that in and do our best to forward that to the source of that data and also make sure we’re not showing it to other users and kind of getting better and better at correcting that over time. Cool. Well, we’ve covered a lot of ground. Anything else you think is worth sharing and talking about with respect to local search?
John: nothing comes to mind straight away. I’m hoping we can keep working on the product, making it better. think we’ve got some good expansions in the future. Some more, pie in the sky ideas we have of, you know, moving to something like a flight search or something might, come into later on. and yeah, just hoping to keep making the product better and getting users what they want and giving them the right information as quickly as, as easily as possible.
Greg: Yeah, definitely. All right, well, it was really fun chatting with you about this today, John. Thanks for taking the time. yeah, maybe we’ll have a chance to talk more on a future episode about other search-related things. But yeah, thank you.
John: Thanks for your talking.
Greg: Bye.
This is a public episode. If you would like to discuss this with other subscribers or get access to bonus episodes, visit insideduckduckgo.substack.com