If they see the ad they fall into the category combination I specify. If they click the ad then I known all of that stuff about a visitor because I know which visitors clicked and which found their way outside of ads. If they signup or enter email or anything like that then I know exactly who they are for most people. Even if I have only an email but no name I can create a shell profile and use a data broker to find the name behind the email a lot of the time. Then I have everything tied to a person.
Multiply this times thousands upon thousands of ad impressions across multiple campaigns and you can bud a pretty good database with highly specific data. Sure 100% accuracy isn't guaranteed but neither is it guaranteed through more direct data brokers.
Demographics: Target users based on age, gender, parental status, household income, and more
Interests: Target people based on their interests, even if they're visiting pages about other topics
In-market audiences: Target users who are actively looking for products or services similar to yours
Custom intent audiences: Create and target audiences based on their search behavior and interests
Remarketing lists: Reconnect with users who have previously interacted with your website or app
Customer match: Use your first-party data to reach and re-engage with your customers
Similar segments: Expand the reach of your best-performing audiences by targeting new users with similar characteristics
Affinity audiences: Reach people based on a holistic picture of their lifestyles, passions, and habits
Life events segments: Target users