oh, I've been there. It's absolutely gutting to watch leads you've carefully nurtured just sit there collecting dust while the client blames you for "poor quality." The issue isn't your targeting - it's that nobody on their end is accountable for actually picking up the phone or replying to an email within a reasonable window.
from what I've seen, the fix is painfully simple but rarely done upfront. start building a 'lead velocity' metric into your shared reporting - not just how many leads land, but how many get contacted within 48 hours. make it a visible number on the dashboard they look at every week. when that number starts slipping, you can raise a flag before it becomes a full-blown blame game at the end of the quarter.
Also, and this is a lesson I learned the hard way, get it in the contract. Something along the lines of "campaign performance is measured against leads contacted, not leads generated." It forces them to own their part of the pipeline. You're delivering opportunity, not guaranteed sales - and if they're not following through, that's not on you. It sets the expectation that both sides have skin in the game.