Personally, I think the best time to promote the product is actually as early as possible prior to the launch. This means that you start marketing whatever product you're promoting as early as possible to build up hype and anticipation of the product to your list. This will also enable you to lock in as many potential customers through your link before anyone else begins to promote the product.
But that doesn't mean that you cannot promote the product closer to launch day, or even after launch day. Yes you can, but it might take abit extra effort to see results.