What UTM parameters mean
They are tags that whoever builds the link adds voluntarily in order to describe where it came from. The acronym stands for Urchin Tracking Module: Urchin was the web analytics tool Google agreed to buy in March 2005, and the utm_ prefix survived the change of owner and remains in use today.
They are worth separating from other pieces they get confused with. A cookie stores information in the visitor's browser; a UTM parameter travels inside the address itself and stops existing as soon as that person moves to another page. A tracking pixel loads a resource from an external server; a UTM loads nothing. And the referrer is sent by the browser automatically, whereas the value of a UTM parameter is decided by a human when writing the link.
That last difference explains both its strength and its fragility. A parameter says what the person who wrote it meant to say, no more and no less. If someone types utm_medium=email in one campaign and utm_medium=Email in the next, the tool counts two different channels, because the values are case sensitive. Parameters describe traffic, they do not identify people: they hold no name, no email address and no customer ID, unless somebody puts one there by accident.