I have a Yahoo home page and email account that I don’t use much anymore, but through the years I’ve use lots of their services at one time or another. They certainly know my zip code and what city I live in.
Yet their ads… there are recurring ads that regularly show up on the side panels of my inbox. Particularly one that offers a service to look up people’s criminal records, and another that’s a dating service (I think it’s Match.com, IIRC that’s affiliated with Yahoo), and they are always urging me to find dates and criminals in Deforest. Deforest is not far, maybe 20 minutes drive. But it’s not the closest suburb to Madison, it’s not the most populous suburb to Madison, it’s not nearly as large as Madison. I find it difficult to believe that it is overfilled with single women, or criminals for that matter (though looking for single women criminals might be interesting). And their ads are ALWAYS specifying “Wisconsin” or “Deforest” – never Madison, which I’m quire sure has more single women and more criminals that Deforest (unless it’s a secret resettlement camp for ex cons).
Your IP address (at least according to the geolocation service Yahoo uses) may suggest to them that you are in Deforest rather than in Madison. It may be that your ISP’s server, that links you to the open internet, is actually in Deforest, or it may be that your ISP just does not distribute IP addresses in a very geographically systematic way. I think that most (if not all) of the geographically targeted ads we see these days are targeted via IP address, but the techniques used for inferring location from IP are not very reliable, and often get it a bit wrong (and occasionally wildly wrong).
This is basically what I was going to say. Google apparently believes I’m located in a city 90 miles south of where I actually live, since whenever I Google something like “weather” or “movie showtimes” it wants to give me results for that city. I live in a small town but there are several other good sized towns that are much closer to me than this one, so I figure it’s something to do with my IP address.