Any company that sells you access to ad real-time bidding. You connect to a event fire-hose that gives you a nice standardized json for each ad target, with plenty of data about the user (including geolocation), and you choose whether to bid or not on each ad, in realtime.
Do you get that data before you place the bid? Can you can just bid the minimum amount so you never actually buy an ad, but get the tracking data anyway?
You get all the data (geo, user's year-of-birth, user interests, device type, etc) before you place the bid. All the json data fields are defined in the standard. I can see iOS and Windows-phone in the feed, it's not limited to Android phones.
To get a seat on the exchange, you need to bid, and exchanges also don't allow you to store data of bid requests that you don't win for purposes other than bid algorithm optimization in their terms and conditions, since that's stealing data. If they find out you're freeloading, they'll cut you out.
Also, most of the data on it is pretty shitty with lots of fraud since the publishers want to get more money. The geo data is often fraudulent (https://en.wikipedia.org/wiki/Geographic_center_of_the_conti...), and that's why companies that bid hire data scientists to sift through the fraud.
There's also rarely, in my experience, year-of-birth or any personally identifiable data.
In a typical bid entry there are between 500 and 5000 bits of information relating to an individual, per the definition of GDPR. And that's not including the dreaded "IFA", which uniquely identifies the individual.
I don't agree with your claim that "the geodata is often fraudulent".
Anyone can read the linked pdf specification (above), download sample data from the exchanges, and judge for themselves.
It is an open standard:
https://www.iab.com/guidelines/real-time-bidding-rtb-project...