I guess you are using a few methods. But can you give a little bit more info?
The process of getting the game data in real time is rather complicated and different for each game. Usually, we need to reverse engineer the game in different ways and methods, generally at the low level:
network protocols, packet structures and network messages analyzing, OCR and image recognition, real-time memory maps and log and files reading.
Some games integrate our events SDK and expose it directly - various ways to read and analyze.