Docs

Connect LinkedIn Ads

LinkedIn does not offer a Composio-managed app. The deployment needs its own LinkedIn developer app with the Advertising API product (reporting) – and the Conversions API product if you want to upload conversions through Composio. LinkedIn reviews Advertising API access manually; plan for several weeks. Until the auth config exists, LinkedIn shows not configured.

Connect

  1. Dashboard → Settings → Integrations → LinkedIn Ads → Connect.
  2. Sign in with a LinkedIn account that has at least Viewer (reporting) or Campaign manager role on the ad account.
  3. Select the ad accounts of this project. A backfill of 90 days starts in one-month chunks (LinkedIn's analytics API returns one account per call).

What is imported

3x levelLinkedIn object
campaigncampaign group
ad setcampaign
adcreative

Daily analytics per creative: spend (costInLocalCurrency), impressions, clicks, platform conversions. Names are joined from the entity lists because the analytics endpoint returns only URNs.

Time zone: LinkedIn's daily analytics are reported in UTC and the API does not expose an account time zone, so LinkedIn accounts are stored with UTC. Daily charts can be offset by your project's UTC offset; totals over a range are unaffected.

Enable URL tracking parameters on the campaign and use the UTM template with LinkedIn's dynamic values ({{CAMPAIGN_ID}}, {{CREATIVE_ID}}, {{CAMPAIGN_GROUP_ID}}). LinkedIn appends li_fat_id when enhanced conversion tracking is on – 3x stores it for conversion uploads.

Troubleshooting

SymptomCauseFix
not configuredno COMPOSIO_AUTH_CONFIG_LINKEDIN_ADScreate the app and auth config
403 ACCESS_DENIEDthe signed-in member has no role on the accountgrant a role in Campaign Manager, then reconnect
Sponsored posts unmatchedorganic post URL without UTMsadd URL tracking parameters or a mapping rule
Token expired after 60 daysLinkedIn member tokens are short-livedclick Reconnect (refresh tokens are used when your app has them)