Skip to content
This repository has been archived by the owner on Nov 1, 2022. It is now read-only.

Fuzzy location/region provider #1720

Closed
pocmo opened this issue Jan 14, 2019 · 4 comments
Closed

Fuzzy location/region provider #1720

pocmo opened this issue Jan 14, 2019 · 4 comments
Labels
💡idea Ideas for a new component, feature, change .. <search> Component: browser-search

Comments

@pocmo
Copy link
Contributor

pocmo commented Jan 14, 2019

Use case search: To determine the list of search engines and a default we need to know the region of the user.

Problem: We can't use the device's location since that requires a permission and asking for that (Android 6+) on the first ever startup is not something we want to do.

Focus: Uses the user's locale. That is very inaccurate. Especially the false positives for "US" (from en_US) are very high.

Fennec: Does a GeoIP lookup via MLS. Which is already better but also not very accurate.

Ideas for getting the location or validating/correcting an inaccurate location

  • Try getting location from system location provider on Android < 5.
  • Read the mobile country code (MCC) or Mobile Network Code from the SIM card (Does this require a permission?)
  • Lookup the timezone for the device (e.g. user uses en_US but has a European timezone).
  • Look at all other locales used by the user (e.g. first locale is en_US, but second is de_DE).
  • Latency to remote servers in different regions (see comment below)

┆Issue is synchronized with this Jira Task

@pocmo pocmo added <search> Component: browser-search 💡idea Ideas for a new component, feature, change .. labels Jan 14, 2019
@pocmo
Copy link
Contributor Author

pocmo commented Jan 18, 2019

This is probably not feasible from an app. Nevertheless: It's interesting how this page (that makes a request to each GCP region and displays the median latency) as a side effect does provide a very fuzzy location (e.g. Frankfurt has the lowest latency for me in Germany).

@mconnormoz
Copy link

High level, the more accurate we can make this check, the more effectively we'll capture revenue.

MLS works reasonably well, I'd strongly recommend periodic refreshing of location, both because of travelers and because of geoIP's weakness due to shifting IP address blocks. We've seen ranges shift from Canada to Germany, as an example.

As a next step, @mkaply is working on adding a timezone check to desktop to reduce false positives for the MLS geoip lookup. This is most important for the US, since a lot of people use VPNs for content or privacy, and we know it's throwing off a significant amount of search volume on desktop.

For browsers that have geolocation enabled, we've also talked about passively observing coordinates (like MozStumbler) and using lat/long ranges to provide another level of validation.

I really want to make sure we get this right. Happy to answer questions or share any other context.

@pocmo
Copy link
Contributor Author

pocmo commented Feb 6, 2019

@mconnormoz This is interesting. Does "refreshing of locations" mean that we are okay with changing the list of search engines at a later point (e.g. a month after installation)? That's something new for the mobile apps we haven't considered before.

Does this mean we are also going to potentially switch defaults (if the user has not set something) after a location change? Will we add/remove search engines from the list when switching countries?

@mconnormoz
Copy link

HIgh level, yes, we're okay with changing defaults. It's not perfect, but we also know that first run is not always somewhere relevant.

@data-sync-user data-sync-user changed the title Fuzzy location/region provider FNX2-15975 ⁃ Fuzzy location/region provider Jul 30, 2020
@data-sync-user data-sync-user changed the title FNX2-15975 ⁃ Fuzzy location/region provider FNX3-22176 ⁃ Fuzzy location/region provider Jul 31, 2020
@st3fan st3fan changed the title FNX3-22176 ⁃ Fuzzy location/region provider Fuzzy location/region provider Aug 5, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
💡idea Ideas for a new component, feature, change .. <search> Component: browser-search
Projects
None yet
Development

No branches or pull requests

3 participants