There is really no need to purchase it ahead of time unless you want everything paid for.
Every counter service location that takes part in the Meal Deal sells it at the location. You can also buy it at the little cart they have near the front of both parks. Buying it at the restaurant is normally the best option.
If you MUST purchase it early, I would think will call would be the best. You might have to wait in longer lines than if you were to just purchase it in the parks. Plus, you might not be really hungry that day and will not benefit from the Meal Deal. In order to "break even", you must eat THREE meals that day and keep in mind, they stop serving food 30 minutes before the park closes. It is only worth purchasing if you are visiting during a busy time of the year when the parks are open late and of course not eating during the "normal" lunch and dinner times since the places can be packed.