Detect snowballs on / in ground?

I am trying to get a snowball to release a cloud when on the ground (a custom snowball) and it doesen't actually easily tell when it's on the ground. I have execute unless block ~ ~-1 ~ air but is that the best method? It seems really buggy.
Continue to help post