How Overwolf is getting the real time data on the game events?

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.
The important thing is that we process all the data and offer it in a very easy to use javascript API so that you can consume it easily!