It's funny you asked, I was just thinking about making a post with what's worked for me.
I made about 50 windsock snow decoys for about 20 bucks a couple of years ago. I bought 24" wooden stakes from a hardware store, then cut off the top about 3" down at a sharp angle. I glued that horizontally to the top of the stake with carpenter's glue, then painted the stakes white.
Then, take some small, white kitchen garbage bags. Lay one flat on a table, and fold the closed corners in to the middle of the bag so that it tapers. Stick a piece of black duct tape along each fold.
Then take the bags and open them. Staple the top edge about 2/3 of the way up the stake, the bottom edge maybe 4" below that. This works best if you run the staple through a little bit of duct tape.
That's all there is to it. Set them up facing the wind, and when it blows, the bags will inflate and spill air from the sides. This creates an effect that make the bags appear to waddle - it works incredibly well. I had some snows land in the bag decoys on Saturday (we were hidden in a bunch of canada decoys about 50 yards away, so they were out of range) and they fed among the decoys for 10 minutes without twigging to the scam.
The same thing would probably work for canadas, though it might be tricky to match the colour. It's also probably a good idea to set a few silhouettes or shells around the downwind side of the bag decoys so that the birds get a better look at more realistic decoys.