Adware is spyware with permission to snoop.
Spyware is adware without the license agreement.
OK, so defining two words as a variation of each other is circular reasoning, but it’s still vastly less convoluted than the definitions that the companies creating this stuff would have the government enact. Those definitions are a mess.
It would be better to have a functional definition that doesn’t imply good or evil. Keystroke monitoring programs are evil as password stealers, and good as monitors for keeping employees honest. Calling a keystroke monitor spyware implies that it is inherently bad–it might be. Most of the time. Not always.
For owners of computers, a functional definition would ignore permissions and conditions of use. A program autoloads, or it doesn’t. If it does, it’s a management issue. Put another way, one cup holder per passenger is a good thing. 426 cupholders is beyond inconvenient; it’s a crash on the way.