Terrible lazy code. It seems it downloads the game module EVERY time you start the game instead of using some type of cache. It wouldn't be so bad if the module itself was well made but for some reason it seems 10mb+ in size.
I'm on a mobile connection and sometimes the data rate is about 4mbit/s, takes 10-20 seconds just to start a game.
Most assets should be cached.
Which app and app version are you on?
My games are very quick games. Less than 5 minutes apiece on average. So perhaps 10 games per day on average to get 300 in that month but quick chess makes it feel like a few. Without any streaming of videos or anything there's an unaccounted GBs still.
That might be it, tbh. Even though it is only a few kbs to transfer moves, a lot of times your cell phone company rounds up to the nearest megabyte.
300 games, with the average chess game is 40 moves, means that
300*80 = 24,000 moves. Assuming each move your cell phone plan is rounding up to a megabyte, that means gigabytes are just your moves.
It's not the moves. It's the module and/or assets that get downloaded again every time a game is launched.