When the JS method setCustomUrl() is called, the 'url' parameter to piwik.php is replaced by the custom URL. This 'url' parameter is the one parsed to detect campaign and newsletter referrals. Instead,
I'll have to think about this some more, but I want to record these thoughts before I leave and forget:
We can indeed have the known campaign parameters to the setCustomUrl() and then remove them at tracking time... These parameters are found in
Re newsletter/campaigns; it is common in WA tools and processes to consider that a newsletter is a campaign like a PPC, off site, on site campaigns can be. The use case you're citing is pretty rare, usually newsletters are clicked more than 30min after the last visit on the website.
I will also try to work on #1042 and with custom campaign variable names, this makes this task more risky.
Workaround tried by a customer: According to it the parsing of the parameters does not work when using "setCustomUrl", because then only this custom url is sent to matomo and not the "normal" url with all the parameters. The solution is quite simple: just extract those parameters from the normal url and add it to the custom url. With something like the Google Tagmanager it's quite easy.