Sessions are a type of interaction and connect a user to an ad. They necessarily have a timestamp and typically include utm parameters.
Ads are a type of asset, and minimally include campaign and platform information.
Ad stats is a model that indicates engagement with an ad, such as clicks, impressions, and spend. It should fit the format of this dbt model.
The relationships between these models depend on whether your ad model has information about the ad itself, such as an ad_name or ad_group_id alongside the ad campaign information or just campaign information.
Below are entity relationship diagrams (ERDs) that show expected columns and relationships in both situations, including necessary primary (PK) and foreign keys (FK). We note differences between the schemas.
Sessions connect to Ads with a campaign identifier based on what's available in the session, in this case through a mapping from utm_campaign to campaign_name.
Ads also connect to Ad stats through a campaign identifier, in this case the campaign_id.
Hightouch generates a primary key in the Ad stats model that combines the date_day and campaign_id columns.