LinkedIn Ads joins as a full platform, and the political-intent field that blocks every create without it
LinkedIn Ads is the B2B platform this product has been missing, and it arrived as a full platform rather than a reporting connector: 25 reads and 41 writes, every write approval-gated and bound to the ad account it names. Three things about it are unusual enough to state up front, because each one changes how you plan around it.
What shipped
- 25 reads, 41 writes. Campaign groups, campaigns, creatives, audiences, conversions, organic posts and reporting — with every write reading its object first and bound to that ad account's URN.
- Money is already major units. LinkedIn returns
{ amount, currencyCode }, so nothing is divided on the way in or out, and the currency is always the account's own. - Reporting is UTC, with no account time zone. Daily budgets are UTC days too — a detail that quietly shifts a day boundary if you assume otherwise.
- Lead form responses are redacted on every lane, and test submissions are left out unless you ask for them. Answers people typed into a form are personal data, not report rows.
The three rules a live test account taught
These were measured against a real ad account rather than read off the documentation, which is the only reason they are stated this precisely.
politicalIntentis required. A campaign create returns 422 without it. Ours sendsNOT_DECLAREDunless you say otherwise — EU targeting needs the advertiser's own declaration, and that is not a thing software should declare on somebody's behalf.- A new creative is created as a draft, and cannot be set to paused until its review is approved. A draft creative, and a campaign under a draft group, cannot be archived either — they have to be deleted, which LinkedIn's own error hint says.
- Bids and optimization travel together. A bid sent as 0 stops delivery, so it is refused whatever the mode, and a cost type LinkedIn forbids for the chosen mode is refused rather than sent.
What is still pending on LinkedIn's side
Three tool groups answer "pending LinkedIn review" from the grant before any call, rather than failing at the API with something unhelpful: the Conversions API, Matched Audiences and Lead Sync. They land when LinkedIn approves the products, and nothing about the rest of the integration waits on them.
Frequently asked questions
- Can the agent publish an organic LinkedIn post?
- Yes, and it always stops at a person first. Publishing an organic post, sharing as a member, archiving a post (which cannot be undone) and deleting one are all person-class on every lane, including under auto-approve.
- Why does a LinkedIn campaign create need political intent?
- LinkedIn returns 422 without the field. EU targeting requires the advertiser to declare whether a campaign is political, and that declaration is the advertiser's to make — so a create sends NOT_DECLARED unless you explicitly pass NOT_POLITICAL or POLITICAL.
- Does LinkedIn Ads support the Conversions API here?
- Not yet. The Conversions API, Matched Audiences and Lead Sync all sit behind LinkedIn's product review, and those tools answer "pending LinkedIn review" from the grant rather than failing at the API.
- Are LinkedIn lead form answers visible to the agent?
- They are redacted on every lane. Lead form responses are answers a person typed, and they are treated as personal data rather than as report rows; test submissions are excluded unless you ask for them specifically.