That being said, specific marketing costs already are amortized over the life of contracts - if you pay commissions to sales staff, those are allocated over the life of the contracts that are signed. If you pay inducements (such as free months of service, or whatever), those are amortized over the life of the contract. However, general marketing expenses like ads are recognized in the period that they occur. There are a number of reasons for this: maybe adtech can decide who saw what ad and made a purchase because of it, but that is generally hard to tell. The other is that how do you know what the life of the contract will be. Your company pays $1000/year for Slack, and you likely will, but what if something changes? Slack can't know what you're planning to do. They'd have to make an estimate, and estimates are open to manipulation by management.
Management's incentive is to decrease expenses in the current year to make themselves look better to investors, so they're going to say that their expenses will be good for 20 years. How can they be certain? There's also the other way they can manipulate it by saying that "oh, this was a bad year already, we might as well recognize marketing expenses now to make a bad year worse, so next year looks better". Since there's no actual measurement basis, there's no corroborating evidence either way.
Source: am an auditor, albeit not familiar with US GAAP.