My answer might be a little bit late but let me try to explain it to you.
It's used to sync certain object variables, since you can't send them directly.
So we use *Set client input state* event with a certain tag added to it to combine it with a variable sync.
The Host will always recieve your Client Input.
However in most cases, you want to Sync this recieved input information back to all the other Peers as well, so now you can use this tag, to sync an object variable according to the input recieved.
Here's an example according to the Advanced Example from Construct 2/3.
The Peer sends an INPUT STATE (which includes variable data)
to the HOST
So we send X and Y so the host knows our current position.
At the top, we defined the input value tag lookx and looky (these are the ones we're sending to the host)
And the 2 Sync variable events, is the information we're syncing back to all the other Peers.
So we're directly syncing a specific Object variable to all other players!
The tag is now used, to basically BIND the input value tag, and the Sync Variable event together.
So the information recieved from the client input value is written into the variable sync, and sent back to all the players.
Hope it helps