First of all, the main point to be kept in mind is that although it says “daily budget” it is actually calculated on monthly bases. That means that if your daily budget is $100, your monthly budget is $3,000 for a month of 30 days.
Secondly, do you use “standard” or “accelerated” setting within your budget?
Thirdly, Google will usually stop (or slow down) showing your ads much before your budget is hit. That is simply because they cannot afford going too close to it as they would go over in many cases of keywords with high volume of traffic. This is kind of disadvantage as we cannot really set the budget to the number we want.
I am not sure what kind of ad receives traffic in the morning but not in the afternoon. Your belief about second half of the day is totally incorrect. Google has stopped it because your budget is too low, per them, even if you did not really come close to it.
When this occurs and the advertiser would rather not raise the budget, I'd suggest ruthlessly cutting back on keywords - keeping only those that are most important, however the advertiser chooses to define that. (I'd suggest tracking ROI and keeping the ones that deliver the best ROI, as one possible place to start.)
Bottom line getting rid of dead-wood keywords, very general keywords, un-targeted keywords, highly competitive keywords with low ROI, and so forth will allow the remaining (and most important) keywords to show more often during the 24 hour day.
AWA