Skip to main content
Glama

Opus Growth, Ad Platforms MCP Connector

LinkedIn Performance Report

linkedin_campaign_analytics
Read-onlyIdempotent

LinkedIn performance report. pivot: CAMPAIGN | CREATIVE | CAMPAIGN_GROUP | ACCOUNT | MEMBER_JOB_TITLE | MEMBER_JOB_FUNCTION | MEMBER_INDUSTRY | MEMBER_SENIORITY | MEMBER_COMPANY_SIZE ... Up to THREE pivots at once, comma-separated (e.g. pivot='CAMPAIGN_GROUP,CAMPAIGN,CREATIVE') via LinkedIn's Statistics finder; combinable pivots are ACCOUNT, CAMPAIGN_GROUP, CAMPAIGN, CREATIVE, CONVERSION. Professional demographic pivots (MEMBER_*) work one at a time. campaign_ids = comma-separated campaign ids to narrow the report. start_date/end_date (YYYY-MM-DD) override days. Performance data is kept 10 years, professional demographic data 2 years (https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads-reporting/ads-reporting). time_granularity: ALL | DAILY | MONTHLY. fields: comma-separated metric list (empty = default set; up to 20). Demographic pivots have a 12-24h delay and privacy thresholds.

Each row carries pivot_names — the HUMAN-READABLE labels for pivotValues, resolved for you at EVERY level: campaign / ad set / campaign group / creative names as well as demographic labels. Report from pivot_names; never show raw URNs like urn:li:title:95 to the user and do NOT try to reverse them with typeahead search (that only goes name→ID). Anything that genuinely could not be resolved is listed in unresolved_pivot_urns.

With pivot=CREATIVE each row also carries creative_content (headline, description, landing_page, format), so for TEXT-BASED formats (textAd, spotlight, follow/jobs ads) you can correlate MESSAGING with performance directly, without a second call.

POST-BASED formats are the exception and in many accounts they are the MAJORITY of spend (Sponsored Content, Document Ads, Thought Leader Ads). There the copy lives in the referenced post, so by default creative_content carries post_urn + post_permalink and ad_copy_status: "not_fetched" instead of the text — the report stays fast. The copy IS retrievable: rank the rows first, then call linkedin_ad_copy with the top creative ids (or re-run with include_ad_previews=true) — it reads the real ad text from LinkedIn's PUBLIC Ad Library, plus author_type / is_thought_leader_ad (Thought Leader Ads) and preview_url. Both paths are capped at 60 creatives, so narrow down first. Never invent copy and never present an internal creative name as the ad text.

Rows also carry computed ctr, engagement_rate, cpc, cpm (ratios, not %) — LinkedIn returns only raw counts; use these instead of recomputing. pivotValues is always requested even if you pass a custom fields list (without it rows have no identity).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
daysNo
pivotNoCAMPAIGN
fieldsNo
end_dateNo
account_idNo
start_dateNo
campaign_idsNo
time_granularityNoALL
include_ad_previewsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added
  2. Removed
  3. Added
  4. Removed
  5. Added
  6. Removed
  7. Added
  8. Removed
  9. Added
  10. Removed
  11. Added
  12. Removed
  13. Added
  14. Removed
  15. Added
  16. Removed
  17. Added
  18. Removed
  19. Added
  20. Removed
  21. Added
  22. Removed
  23. Added
  24. Removed
  25. Added
  26. Removed
  27. Added
  28. Removed
  29. Added
  30. Removed
  31. Added
  32. Removed
  33. Added
  34. Removed
  35. Added
  36. Removed
  37. Added
  38. Removed
  39. Added

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.