LinkedIn Ads data model: campaign groups, campaigns and creatives linked by URN
LinkedIn names every entity by URN, not by the plain ID in its own table, so a join on the wrong column finds no matches. OWOX loads the LinkedIn Ads tables into your data warehouse and the model says which link needs the identifier pulled out of a URN first. Explore it on the canvas, or import it as Data Marts and add the URN keys yourself.
The LinkedIn Ads data model
LinkedIn Ads is organised from the top down as accounts, campaign groups, campaigns and creatives. Ad Accounts, Campaign Groups, Campaigns and Creatives carry settings as they stand today. Ad Analytics carries daily performance: cost in local currency and in USD, engagements, video and document completions, lead metrics, and a second set of viral counts for impressions that came from members sharing sponsored content. Most tables have an id of their own, but the references between them are URNs such as urn:li:sponsoredAccount:{id}, and Ad Analytics, keyed by its date range and pivotValues, holds only a pivotValues array of the URNs of the creative, campaign, campaign group and account a row describes. So a link between two tables needs the number extracted from the URN first, and then matched to the table's id; check which form each id takes. Budget and unit cost objects hold their amounts as strings. Once the tables are in your warehouse, importing them as Data Marts gives you a place to add the extracted keys.
LinkedIn Ads Endpoints
5 LinkedIn Ads endpoints you can import. Each lands in its own table in your data warehouse.
Ad Accounts
Your ad account settings, billing details, currency, and account status.
14 fieldsAd Analytics
Daily performance metrics for your campaigns — impressions, clicks, spend, and conversions.
104 fieldsTime seriesCampaign Groups
Top-level containers that group campaigns with shared objectives, budgets, and scheduling.
14 fieldsCampaigns
Individual campaigns defining your targeting, ad format, bid strategy, and budget.
29 fieldsCreatives
The visual and copy elements of your ads shown to members across LinkedIn.
14 fields
Where LinkedIn Ads data goes
Data warehouses
AI assistants
Spreadsheets
Dashboards
Messages
API
What LinkedIn Ads data answers
What LinkedIn Ads data answers
Across the tables
- Which campaigns are active, and which objective type does each pursue?
- How do impressions, clicks and cost in local currency move day by day across the account?
- Which creatives are meant to be active but are not serving, and why?
Ad Accounts
- Which currency code does each ad account use?
- Which ad accounts are active, and which are test accounts?
- Which accounts advertise on behalf of an organization, and which on behalf of a person?
Ad Analytics
- What did the account spend in local currency, and how many impressions and clicks did it get, per day?
- On which days did external website conversions peak, and what was the cost on those days?
- How do paid clicks compare with viral clicks per day?
Campaign Groups
- Which campaign groups are active, and what objective type does each have?
- Which campaign groups have a daily budget, and how large is it?
- How many campaign groups are test groups?
Campaigns
- Which campaigns are active, and which objective type does each pursue?
- Which cost type does each campaign use, and what is its unit cost?
- Which campaigns have offsite delivery enabled?
Creatives
- Which creatives are intended to be active but are not serving, and what holds them back?
- Which creatives were modified most recently, and by whom?
- How many creatives does each campaign URN have?
Industry data models that use LinkedIn Ads
OWOX for LinkedIn Ads data: URNs documented, spend in two currencies
LinkedIn's reporting returns URNs, not the IDs in each table, and a join on the wrong column finds nothing. OWOX loads the LinkedIn Ads tables into Google BigQuery, Snowflake, AWS Redshift, AWS Athena or Databricks, and the model's table descriptions spell out the URN rule, so you know which column holds a URN before you write your first query.
- URN columns named. In the model, Campaigns, Campaign Groups and Creatives each say which of their columns hold an account, group or campaign URN and what that string looks like.
- Local currency and USD on one row. Ad Analytics keeps cost in local currency and in USD together, so a USD total across ad accounts is a sum, not a conversion.
- Paid and viral apart. Impressions that come from members sharing sponsored content sit in their own viral columns, so they never inflate your regular counts.
- Only the accounts you list. Ad Accounts holds exactly the accounts in the connector's Account URNs setting, so a row is never an account you did not choose.
- Budgets as LinkedIn stores them. Budget and unit cost objects arrive with string amounts, and the model's descriptions say so, so you parse them once, on purpose.
- 0.43.0Compare LinkedIn Ads results across markets: spend by country, region, and county
- 0.41.0Rotating a connector key is one change: Sources share reusable Credentials
- 0.35.0Current vendor API versions for the Criteo, LinkedIn, and Facebook connectors
- 0.34.0Fix LinkedIn Ads adAnalytics silently dropping data when the response exceeds 15,000 elements
- 0.32.0Google Ads, LinkedIn Ads, LinkedIn Pages, and Shopify connectors use supported API versions
LinkedIn Ads Ad Accounts schema
14 fieldsSchema on GitHublinkedin_ads_ad_accounts
Your ad account settings, billing details, currency, and account status.
| Field | Type | Description |
|---|---|---|
currency | STRING | The 3 character standard currency code such as USD for United States Dollar. Refer to the list of supported currencies for the full list. |
idPK | STRING | Unique internal ID representing the account |
name | STRING | A label for the account |
notifiedOnCampaignOptimization | BOOLEAN | Indicates if the campaign contact is notified about campaign optimization opportunities |
notifiedOnCreativeApproval | BOOLEAN | Indicates if the creative contact is notified when a creative has been reviewed and approved |
notifiedOnCreativeRejection | BOOLEAN | Indicates if the creative contact is notified when a creative has been rejected due to content |
notifiedOnEndOfCampaign | BOOLEAN | Indicates if the campaign contact is notified when an associated campaign has been completed |
notifiedOnNewFeaturesEnabled | BOOLEAN | Indicates if the account owner is notified about new Campaign Manager features |
reference | STRING | The entity on whose behalf the account is advertised. Must either be in the format urn:li:person:{id} or urn:li:organization:{id} |
referenceInfo | OBJECT | Information about the entity associated with the reference. If the entity is an organization, an Organizationinfo object is returned. If the entity is a person, a Personinfo object is returned. For all other entity types an empty record will be returned. This is a read only field. Please refer to Additional Info Fields to learn how to access this field. |
servingStatuses | ARRAY | An array of enums with information about the account's system serving statuses. If an account is eligible for serving, then the array has a single element:RUNNABLE Otherwise, the array contains one or more reasons why the account is not servable: |
status | STRING | ACTIVE - Account is active; this is the default state |
type | STRING | BUSINESS – This is the only value allowed when creating accounts through the API. |
test | BOOLEAN | Flag showing whether this account is marked as a test account. An account can be marked as test only during creation. This is an immutable field. |
LinkedIn Ads Ad Analytics schema
104 fieldsTime seriesSchema on GitHublinkedin_ads_ad_analytics
Daily performance metrics for your campaigns — impressions, clicks, spend, and conversions.
| Field | Type | Description |
|---|---|---|
actionClicks | NUMBER | The count of clicks on the action button of the Sponsored Messaging ad. |
adUnitClicks | NUMBER | The count of clicks on the ad unit displayed alongside the Sponsored Messaging ad. |
approximateMemberReach | NUMBER | Non-demographic pivots only (i.e. not MEMBER\_). The estimated number of unique member accounts with at least one impression. This metric is an updated and more accurate version of legacy metric approximateUniqueImpressions. This metric is only available when the number of days in the date range is less than or equal to 92 days. This metric is fully launched in Jan 2024. |
averageDwellTime | NUMBER | Average user dwell time (in seconds). It measures the duration for which more than 50% of the ad's pixels remain visible in the viewport. |
audiencePenetration | NUMBER | The approximate number of unique members reached by the advertiser divided by the approximate total target audience size. The field will be null if the date range has more than 92 days. This metric only supports the CAMPAIGN pivot. |
cardClicks | NUMBER | Non-demographic pivots only (i.e. not MEMBER\_). The number of clicks for each card of a carousel ad. The first card click of the carousel ad results in an immediate cardClick and click, whereas scrolling to other cards and clicking will count as additional cardClick. |
cardImpressions | NUMBER | Non-demographic pivots only (i.e. not MEMBER\_). The number of impressions shown for each card of a carousel ad. The first card of the carousel ad results in an immediate cardImpression and impression, whereas scrolling to other cards will count as additional cardImpressions. |
clicks | NUMBER | The count of chargeable clicks. Despite not charging for clicks for CPM campaigns, this field still represents those clicks for which we would otherwise charge advertisers based on objective (for example, clicks to view the landing page or company page). |
commentLikes | NUMBER | The count of likes of a comment. Sponsored Content only. |
comments | NUMBER | The count of comments. Sponsored Content only. |
companyPageClicks | NUMBER | The count of clicks to view the company page. |
conversionValueInLocalCurrency | NUMBER | Non-demographic pivots only (i.e. not MEMBER\_). Value of the conversions in the account's local currency based on rules defined by the advertiser. Conversion value is set by the advertiser at a per conversion level, and aggregated across the query time range. |
costInLocalCurrency | NUMBER | Cost in the account's local currency based on the pivot and timeGranularity. For example, this would be spend by member company size per month if the pivot is MEMBER_COMPANY_SIZE and timeGranularity is MONTHLY. Cost is not adjusted for over delivery when a member professional demographic pivot is specified in the request. |
costInUsd | NUMBER | Cost in USD based on the pivot and timeGranularity. For example, this would be spend by campaign on a given day if the pivot is CAMPAIGN and timeGranularity is DAILY. Cost is not adjusted for over delivery when a member professional demographic pivot is specified in the request. |
costPerQualifiedLead | NUMBER | How much money was spent per qualified lead. Ratio is costInLocalCurrency / qualifiedLeads. |
dateRangeStartPK | DATE | Start date of the report data point. Date is specified in UTC format (YYYY-MM-DD). |
dateRangeEndPK | DATE | End date of the report data point. Date is specified in UTC format (YYYY-MM-DD). |
documentCompletions | NUMBER | The number of times users reached 100% of the document's length, including those that skipped to this point. This metric is only available for document ads and not all dimensions. |
documentFirstQuartileCompletions | NUMBER | The number of times users reached the first quartile of the document's length, including those that skipped to this point. This metric is only available for document ads and not all dimensions. |
documentMidpointCompletions | NUMBER | The number of times users reached the second quartile of the document's length, including those that skipped to this point. This metric is only available for document ads and not all dimensions. |
documentThirdQuartileCompletions | NUMBER | The number of times users reached the third quartile of the document's length, including those that skipped to this point. This metric is only available for document ads and not all dimensions. |
downloadClicks | NUMBER | The number of times users have indicated the intent to download the media in an ad by clicking the download icon. This may or may not result in an actual download (e.g. if the user rejects a browser download prompt). This metric is only available for ad formats supporting media downloads. |
externalWebsiteConversions | NUMBER | Total number of times users took a desired action after clicking on or seeing your ad. When conversions cannot be attributed to individual users, group level attribution or estimation may be used. |
externalWebsitePostClickConversions | NUMBER | Total number of times users took a desired action after clicking on your ad. When conversions cannot be attributed to individual users, group level attribution or estimation may be used. |
externalWebsitePostViewConversions | NUMBER | Total number of times users took a desired action after seeing your ad. When conversions cannot be attributed to individual users, group level attribution or estimation may be used. |
follows | NUMBER | The count of follows. Sponsored Content and Follower ads only. |
fullScreenPlays | NUMBER | Number of times members click on the full screen button or on the video(mobile only) to go into full screen mode. |
headlineClicks | NUMBER | The number of times members clicked on the headline of conversation ads. |
headlineImpressions | NUMBER | The number of times members were shown the headline of conversation ads. |
impressions | NUMBER | This is the count of impressions for Sponsored Content and sends for Sponsored Messaging. |
jobApplications | NUMBER | The number of times a member completed a job application after viewing or clicking on an ad. Currently, this metric is broken down into postViewJobApplications (if the member applied after viewing the ad) and postClickJobApplications (if the member applied after clicking the ad). |
jobApplyClicks | NUMBER | The number of times a member clicked on the job's apply button on an LinkedIn jobs page after viewing or clicking on an ad which has a LinkedIn job landing page. Currently, this metric is broken down into postViewJobApplyClicks (if the member performed the action after viewing the ad) and postClickJobApplyClicks (if the member performed the action after clicking the ad). |
landingPageClicks | NUMBER | The count of clicks which take the user to the creative landing page. |
leadGenerationMailContactInfoShares | NUMBER | The number of times users shared contact info through the One Click Lead Gen for Sponsored Messaging ads. |
leadGenerationMailInterestedClicks | NUMBER | The count of Sponsored Messaging ad recipients who clicked to demonstrate interest. |
likes | NUMBER | The count of likes. Sponsored Content only. |
oneClickLeadFormOpens | NUMBER | The count of times users opened the lead form for a One Click Lead Gen campaign. |
oneClickLeads | NUMBER | The count of leads generated through One Click Lead Gen. |
opens | NUMBER | The count of opens of Sponsored Messaging ads. |
otherEngagements | NUMBER | The count of user interactions with the ad unit that do not fit into any other more specific category. |
pivotValuesPK | ARRAY | The value of the pivots for a specific record returned. For example, supplying pivots of CREATIVE and CONVERSION results in a list of records, one for each creative/conversion combination. The pivotValues contain serialized URNs for the specific creative and conversion for a record. To resolve these URNs to their corresponding entities, refer to LinkedIn Marketing API URN Resolution. |
postClickJobApplications | NUMBER | The number of times a member completed a job application after clicking on an ad. See also jobApplications. |
postClickJobApplyClicks | NUMBER | The number of times a member clicked on the job's apply button on an LinkedIn jobs page after clicking on an ad which has a LinkedIn job landing page. See also jobApplyClicks. |
postClickRegistrations | NUMBER | The number of times a member has registered for an event or seminar after clicking on an ad which has a LinkedIn landing page. This includes gross registrations and does not account for a user unregistering. |
postViewJobApplications | NUMBER | The number of times a member completed a job application after viewing an ad. See also jobApplications. |
postViewJobApplyClicks | NUMBER | The number of times a member clicked on the job's apply button on an LinkedIn jobs page after clicking an ad which has a LinkedIn job landing page. See also jobApplyClicks. |
postViewRegistrations | NUMBER | The number of times a member has registered for an event or seminar after viewing an ad which has a LinkedIn event landing page. This includes gross registrations and does not account for a user unregistering. See also registrations. |
qualifiedLeads | NUMBER | The count of qualified leads shared by the advertiser. Qualified lead is a lead that has been deemed more likely to become a customer compared to other leads, based on their engagement and fit. |
reactions | NUMBER | The count of positive reactions on Sponsored Content which can capture, like, interest, praise, and other responses. |
registrations | NUMBER | The number of times a member has registered for an event or seminar after viewing or clicking on an ad which has a LinkedIn event landing page. This includes gross registrations and does not account for a user unregistering. |
sends | NUMBER | The count of sends of Sponsored Messaging ads. |
shares | NUMBER | The count of shares. Sponsored Content only. |
subscriptionClicks | NUMBER | The count of clicks to subscribe to a series, such as a Newsletter. |
talentLeads | NUMBER | Number of leads captured through a talent media campaign. |
textUrlClicks | NUMBER | The count of clicks on any links (anchor tags) that were included in the body of the Sponsored Messaging ad. |
totalEngagements | NUMBER | The count of all user interactions with the ad unit. |
validWorkEmailLeads | NUMBER | The count of leads with a valid work email that does not use an established free or personal email domain. |
videoCompletions | NUMBER | The count of video ads that played 97-100% of the video. This includes watches that skipped to this point if the serving location is ON_SITE. |
videoFirstQuartileCompletions | NUMBER | The count of video ads that played through the first quartile of the video. This includes watches that skipped to this point if the serving location is ON_SITE. |
videoMidpointCompletions | NUMBER | The count of video ads that played through the midpoint of the video. This includes watches that skipped to this point if the serving location is ON_SITE. |
videoStarts | NUMBER | The count of video ads that were started by users. |
videoThirdQuartileCompletions | NUMBER | The count of video ads that played through the third quartile of the video. This includes watches that skipped to this point if the serving location is ON_SITE. |
videoViews | INTEGER | A video ad playing for at least 2 continuous seconds 50% in-view, or a click on the CTA, whichever comes first. An interaction with the video (like going to fullscreen mode) does not count as a view. |
viralCardClicks | NUMBER | Non-demographic pivots only (i.e. not MEMBER\_). The number of viralClicks for each card of a carousel ad. The first viralCardClick of the carousel ad results in an immediate viralCardClick and viralClick, whereas scrolling to other cards and clicking will count as additional viralCardClick. |
viralCardImpressions | NUMBER | Non-demographic pivots only (i.e. not MEMBER\_). The number of viralImpressions shown for each card of a carousel ad. The first card of the carousel ad results in an immediate viralCardImpression and viralImpression, whereas scrolling to other cards will count as additional viralCardImpressions. |
viralClicks | NUMBER | The count of clicks on viral impressions. See viral impressions definition. Sponsored Content only. |
viralCommentLikes | NUMBER | The count of likes on comments from viral impressions for this activity. See viral impressions definition. Sponsored Content only. |
viralComments | NUMBER | The count of comments from viral impressions for this activity. See viral impressions definition. Sponsored Content only. |
viralCompanyPageClicks | NUMBER | The count of clicks to view the company page from viral impressions for this activity. See viral impressions definition. Sponsored Content only. |
viralDocumentCompletions | NUMBER | The number of times users reached 100% of the document's length on a viral post, including those that skipped to this point. This metric is only available for document ads. |
viralDocumentFirstQuartileCompletions | NUMBER | The number of times users reached the first quartile of the document's length on a viral post, including those that skipped to this point. This metric is only available for document ads. |
viralDocumentMidpointCompletions | NUMBER | The number of times users reached the second quartile of the document's length on a viral post, including those that skipped to this point. This metric is only available for document ads. |
viralDocumentThirdQuartileCompletions | NUMBER | The number of times users reached the third quartile of the document's length on a viral post, including those that skipped to this point. This metric is only available for document ads. |
viralDownloadClicks | NUMBER | The number of times users have indicated the intent to download the media in a viral ad by clicking the download icon. This may or may not result in an actual download (e.g. if the user rejects a browser download prompt). Only available for ads supporting media downloads. |
viralExternalWebsiteConversions | NUMBER | The count of conversions that are attributed to your ads driven by a viral event. See viral impressions definition. |
viralExternalWebsitePostClickConversions | NUMBER | The count of post-click conversions that are attributed to your ads driven by a viral click. See viral impressions definition. |
viralExternalWebsitePostViewConversions | NUMBER | The count of post-view conversions that are attributed to your ads driven by a viral impression. See viral impressions definition. |
viralFollows | NUMBER | The count of follows from viral impressions for this activity. See viral impressions definition. Sponsored Content only. |
viralFullScreenPlays | NUMBER | Number of times members click on the full screen button or on the video(mobile only) to go into full screen mode. See viralImpressions definition. |
viralImpressions | NUMBER | The count of viral impressions for this activity. Viral impressions are those resulting from users sharing sponsored content to their own network of connections. Viral impressions are not counted as regular impressions. Sponsored Content only. |
viralJobApplications | NUMBER | The number of times a member completed a job application after viewing or clicking on a viral ad. Currently, this metric is broken down into viralPostViewJobApplications (if the member performed the action after viewing the viral ad) and viralPostClickJobApplications (if the member performed the action after clicking the viral ad). |
viralJobApplyClicks | NUMBER | The number of times a member clicked on the job's apply button on an LinkedIn jobs page after viewing or clicking on a viral ad which has a LinkedIn job landing page during the date range.Currently, this metric is broken down into viralPostViewJobApplyClicks (if the member performed the action after viewing the viral ad) and viralPostClickJobApplyClicks (if the member performed the action after clicking the viral ad). |
viralLandingPageClicks | NUMBER | The count of clicks on viral impressions to take the user to the creative landing page. See viral impressions definition. Sponsored Content only. |
viralLikes | NUMBER | The count of likes from viral impressions for this activity. See viral impressions definition. Sponsored Content only. |
viralOneClickLeadFormOpens | NUMBER | The count of times users opened the lead form for viral impressions from a Lead Gen campaign. See viral impressions definition. |
viralOneClickLeads | NUMBER | The count of leads generated through One Click Lead Gen from viral impressions for this activity. See viral impressions definition. |
viralOtherEngagements | NUMBER | The count of user interactions with viral impressions that do not fit into any other more specific category. See viral impressions definition. Sponsored Content only. |
viralPostClickJobApplications | NUMBER | The number of times a member completed a job application after clicking on a viral ad. |
viralPostClickJobApplyClicks | NUMBER | The number of times a member clicked on the job's apply button on an LinkedIn jobs page after clicking on a viral ad which has a LinkedIn job landing page. |
viralPostClickRegistrations | NUMBER | The number of times a member has registered for an event or seminar after clicking on a viral ad which has a LinkedIn landing page. See viralImpressions definition. This includes gross registrations and does not account for a user unregistering. |
viralPostViewJobApplications | NUMBER | The number of times a member completed a job application after viewing a viral ad. |
viralPostViewJobApplyClicks | NUMBER | The number of times a member clicked on the job's apply button on an LinkedIn jobs page after viewing a viral ad which has a LinkedIn job landing page. |
viralPostViewRegistrations | NUMBER | The number of times a member has registered for an event or seminar after viewing a viral ad which has a LinkedIn event landing page. See viralImpressions definition. This includes gross registrations and does not account for a user unregistering. |
viralReactions | NUMBER | The count of positive reactions on viral Sponsored Content which can capture like, interest, praise, and other responses. See viral impressions definition for details on viral engagements. |
viralRegistrations | NUMBER | The number of times a member has registered for an event or seminar after viewing or clicking on a viral ad which has a LinkedIn event landing page. See viralImpressions definition. This includes gross registrations and does not account for a user unregistering. |
viralShares | NUMBER | The count of shares from viral impressions for this activity. See viral impressions definition. Sponsored Content only. |
viralSubscriptionClicks | NUMBER | The count of viral clicks to subscribe to a series, such as a Newsletter. |
viralTotalEngagements | NUMBER | The count of all user interactions with a viral ad unit. See viral impressions definition. Sponsored Content only. |
viralVideoCompletions | NUMBER | The count of viral video ads that played 97-100% of the video. This includes watches that skipped to this point. See viralImpressions definition. |
viralVideoFirstQuartileCompletions | NUMBER | The count of viral video ads that played through the first quartile of the video. This includes watches that skipped to this point. See viralImpressions definition. |
viralVideoMidpointCompletions | NUMBER | The count of viral video ads that played through the midpoint of the video. This includes watches that skipped to this point. See viralImpressions definition. |
viralVideoStarts | NUMBER | The count of viral video ads that were started by users. See viralImpressions definition. Since viral videos are automatically played for ON_SITE, this will be the same as viralImpressions if the servingLocation is ON_SITE. |
viralVideoThirdQuartileCompletions | NUMBER | The count of viral video ads that played through the third quartile of the video. This includes watches that skipped to this point. See viralImpressions definition |
viralVideoViews | NUMBER | A viral video ad playing for at least 2 continuous seconds 50% in-view, or a click on the CTA, whichever comes first. An interaction with the video (like going to full screen mode) does not count as a view. See viralImpressions definition. |
LinkedIn Ads Campaign Groups schema
14 fieldsSchema on GitHublinkedin_ads_ad_campaign_groups
Top-level containers that group campaigns with shared objectives, budgets, and scheduling.
| Field | Type | Description |
|---|---|---|
account | STRING | URN identifying the advertising account associated with the campaign. This value is immutable once set. For example, urn:li:SponsoredAccount:{id}. |
accountInfo | OBJECT | Information about the advertising account associated with the campaign. This is a read only field. Please refer to Additional Info Fields to learn how to access this field. |
backfilled | BOOLEAN | Flag that denotes whether the campaign group was created organically or to backfill existing campaigns. This is a read-only field set by the system. |
idPK | STRING | Numerical identifier for the campaign group. This is a read-only field set by the system. |
name | STRING | The name of the campaign group used to make it easier to reference a campaign group and recall its purpose. The value of this field cannot exceed 100 characters. |
runSchedule | OBJECT | Scheduled date range to run associated campaigns under this campaign group. The start date must be non-null. Represents the inclusive (greater than or equal to) value in which to start the range. The end date is optional and if unset, it indicates an open range with no end date. This field is required if totalBudget is set. |
servingStatuses | ARRAY | Array of enums that determine whether or not campaigns within the campaign group may be served. Unlike status, which is user-managed, the values are controlled by the service. This is a read-only field. Possible values are:RUNNABLE Campaign group is currently active; billing information, budgetary constraints, or start and end dates are valid. |
status | STRING | Status of campaign group. Possible values are:ACTIVE - Denotes that the campaign group is capable of serving ads, subject to run date and budget limitations (as well as any other limitations at the account or campaign level). |
totalBudget | OBJECT | If budgetOptimization.budgetOptimizationStrategy is DYNAMIC, the total budget of the campaign group will be shared among all campaigns within the same campaign group. Otherwise, it represents the maximum amount to be spent over the life of the campaign group. The amount of money as a real number string. The currency must match the ISO currency code of the account. |
test | BOOLEAN | Flag showing whether this campaign group is a test campaign group, i.e., belongs to a test account. This is a read-only and immutable field that is set implicitly during creation based on whether the account is a Test Account or not. |
allowedCampaignTypes | ARRAY | Array of enums that indicates allowed campaign types within the specific campaign group. Possible values are:TEXT_AD - Text-based ads that show up in the right column or top of the page on LinkedIn. |
objectiveType | STRING | Campaign Group Objective type values. This field is optional and immutable. Campaigns in this group will automatically have the same objective type. Click here for Objective descriptionsBRAND_AWARENESS |
budgetOptimization | OBJECT | Denotes the strategy used for bidding in auction and budget optimization across campaigns under the campaign group. Campaigns under the campaign group must have the same bid strategy. Possible values for bidStrategy: MAXIMUM_DELIVERY. Possible values for budgetOptimizationStrategy: DYNAMIC. |
dailyBudget | NUMBER | Daily budget for the campaign group and will be shared among all campaigns within the campaign group. This field is optional and mutable. It can only be used if budgetOptimization.budgetOptimizationStrategy is DYNAMIC Note: This field applies to API Versions starting from 202504 and later. |
LinkedIn Ads Campaigns schema
29 fieldsSchema on GitHublinkedin_ads_ad_campaigns
Individual campaigns defining your targeting, ad format, bid strategy, and budget.
| Field | Type | Description |
|---|---|---|
idPK | STRING | Unique internal ID representing the campaign |
account | STRING | URN identifying the advertising account associated with the campaign. This value is immutable once set. For example, urn:li:sponsoredAccount:{id} |
accountInfo | OBJECT | Information about the advertising account associated with the campaign. This is a read only field. Please refer to Additional Info Fields to learn how to access this field. |
associatedEntity | STRING | An URN identifying the intended beneficiary of the advertising campaign such as a specific company or member |
associatedEntityInfo | OBJECT | Information about the associatedEntity. If the entity is an organization, an OrganizationInfo object is returned. If the entity is a person, a PersonInfo object is returned. For all other entity types an empty record will be returned. This is a read only field. Please refer to Additional Info Fields to learn how to access this field. |
audienceExpansionEnabled | BOOLEAN | Enable Audience Expansion for the campaign provides query expansion for certain targeting criteria. |
campaignGroup | STRING | URN identifying the campaign group associated with the campaign. The campaign group URN must be specified for campaign creation starting October 30, 2020. |
campaignGroupInfo | OBJECT | Information about the Campaign Group associated with the campaign. This is a read only filed. Please refer to Additional Info Fields to learn how to access this field. |
costType | STRING | CPM- Cost per thousand advertising impressions. If type=SPONSORED_INMAILS; cost per send(CPS) is measured as CPM x 1000. |
creativeSelection | STRING | ROUND_ROBIN - Rotate through available creatives to serve them as evenly as possible. |
dailyBudget | OBJECT | Maximum amount to spend per day UTC. The amount of money as a real number string. ISO currency code. The currency must match that of the parent account. |
locale | OBJECT | Locale of the campaign. An uppercase two-letter country code as defined by ISO-3166 and a lowercase two-letter language code as defined by ISO-639. The country and language combination must match one of the supported locales. |
name | STRING | The name of the campaign; primarily used to make it easier to reference a campaign and to recall its purpose. |
objectiveType | STRING | Campaign Objective type values. Click here for Campaign Objective descriptionsBRAND_AWARENESS |
offsiteDeliveryEnabled | BOOLEAN | Allows your campaign to be served on the LinkedIn Audience Network to extend the reach of the campaign by delivering ads beyond the LinkedIn feed to members on third-party apps and sites. There is no default set. |
offsitePreferences | OBJECT | Offsite preferences that an advertiser specifies for this campaign. An example OffsitePreference is an object that contains App Categories, App Store URLs, Web Domain Names for which this campaign should be included/excluded. See the OffsitePreferences object for more details and examples. |
runSchedule | OBJECT | Scheduled date range to run associated creatives. Object with start (inclusive) and end (exclusive) timestamp fields. The start date must be non-null. The end date is optional and if unset, it indicates an open range. |
targetingCriteria | OBJECT | Specifies targeting criteria that the member should match. This is a more advanced boolean expression than the previous targeting field. It provides a generic AND/OR construct to include and exclude different targeting facets when defining audiences for campaigns. |
totalBudget | OBJECT | Maximum amount to spend over the life of the campaign. The amount of money as a real number string. ISO currency code. The currency must match that of the account. Deprecated for campaigns not using lifetime pacing. |
type | STRING | TEXT_AD - Text-based ads that show up in the right column or top of the page on LinkedIn. |
unitCost | OBJECT | Amount to bid per click, impression, or other event depending on the pricing model. The amount of money as a real number string. The amount should be non-negative if the bidding strategy is manual, target cost, or cost cap bidding. The default is 0 with the currency code set to match that of the associated account. ISO currency code. |
status | STRING | ACTIVE - Denotes that the campaign is fully servable. |
optimizationTargetType | STRING | Determines how this campaign is optimized for spending. If this is not set, there is no optimization. Refer to the documentation here. |
format | STRING | The ad format on campaign level. |
pacingStrategy | STRING | Identifies the pacing option used for the campaign. |
test | BOOLEAN | Flag showing whether this campaign is a test campaign, i.e., belongs to a test account. This is a read-only and immutable field that is set implicitly during creation based on whether the account is a Test Account or not. |
servingStatuses | ARRAY | Array of enums that determine whether or not a campaign may be served; unlike 'status', which is user-managed, the values are controlled by the service. This is a read-only field. Possible values are:RUNNABLE Campaign is eligible for serving. |
connectedTelevisionOnly | BOOLEAN | Flag showing whether this campaign is a Connected Television Only campaign. Allow advertisers to specify when they're creating a CTV campaign. Not specifying the boolean can be considered false. When 'connectedTelevisionOnly = true', offsiteDeliveryEnabled should be set to true. Note: Applicable only from versions 202408 and above. |
optimizationPreference | OBJECT | Allows granular optimization customization on this campaign on top of optimizationTargetType. FrequencyOptimizationPreference is the first type of optimizationPreference we support now. Note: Applicable only from versions 202408 and above. |
LinkedIn Ads Creatives schema
14 fieldsSchema on GitHublinkedin_ads_creatives
The visual and copy elements of your ads shown to members across LinkedIn.
| Field | Type | Description |
|---|---|---|
account | STRING | URN identifying the advertising account associated with the creative. This field is read-only. |
campaign | STRING | URN identifying the campaign associated with the creative |
content | STRING | Content sponsored in the creative. On creation, it can be dynamic Ad content (follower, job, spotlight), text, document, or a reference to InMail Content or post (image, video, article, carousel). Content can also be extended and specified as inline content instead of an URN. A reference must be a adInMailContent{id}, share{id}, or ugcPost{id}. |
createdAt | NUMBER | Creation time |
createdBy | STRING | Entity (e.g., a person URN) that developed the creative |
idPK | STRING | Unique ID for a creative (e.g.,SponsoredCreativeUrn). Read-only |
intendedStatus | STRING | Creative user intended status. The creative intended status is set independently from parent entity status, but parent entity status overrides creative intended status in effect. For example, parent entity status may be PAUSED while creative status is ACTIVE, in which case the creative's effective status is PAUSED, and not served.ACTIVE - Creative development is complete and the creative is available for review and can be served. |
isServing | BOOLEAN | This indicates whether the creative is currently being served or not. This field is read-only. |
lastModifiedAt | INTEGER | Time at which the creative was last modified in milliseconds since epoch. |
lastModifiedBy | STRING | The entity (e.g., person URN) who modified the creative |
leadgenCallToAction | OBJECT | The field is needed for call to action. This currently only applies if the campaign objective is LEAD_GENERATION. |
review | OBJECT | Creative review status. The review status cannot be set/updated via the API but is started when the creative is activated (i.e., moves from draft state to active state). Hence, the review is absent (null) when the creative is in DRAFT state. Read-only. |
servingHoldReasons | ARRAY | Array that contains all the reasons why the creative is not serving. In the case a creative is being served, this field will be null and not present in the response. |
name | STRING | The name of the creative that can be set by advertiser; primarily used to make it easier to reference a Creative and to recall its purpose. |
You are booked. The invitation is on its way to , with the calendar invite and the meeting link.