Book direct and the benefits become contractual.
Book via a 3rd party and any benefits given are down to the hotel are down to good will are they aren’t contractual.
I see people on a fairly regular basis demanding their loyalty benefits on 3rd party bookings and getting annoyed when they are denied.
Those free breakfasts, drinks vouchers etc need paying for some way.