Вы можете хранить координаты для пользователя. Это почти все, что вам нужно сделать. Все API карт имеют функцию поиска по радиусу, которая позволяет искать в пределах X миль или километров от заданной координаты. После того, как вы получите координаты своего пользователя и узнаете координаты, где релевантны ваши объявления, вы можете выполнить запрос, чтобы определить, находится ли пользователь в пределах досягаемости объявления.
Если вы хотите немного упростить вещи и не делать кучу API-вызовов при каждой загрузке страницы, вы можете просто назначить регион каждому пользователю, когда он хранит свой адрес. И затем для каждого объявления вы должны указать регионы, в которых вы хотите показывать это объявление. Например, если
пользователь находится в регионе = США, и объявление релевантно для региона = [США, Канада, Мексика], тогда пользователь увидит объявление. Я не знаю, какую гранулярность вам нужно получить, но, скорее всего, это будет простейшая реализация того, что вы пытаетесь сделать.