A computer-implemented method for determining a current location of a client device, wherein a first device identifier is associated with the client device, the method comprising: receiving, by one or more computing devices, a request for a location-enhanced service from the client device; obtaining, by the one or more computing devices, a user location history having a plurality of entries, each entry identifying a location, a time, and one of a plurality of device identifiers for devices which are, at a current time, signed into or otherwise associated with an account of the user; determining, by the one or more computing devices, whether the time of the most recent entry that identifies the first identifier is within a threshold time from the current time; when the time of the most recent entry that identifies the first identifier is within the threshold time from the current time, selecting, by the one or more computing devices as the current location of the client device, the location of the most recent entry that identifies the first identifier; when the time of the most recent entry that identifies the first identifier is not within the threshold time from the current time: identifying, by the one or more computing devices for each of the plurality of device identifiers, the entry having the most recent time; determining, by the one or more computing devices, a score for each of the identified entries using a scoring formula; and selecting, by the one or more computing devices, the location of the entry having the highest score as the current location of the client device; using, by the one or more computing devices, the selected location to provide the location-enhanced service to the client device. receiving, by one or more computing devices, a request for a location-enhanced service from the client device; obtaining, by the one or more computing devices, a user location history having a plurality of entries, each entry identifying a location, a time, and one of a plurality of device identifiers for devices which are, at a current time, signed into or otherwise associated with an account of the user; determining, by the one or more computing devices, whether the time of the most recent entry that identifies the first identifier is within a threshold time from the current time; when the time of the most recent entry that identifies the first identifier is within the threshold time from the current time, selecting, by the one or more computing devices as the current location of the client device, the location of the most recent entry that identifies the first identifier; when the time of the most recent entry that identifies the first identifier is not within the threshold time from the current time: identifying, by the one or more computing devices for each of the plurality of device identifiers, the entry having the most recent time; determining, by the one or more computing devices, a score for each of the identified entries using a scoring formula; and selecting, by the one or more computing devices, the location of the entry having the highest score as the current location of the client device; using, by the one or more computing devices, the selected location to provide the location-enhanced service to the client device. identifying, by the one or more computing devices for each of the plurality of device identifiers, the entry having the most recent time; determining, by the one or more computing devices, a score for each of the identified entries using a scoring formula; and selecting, by the one or more computing devices, the location of the entry having the highest score as the current location of the client device; using, by the one or more computing devices, the selected location to provide the location-enhanced service to the client device.