His overt liberalism is a big part of his problem, but it's only a part. The main reason his show is collapsing is that it's just too strange for the average viewer. TV news producers (and critics) love it because it's so wacky and different, but the people that count - the ones watching at home - tune it in and wonder why the most important news isn't even discussed until 10 minutes before the show is over, why big news is shunted aside so Keith can spend more time making snide jokes about goofy marginal news items, etc. And they just tune out.
There's a place for a "Countdown" kind of show, but prime time is not that place. The kind of people that like his sort of schtick will seek him out in other time slots, so to waste the 8 pm hour on it is just insane scheduling on MSNBC's part.
But then, MSNBC has never known any other kind of scheduling as long as it's existed.