Campaign Intelligence is available as an add-on on Business tier plans.
Overview
Campaign Intelligence for ads leverages four types of models:
- Users are the parent model.
- Sessions are a type of Event and connect a user to an ad. They necessarily have a timestamp and typically include
utmparameters. - 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.
Schema with only campaign data for ads

The ERD above includes the important features:
- Sessions connect to Ads with a campaign identifier based on what's available in the session, in this case through a mapping from
utm_campaigntocampaign_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_dayandcampaign_idcolumns.
Schema with ad, ad group, and campaign data

Two notable differences in the schema are evident when there is additional ad and ad group information.
- Sessions now connect to Ads through an identifier at the level of an individual ad, in this case with a mapping from
utm_contenttoad_name. - Ads also now connect to Ad stats through an individual ad level identifier, here the
ad_id. - Both Ads and Ad stats have additional columns for individual ad level information.