Skip to main content

User-defined report for LinkedIn Ads connector

Written by Jonas Østergård Bæk

User-defined reports are custom reports where you choose exactly which dimensions and metrics to retrieve from the LinkedIn Ads API, how the data is grouped, and how it is rolled up over time.

When you select a user-defined report, you will see additional fields in the interface that you will be prompted to fill in.

1. Input API table

In this section, you need to select the table from which to retrieve the data:

  • Statistics: multi-dimensional breakdowns. Supports up to 3 pivots (e.g. campaign × creative × device). The most flexible choice.

  • Analytics: single-dimension breakdowns. Supports 1 pivot (e.g. just by campaign, or just by member company).

2. Input dimensions & Input metrics

Dimensions are the descriptive, text fields that describe each data row. Start by typing a dimension name in the dedicated field to search it, select it from the results, and then press Enter to add it to your report. Some dimension examples include: CAMPAIGN.name, ACCOUNT.currency, ACCOUNT.id, CAMPAIGN.id.

Metrics are the numeric values that you want measured in your report. These values are always converted to numbers, so only look for fields that contain numerical values. Examples: impressions, clicks, costInLocalCurrency, costInUsd, CAMPAIGN.dailyBudget.amount.

For the full list of available dimensions and metrics, see LinkedIn Ads' Analytics documentation.

Note: A single query can ask for at most 20 fields (dimensions + metrics combined). Date and pivot value columns are added automatically.

3. Select granularity

Defines how data is rolled up over time.

Granularity

Results

Daily

One row per day (most common).

Monthly

One row per month.

Yearly

One row per year.

All

A single row covering the whole period.

Daily granularity results in data provided day by day; while Monthly / Yearly / All granularities automatically pre-aggregate the data by date.

Daily and aggregated data are written to separate output tables in your selected destination, with slightly different date columns:

  • Daily: each row has a single date column (e.g. 2026-03-15).

  • Monthly / Yearly / All: each row has a from_date and a to_date column showing the period it covers.

4. Input pivot

In the context of the LinkedIn Ads connector, a 'pivot' refers to the process of reorganising or summarising data in a report by grouping it based on specific criteria. In other words, it tells LinkedIn how to break your data down. For example:

  • Pivoting by CAMPAIGN will group the results by campaign.

  • Pivoting by CAMPAIGN + CREATIVE: one row per campaign-creative combination.

The pivot you choose also unlocks the fields you can enrich; pivoting by CREATIVE, for example, gives you access to creative-level fields such as CREATIVE.review.status.

Supported pivots:

  • Ad entities: ACCOUNT, CAMPAIGN, CAMPAIGN_GROUP, CREATIVE, CONVERSION

  • Audience demographics: MEMBER_COMPANY, MEMBER_COMPANY_SIZE, MEMBER_COUNTRY_V2, MEMBER_REGION_V2, MEMBER_INDUSTRY, MEMBER_JOB_FUNCTION, MEMBER_JOB_TITLE, MEMBER_SENIORITY, COMPANY

  • Delivery context: EVENT_STAGE, IMPRESSION_DEVICE_TYPE, OBJECTIVE_TYPE, PLACEMENT_NAME, SERVING_LOCATION

Pivot limits based on Input API table:

  • Statistics: supports up to 3 pivots (e.g. campaign × creative × device).

  • Analytics: supports 1 pivot (e.g. just by campaign, or just by member company).

You can combine multiple pivots in the Statistics table; for example, breaking a campaign's performance down by member company in a single query.

5. Field enrichment

When you request a field like CAMPAIGN.name or ACCOUNT.currency, the connector automatically fetches that information from LinkedIn Ads and adds it as a column. Deeply nested paths (like CAMPAIGN.dailyBudget.amount) are flattened into clean, warehouse-safe column names.

Example:

Let's say we request CAMPAIGN.dailyBudget.amount and CAMPAIGN.dailyBudget.currencyCode. Behind the scenes the connector fetches each campaign's details from LinkedIn Ads; a raw response looks like this:

The nested dailyBudget object (highlighted) is flattened into two clean columns in the output.

Because amount (1800) is a number, we should put CAMPAIGN.dailyBudget.amount in metrics; and because currencyCode (USD) is text, we should put CAMPAIGN.dailyBudget.currencyCode in dimensions.

You can see the full set of fields available on a campaign in LinkedIn's Campaigns API reference.

Important notes:

  • You can only enrich fields from pivots that are part of your query, with the exception of ACCOUNT. This is because every connector is scoped to a single account. You can request ACCOUNT.* fields even if ACCOUNT isn't one of your pivots.

  • Some pivots (like IMPRESSION_DEVICE_TYPE, OBJECTIVE_TYPE, PLACEMENT_NAME) return plain string values; the value itself is the data and can't be enriched further.

Did this answer your question?