I was told by the vet a total of 3 weeks. The first week you see the blood, the second week she "will stand" to be bred, the third week same as the first. If she don't get bred she will come into heat again in 5-6 months.
All dogs usually stay in heat for app 3 weeks or 21 days,she usually bleeds for 7-9 days,if the dog is not to be bred then keep her away from male dogs,if you don't want messes in your home try getting doggie diapers for her.