Skip to main content
LinkedIn Ads is a powerful tool for B2B marketers, offering unique targeting capabilities to reach a professional audience. With various ad formats and robust analytics, it helps businesses achieve their marketing objectives, from lead generation to brand awareness.

Configuring LinkedIn Ads as a Source

In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the LinkedIn Ads option from the list of connectors. Click Next and you’ll be prompted to add your access.

1. Add account access

You’ll need your LinkedIn Ads OAuth credentials for this connection. You can generate these in your LinkedIn Developer portal. Once you have them, add the account access, then click Next.
  • Authorization: Log in with a Linkedin account that has proper access to the LinkedIn Ads account you want to extract data from.
  • Account ID: The ID for the LinkedIn Ads account you want to extract data from. This can be found on https://www.linkedin.com/campaignmanager right below the organization name on the left-side panel.
  • Start Date: The earliest record date to sync. Records created or updated after the start date will be extracted.
  • Lookback window (days): (Default: 28) Number of days to subtract from the bookmark in incremental mode to re-fetch records. The effective start date will never be earlier than the configured start date.
Linkedin only returns up to 1-year of historical data for daily performance reports.

2. Select streams

Choose which data streams you want to sync - you can select all streams or pick specific ones that matter most to you.
Tip: The stream can be found more easily by typing its name.
Select the streams and click Next.

3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.
  • Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
  • Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
  • Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
  • Sync Type: you can choose between INCREMENTAL and FULL_TABLE.
    • Incremental: every time the extraction happens, we’ll get only the new data - which is good if, for example, you want to keep every record ever fetched.
    • Full table: every time the extraction happens, we’ll get the current state of the data - which is good if, for example, you don’t want to have deleted data in your catalog.
Once you are done configuring, click Next.

4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Optionally, you can define some additional settings:
  • Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource here.
  • Determine when to execute an Additional Full Sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.
Once you are ready, click Next to finalize the setup.

5. Check your new source

You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.
For you to be able to see it on your Catalog, you need at least one successful source run.

Streams and Fields

Below you’ll find all available data streams from LinkedIn Ads and their corresponding fields:
Stream for fetching ad accounts information.Key Fields:
Stream for fetching campaign groups.Key Fields:
Stream for fetching campaigns.Key Fields:
Stream for fetching creatives and their associated contents.Key Fields:
Stream for fetching aggregated analytics per campaign.Key Fields:
Stream for fetching creative analytics.Key Fields:

Data Model

The following diagram illustrates the relationships between the core data streams in LinkedIn Ads. The arrows indicate the join keys that link the different entities.

Implementation Notes

API Resilience and Retries

The connector features built-in retry mechanisms and connection pooling for fetching creative content (such as InMail contents and sponsored conversation flows). These requests are routed through a robust SDK session utilizing backoff decorators. This ensures that transient network failures (e.g., “Network is unreachable” or general ConnectionError statuses) are automatically retried instead of crashing your sync process.

API Limitations

  • LinkedIn restricts daily performance reports to a maximum of 1-year of historical data. If your start date requests records older than one year for analytics streams, only the past 365 days will be returned. Ensure your initial backfill expectations align with this API limitation.

Skills for agents

Download LinkedIn Ads skills file

LinkedIn Ads connector documentation as plain markdown, for use in AI agent contexts.