Is there any rule to understand when a shot is an "unforced error" or a "winner" in a objective meaning?
There is a clear cut definition for a Winner statistic. If Player A hits the ball & Player B is unable to touch it with his racquet before the ball bounces twice, then it's a Winner for Player A. A Service Winner is another name for Ace. So this statistic is very objective.
However, when it comes to Unforced Error, the decision is purely subjective. It depends of the situation. If Player A hits the ball in the middle of the court & Player B has ample time to play the shot but sends it out or into the net, then it's an Unforced Error. However, if Player B is on the run while playing the shot & sends it out or into the net then it would not count as an Unforced Error but rather Forced Error. So this statistic is purely subjective.
Ofcourse, no official rules. They are mere statistics.
I'd say that, roughly : An unforced error is when a player shoots the ball and sends it out of the field or in the net, and if this error comes "only" from poor judgement or execution from the player . A winner is when a player shoots the ball so that he wins the point on this shoot (the opponent does not reach the ball).
I don't think there is a written rule for it, as this may be only used for statistical purposes.
EDIT : Maybe this question will be closed as this seems to be a duplicate of this one : When does a point count as a winner and when as unforced error?