A bad request is often caused by a faulty query string. I have checked your formatting and found nothing wrong with it except, of course, the value of the &url parameter.
&url= 1 url
This said, if formatting is not a problem, then it might be that you are sending a parameter or even several parameters that Matomo does not know who to handle for the type of request being sent. Your parameter list appears very long, and I cannot help, but think that you are sending parameters that are either unnecessary for your counting objective or even wrong.
Alternatively the value of a parameter or several parameters could be mis-specified.
Finally, could it be that you have not installed the plug-in necessary to handle the type of request being sent?
If I were in your position, I would strip the list to its bare minimum and determine whether it works. If the bare minimum works, then the problem is with your query string. If the bare minimum does not work, then the problem likely lies beyond Matomo.
p.s. Make sure that your HTTPRequest is not sent until the _paq variable is completely loaded. I place my Matomo script at the bottom of my page.