Welcome to WebmasterWorld Guest from 188.8.131.52
If you know the IP addresses of the sites that are spidering you, you can just exclude them from loading the advertiser images. Use an If/Then and show the ad only when the visitor's IP is not one from your "block list".
Second way is just watch your own logs to see how often you are spidered, and deduct that number from the "number of impressions" from each advertiser. You could check on this once a day or once a week, whenever.
The third (and probably most efficient) way would be to modify your ad delivery system to store the IP address of the visitor it delievered the advertisement too in the database, not just that an ad was shown. Then you'll have an exact number of times each ad was shown to a particular Search engine IP and can just remove those from the database.
Oh just thought of another possibility ... estimate how many times a month you get spidered, and give your advertisers so many "free visits" a month as part of the plan.
I'm honestly surprised you have people who are still paying per impression though. Seems kinda outdated ... PPC is the way to go now.