I only see this post of yours now, Mocha. Sorry for my late reply!
you are right, shaking the water bottle vigorously often helps eliminate any air that is trapped inside it. It is air in there that causes leakage because it breaks the vacuum that keeps the water in. Wash your bottle with bleach and water to kill any germs that may have built up. Use 1 part bleach to 9 parts of water. Fill your bottle with this solution and let sit for a little and then rinse well. You can immerse the spout part in this solution in a bowl and then rinse very well. You don’t have to do this procedure very often, just once a month to deep-clean the bottles. When you go to fill your bottle, fill it to the very top and shake out the spout to free it from any air. If it still leaks after you put it together, repeat the process. It should only drip a few drips when you hang it up and then it should stop. I have had bottles leaking their contents entirely over the floor but it was just because some air was trapped.