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
datecolumn (e.g.2026-03-15).Monthly / Yearly / All: each row has a
from_dateand ato_datecolumn 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
CAMPAIGNwill 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,CONVERSIONAudience demographics:
MEMBER_COMPANY,MEMBER_COMPANY_SIZE,MEMBER_COUNTRY_V2,MEMBER_REGION_V2,MEMBER_INDUSTRY,MEMBER_JOB_FUNCTION,MEMBER_JOB_TITLE,MEMBER_SENIORITY,COMPANYDelivery 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 requestACCOUNT.*fields even ifACCOUNTisn'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.





