# LinkedIn Ads Domain Vocabulary — Resources

## Knowledge

- [LinkedIn Advertising API — Overview (Microsoft Learn)](https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/ads-overview)
  The canonical top-level map: Ad Account → Account Users → Campaign Group → Campaign → Creative, plus the list of ad formats and the analytics surfaces. Use for: the shape of the object hierarchy and its hard limits (5,000 campaigns/account, 15,000 creatives/account).

- [Create and Manage Creatives (Microsoft Learn)](https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-creatives)
  The Creatives API schema, `inlineContent`, `CreativeReview`, `servingHoldReasons`, call-to-action labels. Use for: what a creative *is* versus what the underlying post is, and which URNs (`share`, `ugcPost`, `video`, `event`) can be referenced as sponsorable content.

- [Create and Manage Campaigns (Microsoft Learn)](https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-campaigns)
  Campaign schema: objective type, optimization target, bidding, budget, schedule, `targetingCriteria`. Use for: the vocabulary of *how* delivery is controlled.

- [Create and Manage Campaign Groups (Microsoft Learn)](https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-campaign-groups)
  Use for: why the layer exists (shared status/budget/pacing across related campaigns) and the default-group gotcha.

- [Marketing API Versioning (Microsoft Learn)](https://learn.microsoft.com/en-us/linkedin/marketing/versioning)
  The `li-lms-YYYY-MM` moniker scheme and the sunset cadence. Use for: pinning a version in your integration and knowing when vocabulary shifts under you.

- [LinkedIn Marketing Solutions Versioned APIs — Postman collection](https://www.postman.com/linkedin-developer-apis/workspace/linkedin-marketing-solutions-versioned-apis/collection/17563548-fab92f95-bfc5-4949-a52b-e760cc56e195)
  Executable request shapes. Use for: seeing real payloads without burning API access, and for checking whether a field is required.

- [Advertising API Integration Requirements (Microsoft Learn)](https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/integration-requirements)
  What LinkedIn demands you build before technical sign-off. Use for: scoping which entities your integration is obliged to support.

- [Matched Audiences — Overview (Microsoft Learn)](https://learn.microsoft.com/en-us/linkedin/marketing/matched-audiences/matched-audiences)
  The DMP Segment → Ad Segment pipeline, the three input mechanisms, and the full state machine with its archival/expiry timings. Use for: anything audience-related, and for the access-program caveat (`rw_dmp_segments` is vetted separately from the Advertising API).

- [DMP Segments (Microsoft Learn)](https://learn.microsoft.com/en-us/linkedin/marketing/matched-audiences/create-and-manage-segments)
  The `dmpSegment` schema, `type`/`sourcePlatform` pairing, the 1,000-per-account cap and `SEGMENT_LIMIT_EXCEEDED`, and the deletion cascade. Use for: exact field names when writing the segment sync.

- [targetingCriteria Object (Microsoft Learn)](https://learn.microsoft.com/en-us/linkedin/shared/references/v2/ads/targeting-criteria)
  The include/and/or/exclude grammar and order of evaluation. Short, and the single most re-read page in this list. Use for: getting the CNF shape right.

- [Targeting Criteria Facet URNs (Microsoft Learn)](https://learn.microsoft.com/en-us/linkedin/shared/references/v2/ads/targeting-criteria-facet-urns)
  Every facet, its value URN type, and the AND-restriction notes buried in the description column. Use for: building a targeting UI, and for the `audienceMatchingSegments` vs `dynamicSegments` split.

- [Ad Targeting — discovery APIs (Microsoft Learn)](https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/advertising-targeting/ads-targeting)
  `/adTargetingFacets`, `/adTargetingEntities`, and the urn-to-name resolver. Use for: never hardcoding a facet value list, and for rendering stored URNs as localised names.

- [Campaign Objectives (Microsoft Learn)](https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/campaign-objectives)
  The objective → `campaign.format` → `creativeType` → bidStrategy → `optimizationTargetType` → costType mapping, one table per objective. Use for: the only place the five delivery vocabularies are lined up against each other, and for `TALENT_LEAD`, which appears nowhere else.

- [Ad Account Users (Microsoft Learn)](https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-account-users)
  The five roles, the `(account=…,user=…)` composite key, the `q=authenticatedUser` and `q=accounts` finders, and the named 4xx reasons. Use for: onboarding a tenant, and for the PUT-creates/POST-updates inversion.

- [Account Access Controls (Microsoft Learn)](https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/account-access-controls)
  Overlaps `create-and-manage-account-users` heavily but adds the read-visibility rule (a non-account-manager sees only themselves) and `organizationalEntityCreateShareAuthorizations`. Use for: checking whether a member may create a dark post before you try.

- [Marketing API FAQ (Microsoft Learn)](https://learn.microsoft.com/en-us/linkedin/marketing/lms-faq)
  Short and disproportionately load-bearing: three-legged-only, Development vs Standard tier, the "multiple ad accounts requires Standard tier" rule, the 403-means-account-not-added diagnosis, and the access route for every restricted scope. Use for: anything about why a call is forbidden rather than wrong.

## Gaps

- No single authoritative *glossary* exists; the vocabulary is scattered across schema pages. Lessons will assemble it.
- The relationship between the ads domain and the organic content domain (`ugcPost`, `posts`, `organizationalEntity`) is documented separately and never reconciled in one place. Covered by Lesson 02, but no single upstream source exists.
- The AND-restriction rules between facets are scattered through a description column rather than stated as a matrix. No authoritative machine-readable source — Lesson 03 assembles it by hand, so re-verify it against the docs before shipping validation logic.
- `dmpSegment` state transitions are documented as prose plus an image. The timings (48h/24h/30d/90d) are stated but the terminal/non-terminal distinction for `EXPIRED` is only inferable. Worth confirming with LinkedIn developer support before relying on it.
- **No canonical `campaign.format` enum.** The `campaign-formats` page referenced from the campaign schema returns 404 at the unversioned URL. The full format list has to be reconstructed from the Campaign Objectives tables plus the per-format integration pages. Lesson 05 does this by hand; treat the list as incomplete.
- **`objectiveType` has no trustworthy source.** Schema table (plural), worked examples (singular), Dynamic Ads section (`WEBSITE_TRAFFIC`) and the objectives page (`TALENT_LEAD`) all disagree. The Postman collection and a live POST in a test account are the only oracles. Same for `bidStrategy`, which the validation tables use and the schema never defines.
- **Lead gen format family unresolved.** Two current pages list mutually exclusive `format` values for `objectiveType: LEAD_GENERATION`. Needs a live check before the lead gen path is built.
- **No documented list of `servingStatuses` for campaign groups**, though the field exists on the schema. The campaign list is documented; the group's is assumed to be the same minus the campaign-level entries.
- **No source for OAuth token/refresh lifetimes** in the marketing docs — it lives in the shared authentication docs, which are not yet in this list. Needed before the multi-tenant connection model (KC25) is finalised.
