Linking Snapchat Ads as a source
Let AI connect your sources for you
Skip the manual setup — run this in your project and the wizard auto-detects your databases and APIs and connects them to PostHog.

Contents
You can sync data from Snapchat Ads by configuring it as a source in PostHog. These are the supported entities and reports:
- Campaigns
- Ad Squads
- Ads
- Campaign Stats: Performance metrics at the campaign level
- Ad Squad Stats: Performance metrics at the ad squad level
- Ad Stats: Performance metrics at the ad level
Additional reports will be added based on user feedback we receive via our in-app support form.
Requirements
- A Snapchat Ads account with permission to access data from accounts you want to sync.
Tip: If you need to find your ad account ID manually, go to Snapchat Ads Manager > Ad Accounts. The ID is visible next to the account name, or in the dashboard URL:
https://ads.snapchat.com/{ID_IS_HERE}/manage.
Configuring PostHog
Connect PostHog to your Snapchat Ads account using a Snapchat account. The Snapchat account must have permission to access data.
- In PostHog, go to the Data pipelines tab.
- Open the + New drop-down menu in the top-right and select Source.
- Find Snapchat Ads in the sources list and click Link.
- Connect your Snapchat account by selecting an existing integration or creating a new one.
- Select your ad account from the dropdown. Accounts are grouped by organization and display their status (e.g. Active, Pending). Pending accounts typically haven't finished setup and may not have data to sync yet.
- (Optional) Add a prefix for the table name.
Configuration
| Option | Type | Required |
|---|---|---|
Snapchat Ads account | oauth | Yes |
Snapchat Ads Ad Account ID | oauth-account-select | Yes |
Supported tables
| Table | Description | Sync method | Incremental field | Primary key |
|---|---|---|---|---|
campaigns | An advertising campaign — the top-level container that holds ad squads and sets the schedule and objective. | Full refresh | — | — |
ad_squads | An ad squad (ad set) within a campaign — defines targeting, budget, bid, and schedule for a group of ads. | Full refresh | — | — |
ads | An individual ad within an ad squad — pairs creative with delivery settings. | Full refresh | — | — |
ad_accounts | The ad account the data is imported from, including the currency and timezone every spend and daily metric is reported in. | Full refresh | — | — |
creatives | A creative — the media, headline, and call to action an ad renders. Join to | Full refresh | — | — |
media | A media asset (video, image, or lens package) owned by the ad account. One media asset can be used by several creatives. | Full refresh | — | — |
audience_segments | An audience segment (customer list, lookalike, engagement, or pixel-based) that ad squads can target. | Full refresh | — | — |
pixels | A Snap Pixel — the tag that ties website conversions back to the ads people saw. Join a pixel to the conversion metrics on the stats tables. | Full refresh | — | — |
campaign_stats_daily | Daily performance metrics (spend, impressions, swipes, conversions) broken down by campaign. | Incremental, Full refresh | start_time | — |
ad_squad_stats_daily | Daily performance metrics (spend, impressions, swipes, conversions) broken down by ad squad. | Incremental, Full refresh | start_time | — |
ad_stats_daily | Daily performance metrics (spend, impressions, swipes, conversions) broken down by ad. | Incremental, Full refresh | start_time | — |
campaign_stats_daily_country | Daily delivery insights per campaign and country. Estimated figures that need at least 30 impressions in a day, so totals will not match campaign_stats_daily exactly. | Incremental, Full refresh | start_time | — |
campaign_stats_daily_demographics | Daily delivery insights per campaign, age bucket, and gender. Estimated figures that need at least 30 impressions in a day, so totals will not match campaign_stats_daily exactly. | Incremental, Full refresh | start_time | — |
ad_stats_daily_country | Daily delivery insights per ad and country. Estimated figures that need at least 30 impressions in a day, so totals will not match ad_stats_daily exactly. | Incremental, Full refresh | start_time | — |
ad_stats_daily_demographics | Daily delivery insights per ad, age bucket, and gender. Estimated figures that need at least 30 impressions in a day, so totals will not match ad_stats_daily exactly. | Incremental, Full refresh | start_time | — |