In programmatic advertising, ads (commonly referred to as impressions) are shown on websites with the help of DSPs (Demand Side Platforms). These platforms want to make sure that they are showing the right impressions to the right users to generate as many conversions as possible.
- If a user clicks on the ad and lands on the advertiser’s website, we store this event in a table called clicks (schema shown below).
- If the user successfully places a deposit after landing on the advertiser’s website, we store this event in a table called conversions (schema shown below).
- For each conversion there exists at least one impression, but not all impressions have a conversion or a click.
You are given 3 tables with the following schemas, defined by column names and types:
impression_id: string
url_address: string
user_id: string
request_country: string
tracking_type: string [this is the tracking type (fingerprinted or cookie-based)]
dynamic_display: boolean [this is whether the impression was served through Dynamic Display]
dynamic_display_variables: string [content served in the impression]
request_browser_name: string
timestamp: date
impression_id: int
user_id: int
timestamp: string
conversion_id: string
user_id: string
dval: integer [this is the deposit value of the conversion]
curr: string [this is the currency of the deposit value]
timestamp: date