OK, So I am having an issue with my users and geocoding them so I can suggest other users close to them.

Here is the issue. In an effort to make sign up minimalistic, my users supply a username and email and password and thats it. When they complete their profile, they may PROVIDE their city, and then they are geocoded (ruby gem: geocoder). Then I can offer various suggestions based on their location.

But many users may use the site and never completely fill out their profile so they may never get this added experience.

I wanted to record the IP address on sign up and geocode according to that, but maybe they sign up in a different location to their usual location.

The big issue is that you can't conditionally geocode with this gem depending on whether the city variable or IP_address variable is present. You have to pick one.

So for best experience, what would you do with this set up. Use the truer to form geocoding by user inputed location, or get their IP address (and be able to geocode every user no matter what) but accept that the data may not be as accurate in terms of where they are really from?

Before you ask....I DO see this as a user experience issue.

  • I would always just ask, IP Geolocation tends to not be very accurate anyway. whatismyipaddress.com/geolocation-accuracy "Accuracy rates on naming the city from an IP address vary between 50%-80%."
    – DasBeasto
    Commented Aug 26, 2015 at 12:28
  • Why do you need both the username and email when signing up?
    – UXerUIer
    Commented Aug 26, 2015 at 12:35
  • "Why do you need both the username and email when signing up?"....I understand you are trying to be clever but you clearly know thats a whole separate UX experience question, not directly relevant to what I am asking. There is a whole raft of conflicting research on the pros and cons of asking for a password, or even a username straight off the bat. We have gone through this, and this is the set up we have decided on based on other factors not detailed here. But thanks for the leading question.
    – GhostRider
    Commented Aug 26, 2015 at 12:47

2 Answers 2


Be upfront, clear, honest, give choice to opt out

If your user's choose not to provide a location on their profile then they will expect to miss out on location specific features. All you can do is provide prompts to add a location at relevant places.

Also, if you ask for a location, they choose not to supply one, then they start receiving location based suggestions, won't that look fishy?

Don't give user's a choice then try to bypass that choice. Personally I wouldn't be happy if you did that.

Solution 1

If you are going to determine location automatically, i.e. don't require opt in. Then be clear with your messaging and options.

"Your location has been determined based on your IP. Incorrect? [Add your location manually]. Don't want location based features? [Turn off location tracking]."

Solution 2

If you are going to allow user's to opt in rather than detect automatically.

"We would like to track your location to offer location based content. [Turn on location tracking]. Your location has been determined based on your IP. Incorrect? [Add your location manually]. "

  • I think based on what options I have, this is a really good answer. just be upfront why its advantageous to input your location and leave it up to the user. No tricksy behaviour behind the scenes. Thanks.
    – GhostRider
    Commented Aug 26, 2015 at 12:48

Try what YouTube does, with the assumed language message and links to switch languages, at the top of the page. I shrunk the width to fit this space. In a browser, this message crosses the entire width of the page, like a banner, and can be dismissed (closed) by clicking its × button:

YouTube language notification

If your message shows the Location instead of the Language, your users will correct this because, if the point is to find people nearby, they'll realise the benefit.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.