@marsh the customers wouldn't be divulging anything unique other than the actual coupon code. Their name, address, credit card number, email, and more would come out when they ordered a service or product. It isn't fool proof, but I don't know many buyers who won't use a discount code when they have one. Of course, this is only an option if the OP wants his customers to pay or set up appointments with him online.
Another option for tracking ROI on offline advertisements is to use a unique domain in each one. NameCheap wrote about that strategy
here. It would be a good way to determine where the advertisement was found that drove the person to the site without expecting the person to do anything else. After all, it takes some buyers a while to make a decision and it would work on content only sites as well.