LinkedIn Ads

Advertising

Ready to use

LinkedIn Ads data, published as LinkedIn Ads publishes it. Ingest delivers this data to a data warehouse you own as 4 tables, and updates it on the schedule you choose. There is no code to write and nothing to install.

What you get

TableEach row is
ad_accounts
ad_accounts
Every ad account the signed-in member can reach, from the LinkedIn Ads "search for accounts" finder. This is the anchor of the connector: the account ids it yields are what the campaign group, campaign and creative resources are fetched against, so nobody has to paste an account id. Re-read in full on every run, which is what picks up newly created accounts.
campaign_groups
campaign_groups
Campaign groups in each ad account (transformer child of ad_accounts). One request per account discovered on the parent resource; the account id comes from the parent's own record. The audit-stamp times are LinkedIn's native Unix epoch MILLISECONDS, kept as bigint and not cast to a timestamp.
campaigns
campaigns
Campaigns in each ad account (transformer child of ad_accounts). One request per account discovered on the parent resource. `runSchedule.start` and the audit-stamp times are LinkedIn's native Unix epoch MILLISECONDS, kept as bigint; the targeting criteria and offsite preferences are kept as JSON because their shape varies per campaign.
creatives
creatives
Creatives in each ad account (transformer child of ad_accounts), from the "criteria" finder. One request per account discovered on the parent resource. The primary key is LinkedIn's own creative URN, which is globally unique. `createdAt` and `lastModifiedAt` are Unix epoch MILLISECONDS, kept as bigint; the review block and serving hold reasons are kept as JSON.

How it works

  1. Choose LinkedIn Ads. Connect your LinkedIn Ads account once, from Ingest.
  2. Pick where it goes. BigQuery, Snowflake, Databricks, Redshift and 10 more, in an account you own.
  3. Pick a schedule. Daily is the default, and weekly and monthly are there too.
  4. Ingest runs it from then on. If a run fails, your dashboard shows which table and why.

Questions

Do I need an account with LinkedIn Ads?
Yes. You connect your own LinkedIn Ads account once, from Ingest, and the data comes from what that account can see.
Which warehouses can LinkedIn Ads data go to?
Amazon S3, Google Cloud Storage, Azure Blob Storage, Apache Iceberg, Ingest Managed Lakehouse, MotherDuck, Postgres, Amazon Athena, Databricks, Redshift, BigQuery, ClickHouse, MySQL / generic SQL and Snowflake, in an account you own.
How fresh is the data?
As fresh as your schedule: daily by default, or weekly or monthly. Schedules as often as every 15 minutes are on the Enterprise plan.
Will running it again create duplicate rows?
No. Each row is stored once, by its key: when a run reads a row that is already there, it replaces that copy instead of adding a second one.
Do I need to write code?
No. Ingest builds, runs and maintains the connector. Someone with access to your warehouse connects it once, following a short guide.
For your data team: technical reference

Connector linkedin_ads, version 0.1.0, a REST source, status beta, authentication oauth2.

Vendor documentation: https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/getting-started

Configuration

No configuration required.

Resources

ResourceStatusPlanWritePrimary keyOverrides
ad_accounts
Every ad account the signed-in member can reach, from the LinkedIn Ads "search for accounts" finder. This is the anchor of the connector: the account ids it yields are what the campaign group, campaign and creative resources are fetched against, so nobody has to paste an account id. Re-read in full on every run, which is what picks up newly created accounts.
betafullmergeid-
campaign_groups
Campaign groups in each ad account (transformer child of ad_accounts). One request per account discovered on the parent resource; the account id comes from the parent's own record. The audit-stamp times are LinkedIn's native Unix epoch MILLISECONDS, kept as bigint and not cast to a timestamp.
betaparent_childmergeid-
campaigns
Campaigns in each ad account (transformer child of ad_accounts). One request per account discovered on the parent resource. `runSchedule.start` and the audit-stamp times are LinkedIn's native Unix epoch MILLISECONDS, kept as bigint; the targeting criteria and offsite preferences are kept as JSON because their shape varies per campaign.
betaparent_childmergeid-
creatives
Creatives in each ad account (transformer child of ad_accounts), from the "criteria" finder. One request per account discovered on the parent resource. The primary key is LinkedIn's own creative URN, which is globally unique. `createdAt` and `lastModifiedAt` are Unix epoch MILLISECONDS, kept as bigint; the review block and serving hold reasons are kept as JSON.
betaparent_childmergeid-

Setting up the destination is its own short guide, one per warehouse or lake: Amazon S3, Google Cloud Storage, Azure Blob Storage, Apache Iceberg, Ingest Managed Lakehouse, MotherDuck, Postgres, Amazon Athena, Databricks, Redshift, BigQuery, ClickHouse, MySQL / generic SQL, Snowflake.

Get LinkedIn Ads data into your warehouse

Last updated .