We've debated this point to death. By your argument, advertising on TV should be a failure, since people watch TV to be entertained, not to buy stuff right away. And still, 99% of TV shows are paid for by commercials. How come?
Advertisers have no way to measure just how ineffective their TV advertising is. It's pretty well established that traditional media marketing budgets have only the most tenuous link to results in the marketplace. Until recently, however, it had a singular advantage in that it was the only way to put an ad in front of a national audience.
Online advertising is cursed by a near-infinite supply and excellent metrics that immediately connect impressions to actions.