Search ads require transactional writes. But actually, as far as I remember big outages at Google in the past have been things like "someone pushed the wrong router config" and not "our database got overloaded". Maybe search is just more conservative?
There are two mechanisms helping keep search up when considering ads:
-> Search engine pages can be served w/ no ads, or even no personalization if components are down or lagging
-> Ad logs can be lost if necessary, since we'd under-bill in that case, which would be our own problem. That happened a small handful of times while I was there.
The billing system is indeed transactional, but has less need for 100% up-time and 0 latency in comparison to search. Not nearly as big of a deal if there's an hour delay on billing ads as compared to search being down for an hour.