You can certainly sign requests client side but irrespective of signing method they depend on having a secret to sign the message with. Signing is probably likely to reduce users sending targeted data but if you have a signing method that is executing client side then it necessitates having that secret available on the client. If an attacker is determined enough they can determine the secret and signing method and still send dummy data. As far as I’m aware there aren’t any analytics tools (or many other tools for that matter) that prevent request tampering. Data that is sent from the client is default assumed to be untrusted so folks that want to prevent tampering tend to move these events server side rather than relying on code that executes on the client.
If you do come up with a way that you think prevents this I’d love to hear about it as it’s certainly something we could consider implementing.