A quote that comes back within a day should be treated as a warning, not a service level. An experienced provider will come back with questions first: about who owns the data and what happens on failure. A vendor that commits to a figure without asking anything is working from a template, and the gap resurfaces as a change order — at your expense.
Be wary of any distance between the engineers on the sales call and the people who will code. Request named engineers in the agreement, with wording about substitutions. A provider that only offers abstract roles and refuses to name individuals is keeping the right to assign anyone it likes.
Require commit-level visibility from the first week. A partner that delivers a build only at the end of each phase is asking you to accept a black box. Regular commits and pull requests reveal the actual pace far better than a weekly report. This extends to the automated test suite: if it does not exist, assurances about quality remain unverifiable.
Ambiguous wording in the contract around code ownership is not a formality. The contract should state explicitly that all outputs produced under it belong to your aso marketing company as they are paid for. Look too at the governing law and the payment schedule: heavy prepayment with no milestone tied to it eliminates any leverage you would otherwise keep.
Lastly, dedicated team vs freelancer examine the working rhythm. Establish how many hours there will be with your working day, which named person is expected to answer questions and how quickly. Some genuine overlap is usually enough; zero overlap stretches each small question into a day of delay. Sloppy written English in the early emails rarely improves later.