Best way we’ve been tracking it is to save the game name + twitch id in a table + a hash of the game name (though if you’re not managing a lot of data, just the name would be fine) - The twitch id is a primary key, so if the game id already exists in the db we update the game name and save the old game name to a historical table so we know that on such and such date, the game name changed from (x) to (y) – If the historical doesn’t matter to you, it’s safe to just replace the game name with the new one.
We also have a multi match table, because a game can also be mapped to multiple game names at the same time. Common typos and name variants seem to be the hotness there (IE: Dark souls III verse Dark Souls 3)
Ultimately the way we handle it is
Game ID exist? -> Yes -> Multi match table (Valid multi match?) -> No (Update) | Yes (Ignore)