Build a campaign URL
Source and medium come from the approved list. Everything else is optional.
The page people should land on. Existing query parameters are kept.
Where the link lives or is sent from.
Filtered to the mediums allowed for that source.