We run ad campaigns to attract potential customers to our website. Sometimes customers click, but don't make contact. Is it acceptable to reach out to these customers, based on the public info available from their IP?
If I get spammed because I was "foolish" enough to leave my e-mail address, then stupid me.
If I get spammed just for visiting a website, then - how can I put this politely? I'd be pretty darn peeved.
If I knew a site's owners were employing such practices, I'd avoid them like the plague.
If I found out I was contacted because I just happened to visit a website, I'd scream hell and bloody murder.
Bear in mind that my visit may not have been intentional, but the result of a mis-click, somebody's url shortener, misleading link title, ... whatever. Even if my visit was intentional, I'd still not want to be contacted just because I visited the site. After all, when I visit a physical store, I can just come in look around and go and I know I won't be bothered by mail from the owner addressed to me personally.
That you may have the means to find out my contact information using my IP-address doesn't mean you should use those means.
Spam is spam no matter how you obtained my e-mail address (or telephone number or whatever).
However, I assume that you're considering this not with people who visit the site once and leave, but with people who visit it more than once without making a purchase or visiting the part of the site that you want them to see.
A technique that I do consider ethical would be to track visitors and after a certain number of repeat visits, pop something up that says "Answer our 5 question poll about our product / website! One person who answers the survey will receive [insert prize related to product or service here]!" (Assuming you actually follow through on your promise and give respondents prizes, of course.) You'll then have a legitimate reason to request their contact information and an opportunity to ask them whether it's okay for you to email them about other things.
In the survey, you can ask questions about whether they found the information they were looking for, what they think about the product / service / price / whatever, etc. That might help you figure out why potential customers are leaving the site without doing what you want.
It can also be helpful to look at analytics. Specifically, in addition to watching how they got to the page, you can watch the path they take through the site. That can help identify issues with the navigation or the content that might be preventing them from continuing through the desired path. Google analytics is free and has some of those features, although there are more extensive paid tools available.
If you find design or content issues that seem like they could be contributing to the problem, you can then try techniques like displaying a slightly different version of the website to repeat visitors and seeing whether that one performs better.
I consider acceptable if they are already registered and have opted-in