# LinkedIn Ads setup for PopMCP

You end up pasting the Client ID and Client Secret of a LinkedIn developer app that has been approved for the Advertising API product.

- Auth: OAuth authorization
- Setup time: 15 min, plus LinkedIn's review of the Advertising API request
- API base URL: https://api.linkedin.com/rest
- Credentials screen: https://www.linkedin.com/developers/apps
- Provider docs: https://learn.microsoft.com/en-us/linkedin/marketing/

## Approval required before this works

LinkedIn must approve your app for the Advertising API (Marketing Developer Platform) before ad account and ad reporting scopes are granted, and a second support-ticket review is needed to move from Development to Standard tier.

- Typical wait: not published by LinkedIn; developers commonly report several days to a few weeks for Advertising API access and weeks to a few months for Standard tier or the restricted products
- Cost: Free
- Blocked until approved: Until Advertising API access is approved your app cannot be granted r_ads, rw_ads or r_ads_reporting, so no campaign data, no ad analytics and no campaign management calls work at all — OAuth will simply refuse to issue those scopes. On the Development tier that follows approval, reading is unlimited for ad accounts you administer but you may create only one test ad account via the API and edit at most five ad accounts; unlimited creation/editing needs Standard tier.
- Works meanwhile: You can create the app in the LinkedIn Developer Portal and get client id/secret instantly, run OAuth with the self-serve Sign In with LinkedIn / Share on LinkedIn products, and build against the versioned API docs. Real ad data requires the approval.

## Before you begin

- A LinkedIn Page you are a Super admin of. The Developer Portal will not let you create or verify an app without one
- A LinkedIn member account with an ad account role of ACCOUNT_BILLING_ADMIN, ACCOUNT_MANAGER, CAMPAIGN_MANAGER or CREATIVE_MANAGER in Campaign Manager
- Approval for the Advertising API product, requested from the app's Products tab. Every new app starts on the Development tier
- For sponsored or organic posting, the Community Management API product on the same app
- Development tier allows edits to only 5 ad accounts. Standard tier is a separate support-ticket request

## Get your credentials

### 1. Create a developer app tied to your LinkedIn Page

Open the Developer Portal and choose My apps → Create app. Enter the app name, paste your company's LinkedIn Page URL, add a privacy policy URL and a logo, tick the Legal agreement box, then click Create app.

Screen: https://www.linkedin.com/developers/apps/new

### 2. Verify the app from your LinkedIn Page

Open the app's Settings tab and click Verify next to the LinkedIn Page. Copy the generated verification URL, open it while signed in as a Super admin of that Page, then click I'm done.

Screen: https://www.linkedin.com/developers/apps

### 3. Request the Advertising API product

Open the Products tab and click Request access on Advertising API, then complete the access form. Add Community Management API if PopMCP should publish sponsored or organic posts, and Lead Sync API for lead gen forms.

Screen: https://www.linkedin.com/developers/apps

### 4. Add the PopMCP callback URL

On the Auth tab, click the pencil next to OAuth 2.0 settings → Authorized redirect URLs for your app and use Add redirect URL to paste the callback URL from the PopMCP connect screen. Click Update.

Screen: https://www.linkedin.com/developers/apps

### 5. Copy the Client ID and Client Secret

Still on the Auth tab, copy Client ID and Primary Client Secret from the Application credentials card into the matching PopMCP fields. Scroll down to OAuth 2.0 scopes and check that `r_ads`, `rw_ads` and `r_ads_reporting` are listed.

Screen: https://www.linkedin.com/developers/apps

## Fields PopMCP asks for

- Client ID (clientId) [required]: LinkedIn Developer Portal → My apps → your app → Auth → Application credentials. The app needs the Advertising API product (and the Community Management API product if you want to publish sponsored posts). Add the callback URL above to the app's Authorized redirect URLs first.
- Client Secret (clientSecret) [required]: Same Auth tab as the Client ID. Stored encrypted, used server-side only, and never sent to the browser or to any tool.

## Callback URL to register

https://app.popmcp.com/api/providers/linkedin-ads/callback

## Scopes requested

- r_ads
- rw_ads
- r_ads_reporting
- r_basicprofile
- r_organization_admin
- rw_organization_admin
- r_organization_social
- w_organization_social
- w_member_social
- rw_conversions
- r_marketing_leadgen_automation
- r_events
- rw_events

## Verify

PopMCP shows the LinkedIn Ads connector as Connected, with your LinkedIn member name and a picker listing the nine-digit ad accounts you administer in Campaign Manager.

## Troubleshooting

### The connect popup dies with "unauthorized_scope_error"

Cause: The app has not been approved for a product that grants one of the requested scopes. Usually the Advertising API is still in review, or Community Management was never requested.

Fix: Open the app's Auth tab and compare the OAuth 2.0 scopes list against the scopes PopMCP asks for. Request the missing product on the Products tab and reconnect once it flips to Added.

### 401 "Redirect_uri doesn't match"

Cause: The callback URL in the app's Auth tab differs from the one PopMCP sends. Often a trailing slash, http instead of https, or a URL typed but never saved with Update.

Fix: Re-copy the callback URL from the PopMCP connect screen, paste it verbatim into Authorized redirect URLs, then click Update.

### Reads work but any campaign edit returns a 403 or ACL error

Cause: Development tier allows edits on only five ad accounts, and only accounts explicitly mapped to the app.

Fix: In the Developer Portal open Products → View Ad Accounts → Add Ad Account and paste the nine-digit ID from Campaign Manager. For unlimited accounts, raise a Standard tier request on the Developer Support Portal with a video of your workflow.

### The connection stops working after about two months

Cause: LinkedIn access tokens live 60 days. Refresh tokens are only issued to apps that have programmatic refresh enabled.

Fix: Reconnect the connector in PopMCP. For unattended refresh, ask LinkedIn Developer Support to enable programmatic refresh tokens for the app.

### The Products tab shows nothing to request

Cause: The app is not verified against its LinkedIn Page.

Fix: Open the Settings tab, click Verify, open the generated URL as a Page Super admin, and confirm.

### The app cannot be created because no Page is available

Cause: LinkedIn will not issue Advertising API access to an app with no LinkedIn Page behind it, and you must be a Super admin of that Page.

Fix: Create or claim the LinkedIn Page first, give yourself the Super admin role on it, then return to My apps → Create app.

---

Source: https://www.docs.popmcp.com/docs/integrations/linkedin-ads/