All integrations

LinkedIn Ads

MARKETING · MARKETING

Campaign groups, campaigns, creatives, lead forms and reporting for their own ads.

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

linkedin_ads_activate_campaignWRITE

DESTRUCTIVE — SPENDS MONEY. Set a campaign to ACTIVE. From this call onwards LinkedIn serves its ads and charges the ad account up to the campaign's daily and total budgets, without asking again. Read those two numbers with get_campaign first: they are what this call authorises. The campaign's group must also be ACTIVE for anything to deliver. Reversible with pause_campaign; money already spent is not refunded.

rw_ads
linkedin_ads_activate_campaign_groupWRITE

DESTRUCTIVE — SPENDS MONEY. Set a campaign group to ACTIVE so every active campaign inside it starts delivering and charging the ad account. The group's total budget is the ceiling; read it with get_campaign_group before calling this, because that number is what you are authorising. Reversible with pause_campaign_group, but money already spent is not refunded.

rw_ads
linkedin_ads_activate_creativeWRITE

DESTRUCTIVE — SPENDS MONEY. Mark a creative ACTIVE so LinkedIn serves it. Once its campaign and campaign group are also ACTIVE this ad starts costing the account money, bounded only by the campaign's budgets. LinkedIn's own creative review still applies. Reversible with pause_creative; spend is not refunded.

rw_ads
linkedin_ads_add_ad_account_userWRITE

DESTRUCTIVE — give a LinkedIn member a role on an ad account. This is an access-control change, not a data change: the person can afterwards spend from the account through Campaign Manager, with no further involvement from Agentic Fabriq and no Agentic Fabriq audit row behind anything they do. ACCOUNT_BILLING_ADMIN cannot be granted through Agentic Fabriq at all — an account has exactly one and that is the person LinkedIn invoices. Reversible with remove_ad_account_user.

rw_ads
linkedin_ads_add_companies_to_dmp_segmentWRITE

Add companies to a COMPANY-type matched audience, by LinkedIn organization URN, name, website or email domain. Company data is not personal data, so unlike the people equivalent nothing here is hashed. Reversible with remove_companies_from_dmp_segment.

rw_dmp_segments
linkedin_ads_add_users_to_dmp_segmentWRITE

Add people to a matched audience by hashed identifier. THIS SENDS PERSONAL DATA ABOUT THE CUSTOMER'S OWN CONTACTS TO LINKEDIN. Identifiers must already be hashed: Agentic Fabriq accepts only SHA256_EMAIL (64 hex characters), SHA512_EMAIL (128) and GOOGLE_AID, and verifies the hash shape before anything is sent, because LinkedIn's own rule is that raw email addresses must never appear in this field. Lowercase and trim an address before hashing it or it will not match. Up to 5,000 people per call. Reversible with remove_users_from_dmp_segment.

rw_dmp_segments
linkedin_ads_archive_campaignWRITE

DESTRUCTIVE — archive a campaign. It stops delivering and leaves the default Campaign Manager view. Reversible with unarchive_campaign, which returns it to DRAFT rather than to ACTIVE, so archiving and unarchiving a live campaign does not resume it.

rw_ads
linkedin_ads_archive_campaign_groupWRITE

DESTRUCTIVE — archive a campaign group. It stops delivering and disappears from the default Campaign Manager view. Reversible with unarchive_campaign_group, which returns it to DRAFT — not to ACTIVE, so archiving a live group and unarchiving it does NOT resume delivery on its own.

rw_ads
linkedin_ads_archive_creativeWRITE

DESTRUCTIVE — archive a creative so it stops serving and leaves the default view. Reversible with unarchive_creative, which returns it to DRAFT rather than to ACTIVE.

rw_ads
linkedin_ads_associate_conversion_with_campaignWRITE

Attach a conversion rule to a campaign so LinkedIn attributes that outcome to it. Changes what is measured, not what is spent. Reversible with remove_conversion_from_campaign.

rw_conversions
linkedin_ads_browse_targeting_entitiesREAD

List the values available inside one targeting facet — every seniority, every industry, every country. Returns each value's URN and display name; the URN is what update_campaign_targeting needs. Use typeahead_targeting_entities instead for large facets such as job titles or companies, where browsing is impractical.

r_ads
linkedin_ads_cancel_ad_accountWRITE

DESTRUCTIVE — cancel an entire ad account. Every campaign under it stops delivering immediately, across every campaign group. This is the widest blast radius in the LinkedIn Ads catalog: it does not affect one campaign, it stops the account. Reversible with reactivate_ad_account, but delivery lost while cancelled is not recovered and any pacing LinkedIn had learned is reset.

rw_ads
linkedin_ads_create_ad_accountWRITE

Create a LinkedIn ad account. Created in DRAFT — an account cannot serve or spend until a person adds a billing method in Campaign Manager, which no API can do. Set test=true for a sandbox account whose ads are never served and never billed; that flag is fixed for the account's whole life and cannot be changed later. On a Development-tier app LinkedIn allows exactly one API-created account and it must be a test account; real accounts must be made in Campaign Manager until the app reaches Standard tier.

rw_ads
linkedin_ads_create_ad_target_templateWRITE

Save a targeting definition as a reusable template on an ad account. Additive and spends nothing — a template is not attached to any campaign until someone uses it.

rw_ads
linkedin_ads_create_campaignWRITE

Create a campaign inside a campaign group. ALWAYS CREATED IN DRAFT — a new campaign can never deliver or spend on the call that made it, and no argument changes that. Agentic Fabriq REQUIRES a daily budget or a total budget, and REQUIRES an end date, even though LinkedIn will accept a campaign with neither: those are the caps that bound what this campaign can ever cost. A campaign with no ceiling is not expressible through this tool.

rw_ads
linkedin_ads_create_campaign_groupWRITE

Create a campaign group. ALWAYS CREATED IN DRAFT — nothing under a draft group can deliver or spend, and there is no argument that changes that; activation is a separate, separately granted action. A total budget and an end date are both REQUIRED by Agentic Fabriq even though LinkedIn allows a group with neither: those two values are the ceiling that makes everything under this group bounded, and a group without them can spend without limit until a person notices.

rw_ads
linkedin_ads_create_conversionWRITE

Create a conversion rule on an ad account so LinkedIn can attribute outcomes to advertising. Additive and spends nothing; it does not change any campaign's delivery until it is associated with one. Note that MARKETING_QUALIFIED_LEAD and SALES_QUALIFIED_LEAD can no longer be created, on any LinkedIn version from 202408.

rw_conversions
linkedin_ads_create_creativeWRITE

Create a creative — one ad — inside a campaign, from a post that already exists. ALWAYS CREATED IN DRAFT: it cannot serve or spend on the call that made it, and no argument changes that. LinkedIn also reviews every creative before it can serve, so activating one does not necessarily start delivery immediately.

rw_ads
linkedin_ads_create_dmp_segmentWRITE

Create an empty matched audience on an ad account. Additive and spends nothing; it holds no members until add_users_to_dmp_segment or add_companies_to_dmp_segment is called, and cannot be targeted until LinkedIn matches enough of them.

rw_dmp_segments
linkedin_ads_create_dmp_segment_destinationWRITE

Publish a matched audience to an additional LinkedIn destination so campaigns there can target it. Additive; spends nothing on its own.

rw_dmp_segments
linkedin_ads_create_insight_tagWRITE

Create a LinkedIn Insight Tag on an ad account. Additive and spends nothing — the tag does nothing until someone installs the snippet on a website, which no API can do.

rw_ads
linkedin_ads_create_lead_formWRITE

Create a lead gen form on an ad account. The form is what collects real people's names, email addresses and phone numbers when they respond to an ad, so what you put in `questions` decides what personal data the customer will be collecting and becoming responsible for. LinkedIn requires a privacy policy URL. Creating a form spends nothing and collects nothing until it is attached to a live campaign.

rw_ads
linkedin_ads_delete_ad_target_templateWRITE

DESTRUCTIVE — delete a saved audience template. Campaigns already using its targeting keep running unchanged; what is lost is the reusable definition, and LinkedIn publishes no undelete. The inverse is create_ad_target_template, so read the template with get_ad_target_template first if you may want it back.

rw_ads
linkedin_ads_delete_conversionWRITE

DESTRUCTIVE — delete a conversion rule. Every campaign using it stops attributing outcomes, and the historical figures that referenced it become unreadable in reporting. Consider disabling it with update_conversion instead, which is reversible; deletion is not. The inverse is create_conversion, but a recreated rule is a new rule and does not inherit history.

rw_conversions
linkedin_ads_delete_dmp_segmentWRITE

DESTRUCTIVE — permanently delete a matched audience and the whole member list inside it. Any live campaign targeting it loses that audience, which can leave the campaign targeting nothing and silently stop delivery. UNRECOVERABLE IN A WAY MOST DELETES ARE NOT: LinkedIn publishes no endpoint that reads a segment's members back, so the list cannot be exported first and cannot be rebuilt from LinkedIn — only from whatever produced it originally.

rw_dmp_segments
linkedin_ads_delete_draft_campaignWRITE

DESTRUCTIVE — permanently delete a campaign that has never run. Agentic Fabriq reads it first and refuses unless its status is DRAFT, so a campaign that has delivered or spent cannot be deleted through this tool; archive it instead, which is reversible. Unrecoverable, and it takes the campaign's targeting and creatives with it.

rw_ads
linkedin_ads_delete_draft_campaign_groupWRITE

DESTRUCTIVE — permanently delete a campaign group that has never run. Agentic Fabriq reads it first and refuses unless its status is DRAFT, so a group that has delivered or spent can never be deleted through this tool; archive it instead, which is reversible. Unrecoverable.

rw_ads
linkedin_ads_delete_draft_creativeWRITE

DESTRUCTIVE — permanently delete a creative that has never served. Agentic Fabriq reads it first and refuses unless its intended status is DRAFT, so an ad that has run cannot be deleted through this tool; archive it instead. The underlying post is not deleted.

rw_ads
linkedin_ads_delete_lead_notificationWRITE

DESTRUCTIVE — delete a lead notification webhook so LinkedIn stops pushing new leads to it. Whatever system was receiving those leads stops receiving them, silently, and Agentic Fabriq cannot recreate it — creating a webhook is deliberately not offered. This ships because stopping an unwanted flow of personal data to a third party is a capability worth having even when starting one is not: read the list first with list_lead_notifications.

r_marketing_leadgen_automation
linkedin_ads_delete_test_ad_accountWRITE

DESTRUCTIVE — permanently delete a TEST ad account and everything in it. Agentic Fabriq reads the account first and refuses unless LinkedIn reports `test: true`, so a real, billed account can never be deleted through this tool however it is called; cancel it instead. Unrecoverable — LinkedIn publishes no undelete.

rw_ads
linkedin_ads_get_ad_accountREAD

Read one ad account: name, currency, type, status, serving statuses and whether it is a test account. `test: true` means nothing it contains is ever served to a real member and nothing is ever billed.

r_ads
linkedin_ads_get_ad_account_userREAD

Read one person's role on one ad account. Person id is the identifier inside urn:li:person:… as returned by list_ad_account_users.

r_ads
linkedin_ads_get_ad_analyticsREAD

Performance figures — impressions, clicks, spend, conversions and about 119 other metrics — broken down by ONE dimension. This is the tool that answers "what did we get for the money". IMPORTANT: LinkedIn does not paginate this endpoint at all and caps a response at 15,000 rows; narrow the date range or the entity list rather than looking for a next page, because the `paging` block in the response is meaningless here. Name only the metrics you need in `fields` — the quota is 45 million metric values per five minutes across the whole app, and asking for every field is how it is exhausted.

r_ads_reporting
linkedin_ads_get_ad_segmentREAD

Read one ad segment's definition, source and status.

r_ads
linkedin_ads_get_ad_statisticsREAD

The same performance figures as get_ad_analytics, broken down by UP TO THREE dimensions at once — spend by campaign by device by country in one call. Same caps: no pagination, 15,000 rows, and the 45-million-metric-value quota, which multi-pivot queries exhaust far faster because rows multiply. Name your metrics in `fields`.

r_ads_reporting
linkedin_ads_get_ad_supply_forecastREAD

Ask LinkedIn how much inventory a targeting definition can actually deliver — how many impressions are available to buy. Changes nothing and costs nothing. Use it when a campaign is underdelivering to tell 'the audience is too small' from 'the bid is too low'.

r_ads
linkedin_ads_get_ad_target_templateREAD

Read one saved audience template's full targeting definition.

r_ads
linkedin_ads_get_attributed_revenue_metricsREAD

Revenue LinkedIn attributes to advertising, for accounts with revenue attribution configured. Answers "did this pay for itself" rather than "how many clicks". Empty results usually mean attribution has not been set up in Campaign Manager, not that there was no revenue.

r_ads_reporting
linkedin_ads_get_audience_countREAD

Estimate how many LinkedIn members a targeting definition reaches, WITHOUT creating or changing anything. Run this before update_campaign_targeting: LinkedIn refuses to deliver to an audience below its minimum size, and an audience that is far too large spends the budget on people who will never convert. This tool costs nothing and changes nothing.

r_ads
linkedin_ads_get_budget_pricingREAD

LinkedIn's own suggested bid range and minimum budget for a given targeting definition and campaign type. Read this BEFORE set_campaign_bid: it is the difference between a bid chosen from the auction's actual clearing range and one the model invented. Changes nothing and costs nothing.

r_ads
linkedin_ads_get_campaignREAD

Read one campaign in full: status, budgets, bid, cost type, objective, optimization target, run schedule and the whole targetingCriteria tree.

r_ads
linkedin_ads_get_campaign_groupREAD

Read one campaign group: status, total budget, run schedule, objective and backfilled flag.

r_ads
linkedin_ads_get_conversionREAD

Read one conversion rule: name, type, attribution windows and whether it is enabled.

rw_conversions
linkedin_ads_get_creativeREAD

Read one creative: its intended status, LinkedIn's review status, the campaign it belongs to and the content reference it serves. Any signed media download URL in the response is withheld — use LinkedIn Campaign Manager to view the asset itself.

r_ads
linkedin_ads_get_dmp_segmentREAD

Read one matched audience: name, type, source, status and how many members LinkedIn was able to match. A segment below LinkedIn's minimum match size cannot be targeted.

rw_dmp_segments
linkedin_ads_get_dmp_segment_list_uploadREAD

Read one CSV upload's status, row counts and any per-row errors LinkedIn reported.

rw_dmp_segments
linkedin_ads_get_insight_tagREAD

Read one Insight Tag's configuration and status.

r_ads
linkedin_ads_get_lead_formREAD

Read one lead gen form: its headline, description, privacy policy link, consent checkboxes and every question with its id and predefined field. Form definition only, no leads.

rw_ads
linkedin_ads_get_lead_form_responseREAD

Read one lead submission. RETURNS THE PERSONAL DATA OF A REAL PERSON — name, email address, phone number, employer and job title in plaintext, depending on the form's questions, plus their LinkedIn person URN and their answers to any consent checkboxes. Agentic Fabriq stores none of it and logs none of it.

r_marketing_leadgen_automation
linkedin_ads_get_my_ad_account_accessREAD

Show which ad accounts THIS connection's LinkedIn member can reach and at what role. Run this first when anything answers 403: a member with only the VIEWER role cannot write even when rw_ads was granted, and on a Development-tier app an account that is not allowlisted in the LinkedIn developer portal is unreachable no matter what role the member holds. This tool tells the two apart.

r_ads
linkedin_ads_list_ad_account_usersREAD

List the people who hold a role on one ad account, with each person's URN and role. Use it before changing anyone's access: there is exactly one ACCOUNT_BILLING_ADMIN per account and that is the person LinkedIn bills.

r_ads
linkedin_ads_list_ad_accountsREAD

List the LinkedIn ad accounts this connection's member can reach, with id, name, currency, type and status. START HERE: every other LinkedIn Ads tool needs an account id and nothing else hands one over. Returns only accounts where the authorizing member holds an ad-account role — if it comes back empty the member has no seat, not a broken connection.

r_ads
linkedin_ads_list_ad_segmentsREAD

List the ad segments on one or more ad accounts — LinkedIn's account-level view of every audience available for targeting, including retargeting segments that no DMP upload created.

r_ads
linkedin_ads_list_ad_target_templatesREAD

List the saved audience templates on an ad account. A template is a reusable targeting definition a marketer has already agreed to; reusing one is safer than composing targeting from scratch.

r_ads
linkedin_ads_list_campaign_conversionsREAD

Show which conversion rules are attached to which campaigns. A campaign with no conversion rule reports clicks and nothing about outcomes, which is the usual reason a report looks empty.

rw_conversions
linkedin_ads_list_campaign_groupsREAD

List the campaign groups in one ad account with their status, total budget and run schedule. A campaign group is the budget and scheduling envelope around a set of campaigns; its id is required to create a campaign.

r_ads
linkedin_ads_list_campaignsREAD

List the campaigns in one ad account with status, type, daily and total budget, bid, run schedule and campaign group. This is the tool to run before anything that spends: it shows what is already ACTIVE and what each one is allowed to cost.

r_ads
linkedin_ads_list_conversionsREAD

List the conversion rules on an ad account — the definitions of what counts as a lead, a purchase or a signup. Returns rule metadata only; no personal data and no user identifiers.

rw_conversions
linkedin_ads_list_country_groupsREAD

List LinkedIn's country groupings, used when targeting whole regions rather than individual countries.

r_ads
linkedin_ads_list_creativesREAD

List the creatives (individual ads) in an ad account, optionally narrowed to particular campaigns. Returns each creative's id, intended status, review status and the post or content it serves.

r_ads
linkedin_ads_list_dmp_segment_destinationsREAD

List where a matched audience is published — which LinkedIn surfaces may use it.

rw_dmp_segments
linkedin_ads_list_dmp_segment_list_uploadsREAD

List the CSV uploads made into a matched audience, with each one's status and match counts. The diagnostic for "the audience looks too small": it shows how many rows LinkedIn actually matched.

rw_dmp_segments
linkedin_ads_list_dmp_segmentsREAD

List the matched audiences (DMP segments) on an ad account, with each one's id, name, type, status and approximate size. The id is what campaign targeting needs. Member lists themselves cannot be read back — LinkedIn publishes no endpoint that returns them.

rw_dmp_segments
linkedin_ads_list_insight_tag_domainsREAD

List the website domains an ad account's Insight Tag has been seen firing on. The quickest way to confirm a tag is actually installed where someone thinks it is.

r_ads
linkedin_ads_list_insight_tagsREAD

List the LinkedIn Insight Tags on an ad account — the browser tags that make website conversion tracking and website retargeting work. If conversion reporting is empty, check here first.

r_ads
linkedin_ads_list_lead_form_responsesREAD

Read the actual leads submitted through an ad account's lead gen forms. THIS RETURNS THE PERSONAL DATA OF REAL PEOPLE — third parties, not the account holder. Depending on the form's questions the answers include full name, personal and work email address, phone number, employer, job title and LinkedIn profile link, all in plaintext and all prefilled from the member's own LinkedIn profile. The response also identifies each submitter by person URN. Answers are keyed by question id: join them against linkedin_ads_get_lead_form to know which field is which. Agentic Fabriq stores none of this and logs none of it, but whatever receives the result becomes responsible for it — LinkedIn's terms require deletion on the member's request.

r_marketing_leadgen_automation
linkedin_ads_list_lead_formsREAD

List the lead gen forms owned by an ad account, with each form's id, name, headline and the questions it asks. Form DEFINITIONS only — no leads and no personal data. You need the question list from here to make sense of the answers list_lead_form_responses returns, which are keyed by question id.

rw_ads
linkedin_ads_list_lead_notificationsREAD

List the webhooks configured to push new leads out of LinkedIn to another system, with the id of each. Agentic Fabriq cannot create one — a caller-chosen destination that fires forever with no Agentic Fabriq action row behind it is exactly what the action catalog exists to prevent — but it can show you the ones that exist, and delete_lead_notification can stop one.

r_marketing_leadgen_automation
linkedin_ads_list_similar_targeting_entitiesREAD

Ask LinkedIn for targeting values similar to ones you already have — the way to widen an audience that is too small without guessing. Pair it with get_audience_count to see what the widening actually buys.

r_ads
linkedin_ads_list_targeting_facetsREAD

List every dimension LinkedIn can target on — locations, industries, seniorities, job titles, skills, company size and the rest — with the facet URN each one uses. This is the discovery step: a facet URN is what browse_targeting_entities needs, and nothing else hands one over.

r_ads
linkedin_ads_pause_campaignWRITE

DESTRUCTIVE — stop a campaign delivering. Spending stops immediately, which is the safe direction for money and the dangerous direction for a live campaign: a launch nobody knows was paused simply stops working, and LinkedIn does not restore the pacing it had learned when it is resumed. The inverse, activate_campaign, is one call away.

rw_ads
linkedin_ads_pause_campaign_groupWRITE

DESTRUCTIVE — stop every campaign in this group from delivering. This is the safe direction for money and the dangerous direction for a live marketing programme: pausing a group mid-flight ends delivery for a launch nobody else knows was stopped, and LinkedIn does not restore lost pacing when it is resumed. No confirmation token, because the inverse (activate_campaign_group) is one call away and stopping spend is never the irreversible direction.

rw_ads
linkedin_ads_pause_creativeWRITE

DESTRUCTIVE — stop serving one ad. Its campaign keeps delivering through whatever other creatives it has; pausing the last active creative on a campaign stops that campaign delivering entirely while leaving it reading ACTIVE, which is easy to misread. The inverse is activate_creative.

rw_ads
linkedin_ads_reactivate_ad_accountWRITE

DESTRUCTIVE — return a cancelled ad account to ACTIVE. This is the inverse of cancel_ad_account and it is dangerous in the opposite direction: every campaign that was ACTIVE before the cancellation resumes delivering and resumes spending money, all at once, without any further call. Check what is under the account with list_campaigns first.

rw_ads
linkedin_ads_remove_ad_account_userWRITE

DESTRUCTIVE — remove a person's role on an ad account. They lose access to it in Campaign Manager immediately. If the person is the only remaining manager the account can be left unmanageable, and LinkedIn does not warn first — check with list_ad_account_users. Reversible with add_ad_account_user, which is the inverse.

rw_ads
linkedin_ads_remove_companies_from_dmp_segmentWRITE

DESTRUCTIVE — remove companies from a matched audience. Shrinking it below LinkedIn's minimum match size makes it untargetable and stops delivery on campaigns using it. The inverse is add_companies_to_dmp_segment.

rw_dmp_segments
linkedin_ads_remove_conversion_from_campaignWRITE

DESTRUCTIVE — detach a conversion rule from a campaign. The campaign keeps delivering and keeps spending; it simply stops attributing that outcome, so the campaign looks like it stopped working when what stopped was the measurement. The inverse is associate_conversion_with_campaign.

rw_conversions
linkedin_ads_remove_users_from_dmp_segmentWRITE

DESTRUCTIVE — remove people from a matched audience by hashed identifier. Shrinking a segment below LinkedIn's minimum match size makes it untargetable, which stops delivery on every campaign using it. The inverse is add_users_to_dmp_segment — but LinkedIn publishes no way to read a segment's members, so you can only put back identifiers you still hold yourself.

rw_dmp_segments
linkedin_ads_resolve_targeting_urnsREAD

Turn targeting URNs back into human-readable names. Use it to explain an existing campaign's targeting tree, which get_campaign returns as bare URNs that mean nothing on their own.

r_ads
linkedin_ads_send_conversion_eventsWRITE

Send offline or server-side conversion events to LinkedIn so they can be attributed to advertising. THIS SENDS PERSONAL DATA ABOUT THE CUSTOMER'S OWN USERS TO LINKEDIN, and it cannot be taken back once sent. Identifiers must already be hashed — Agentic Fabriq accepts only SHA256_EMAIL (64 hex characters) and LinkedIn's first-party tracking UUID, verifies the hash shape before sending, and refuses plaintext IP addresses outright. Up to 5,000 events per call; LinkedIn allows 600 calls a minute and 500,000 a day per member.

rw_conversions
linkedin_ads_set_campaign_bidWRITE

DESTRUCTIVE — set the bid, the price this campaign is willing to pay per click, impression or view. Raising it does not raise the budget ceiling, but it spends the same budget faster and at a worse unit price; lowering it too far can stop the campaign winning any auctions at all, which looks like an outage. linkedin_ads_get_budget_pricing returns LinkedIn's own suggested range for the campaign's targeting. Its own inverse.

rw_ads
linkedin_ads_set_campaign_daily_budgetWRITE

DESTRUCTIVE — set the most this campaign may spend in a single day. RAISING IT AUTHORISES REAL SPEND, every day, until someone changes it back: the difference is not a one-off, it recurs. LinkedIn may also overdeliver a daily budget by up to 20% on any given day and settle over the campaign's life. This action is its own inverse — call it again with the previous figure.

rw_ads
linkedin_ads_set_campaign_group_total_budgetWRITE

DESTRUCTIVE — set the total amount of money this campaign group may ever spend. RAISING IT AUTHORISES REAL SPEND: the difference between the old and new figure is money that can leave the customer's account, and LinkedIn will spend it without asking again. Lowering it below what has already been spent stops delivery. This action is its own inverse — call it again with the previous figure to put the ceiling back.

rw_ads
linkedin_ads_set_campaign_run_scheduleWRITE

DESTRUCTIVE — change when a campaign runs. Pushing the end date out authorises more days of spend; pulling it in stops delivery early. Agentic Fabriq requires an end date, so this action cannot be used to remove one and make the campaign open-ended. Its own inverse.

rw_ads
linkedin_ads_set_campaign_total_budgetWRITE

DESTRUCTIVE — set the most this campaign may ever spend across its whole life. RAISING IT AUTHORISES REAL SPEND up to the new figure. Lowering it below what has already been spent stops delivery immediately. This action is its own inverse.

rw_ads
linkedin_ads_typeahead_targeting_entitiesREAD

Search for targeting values by name inside one facet — the way to resolve "Chief Marketing Officer" or "Acme Corp" into the URN targeting actually uses. Facets like job titles, skills and companies have far too many values to browse.

r_ads
linkedin_ads_unarchive_campaignWRITE

Bring an archived campaign back as a DRAFT. The inverse of archive_campaign. Nothing delivers or spends until activate_campaign is called, which is a separate grant.

rw_ads
linkedin_ads_unarchive_campaign_groupWRITE

Bring an archived campaign group back as a DRAFT. The inverse of archive_campaign_group. It does not resume delivery — nothing spends until activate_campaign_group is called, which is a separate grant.

rw_ads
linkedin_ads_unarchive_creativeWRITE

Bring an archived creative back as a DRAFT. The inverse of archive_creative. It does not resume serving — activate_creative is a separate grant.

rw_ads
linkedin_ads_update_ad_accountWRITE

Change an ad account's name or its owning organization. Sends a Rest.li $set patch, so a field you do not name is left exactly as it was — this cannot null anything. Status is deliberately not settable here; use cancel_ad_account or reactivate_ad_account, which are granted separately.

rw_ads
linkedin_ads_update_ad_account_user_roleWRITE

DESTRUCTIVE — change what a person may do on an ad account. Narrowing a role can lock a colleague out of live campaigns mid-flight; widening one hands over the ability to spend. ACCOUNT_BILLING_ADMIN is not settable through Agentic Fabriq.

rw_ads
linkedin_ads_update_campaignWRITE

Change a campaign's name, objective or optimization target. A $set patch, so nothing you do not name is touched — unlike a PUT, this cannot silently null a field. Budget, bid, schedule, targeting and status are each their own separately granted action because each of them changes what the campaign costs.

rw_ads
linkedin_ads_update_campaign_groupWRITE

Change a campaign group's name or objective. A $set patch, so nothing you do not name changes. Budget, schedule and status are each their own action because each one moves money.

rw_ads
linkedin_ads_update_campaign_targetingWRITE

DESTRUCTIVE — REPLACE a campaign's whole audience definition. This is not a merge: the include and exclude sets you pass become the entire targeting, and anything you leave out is dropped. On a live campaign it redirects the remaining budget at a different audience immediately, so a mistake here spends real money on the wrong people — the budget still caps the amount, but not who sees it. Check the result with linkedin_ads_get_audience_count first, and read the existing tree with get_campaign so you can put it back. No confirmation token: the budget ceiling still bounds the loss, which is what separates this from the budget actions.

rw_ads
linkedin_ads_update_conversionWRITE

Rename a conversion rule, change its attribution windows, or enable and disable it. A $set patch, so nothing you do not name changes. Disabling a rule stops future attribution but does not delete history.

rw_conversions
linkedin_ads_update_creativeWRITE

Point a creative at a different piece of content. A $set patch, so nothing else about the creative changes. Changing the content of a creative that is already serving sends it back through LinkedIn's review, so delivery pauses until it is approved again. Intended status is not settable here — use activate_creative or pause_creative.

rw_ads
linkedin_ads_update_dmp_segmentWRITE

Rename a matched audience. A $set patch; its members are not touched and no campaign using it is affected.

rw_dmp_segments
linkedin_ads_update_lead_formWRITE

Change a lead gen form's name, headline, description or privacy policy link. A $set patch, so nothing you do not name changes. LinkedIn versions forms: editing one that is live creates a new version, and responses already collected stay attached to the version that collected them.

rw_ads

Put LinkedIn Ads behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.