Anytime you plan to arrive at a hotel after 6pm or so, no matter how you book, it's a very good idea to call them directly the day of arrival - the hotel, not their reservation service - get someone at the front desk who is going to be doing the check ins - and say "I am coming, I am arriving around XPM, please don't cancel my room".
Or if you're not planning on arriving late, but your flight or whatever is later than planned, call your hotel as soon as you land. When hotels are overbooked, and presented with the choice of turning away the person in front of them vs the one who isn't there yet... who do you think gets bumped. At least by having some note in your file there's a better chance they'll keep going thru the list and pick the one after you on the list.
I too always book hotels directly, and look for credit card protections for this sort of thing. With many cards, the hotel is obligated to at least "walk" you which means find you an equivalent near hotel on their dime. I would doubt these protections apply as often, when reservations are not made with a hotel but with a service.