In the northeastern USA I usually hear "good for you," as in
You passed the test? Good for you! [congrats]
Good for you, for stopping to help! [you are a good person]
Online I often see the variant "good on you/good on ya" written, as in
You passed the test? Good on ya!
Good on you for stopping to help!
(I was able to find this discussion about the phrases, but there seems to be little agreement about which English speakers use which variant. We've also got a definition here of "good for you".)
Is there a difference in usage between the two phrases - are they used in different ways? Or, do they mean the same thing and are used by speakers of different dialects?