Hard for me to know exactly what types of events you want to listen for and report on. But a good starting point would be to look at the TraceListenerProxyElement in the ExamplePlayer sample app. This example demonstrates how a custom ListenerProxyElement can wrap another MediaElement to trace every event to the console. In theory, you could write a similar class to send the raw data to your backend server.
Usage of the class can be seen here (search for TraceListenerProxyElement).
Note that this approach is primarily geared towards tracking state changes related to the media (many of which will occur due to user interaction), as opposed to fine-grained details on how the user is interacting with your application (which is beyond the scope of OSMF). That being said, can I ask what types of features you're looking for in this area?