# LinkedIn ads for SaaS, an operator's playbook

A build plan to copy for a software company: the structure, audience sizes, settings, budgets, retargeting, tracking and weekly routine, each with its source.

*By Stan Rymkiewicz, maintainer of adwarp. Updated November 7, 2026.*

LinkedIn ads pay for a software as a service (SaaS) company when the contract value can carry LinkedIn's costs and the targeting stays on the buying committee. The account runs as separate account-based, persona and retargeting ad sets, each above LinkedIn's 300-member minimum with a conversion attached.

Below: [when it fits](#when-linkedin-ads-fit-a-saas-company), [structure](#account-structure-campaigns-ad-sets-and-ads), [audiences](#audiences-sized-for-a-buying-committee), [formats](#formats-and-offers-by-funnel-stage), [budgets](#budgets-and-bidding), [retargeting](#a-retargeting-sequence), [tracking](#conversion-tracking-that-reaches-pipeline) and [the weekly routine](#the-weekly-routine).

## When LinkedIn ads fit a SaaS company

LinkedIn is the ad platform where you can pick people by employer, job function and seniority. You pay for that precision, so before building anything, check 3 things about your own business.

*Fig. 01: 3 dials decide whether LinkedIn pays for a SaaS company, and contract value is the one to read first because it sets what every click can cost.*

- **Contract value.** A closed deal has to pay for every impression and click it took to find the buyer. Work backward from annual contract value and your close rate on qualified meetings to what 1 meeting can cost. If LinkedIn can't produce meetings under that number, no setting will fix it. Current prices are in [what LinkedIn ads cost](https://adwarp.dev/blog/linkedin-ads-cost).
- **Sales cycle.** On a 9-month cycle, most deals close long after the click. LinkedIn's default conversion window counts conversions up to 90 days after a click or a view, and the Conversions API can report qualified-lead stages up to 365 days out ([LinkedIn Help, conversion window](https://www.linkedin.com/help/lms/answer/a426359), checked 2026-11-07). Without that pipeline data, a long-cycle account looks like it produces nothing.
- **Reachable audience.** Your buyers need to be findable by company, job function and seniority, and every ad set needs at least 300 of them. A product sold to anyone who uses a spreadsheet has no committee to aim at.

For an outside read with a date on it, Factors.ai's 2026 LinkedIn report, From Benchmarks to Blueprints, covers more than 850 business-to-business (B2B) companies and over 150 million USD in LinkedIn ad spend. It reports LinkedIn returning 1.6x on ad spend against 1.18x for Google ([Factors.ai, LinkedIn ads for B2B in 2026](https://www.factors.ai/blog/linkedin-ads-b2b-guide), published 2026-11-03). The sample is made of companies that send their sales data to a vendor's product, so it describes that vendor's customers better than it describes you. Treat it as a reason to run a test.

LinkedIn's floor to start is 10 USD a day for any format, or 100 USD lifetime for a new campaign ([LinkedIn, Making the Most of Your Budget](https://business.linkedin.com/advertise/ads/best-practices/maximize-your-budget), checked 2026-11-07). Those amounts let a campaign start, and they say nothing about whether the budget reaches your audience, which is what the next check is for.

### The budget check before the first ad

Multiply 3 numbers: the audience size, the impressions you want each member to see in a month, and your own cost per 1,000 impressions from past ad sets like this one. The [linkedin-campaign-launch](https://adwarp.dev/docs/skills/linkedin-campaign-launch) skill runs this check before it builds anything. It calls under 1 impression per member a month thin, 1 to 8 workable and over 8 saturated. Those bands are Adwarp's own defaults, so move them if your account behaves differently.

*Fig. 02: Each dot is 1 impression a member saw in a month: under 1 is thin, 1 to 8 is workable, in orange, and over 8 is saturated.*

| Line | Input | Placeholder example |
| --- | --- | --- |
| A | Audience size, from the forecast pane | 5,000 members |
| B | Impressions per member per month | 4 |
| C | Your own cost per 1,000 impressions, last 90 days | 60 USD |
| D | Monthly budget: A x B x C / 1,000 | 1,200 USD |
| E | Daily budget: D / 30 | 40 USD |
| F | LinkedIn's minimums | 10 USD a day, 100 USD lifetime |

The numbers in the right column are made up to show the arithmetic. With no cost history of your own, read the 7-day projected spend in Campaign Manager's forecast pane as a ceiling, start near the minimum and redo the check after week 1 with the cost you actually paid.

## Account structure: campaigns, ad sets and ads

Campaign Manager names its 3 levels campaign, ad set and ad. LinkedIn's Marketing API, and Adwarp's tools, still call them campaign group, campaign and creative ([LinkedIn Help, Create campaigns](https://www.linkedin.com/help/lms/answer/a424128)). Expect to translate whenever you read the API docs next to the interface.

*Fig. 03: The 3 programs as campaigns, their ad sets and their ads, with Campaign Manager's name for each level on top and the API's name under it; the ad set is the level that holds targeting, budget and format.*

Each ad set gets 1 objective and 1 format. LinkedIn locks both once the ad set launches ([Edit an ad set](https://www.linkedin.com/help/lms/answer/a425248), [ad set settings](https://www.linkedin.com/help/lms/answer/a423332)), and changing the objective during setup resets settings you already chose. A second format means a second ad set, which also gives that format its own line in the report.

### 1 campaign per program: account-based, persona prospecting, retargeting

Run each program as its own campaign. The objective sits on the campaign and every ad set inside shares it, and an ad set can't move to another campaign after launch ([Create campaigns](https://www.linkedin.com/help/lms/answer/a424128)). In Adwarp's skills, account-based and persona ad sets start on Website visits. Retargeting moves to Website conversions once its conversion records regularly, since a conversion objective needs conversions to learn from.

Separate campaigns also keep the reports sensible, since a 600-person account ad set and a 5,000-person persona ad set shouldn't sit in the same click-through rate ranking.

### Names that still read in reports

Name ad sets `<objective> | <audience> | <geo> | <offer> | <format>`, the pattern the [linkedin-campaign-launch](https://adwarp.dev/docs/skills/linkedin-campaign-launch) skill falls back on when an account has none. Campaigns get `<program> | <quarter>` and ads get `<offer> | <angle>`. Sort an export by name and it groups by audience, and you can read an ad's angle without opening it.

`Naming`:
```text
Campaign:  Persona prospecting | Q4 2026
Ad set:    Website visits | Finance directors | US CA | 5-day close guide | Single image
Ad:        5-day close guide | Checklist
```

### Settings to change on every new ad set

Campaign Manager starts several settings in the position that buys the most reach. For a sized audience, change these before the first launch.

| Setting | LinkedIn's starting value | Set it to | Source |
| --- | --- | --- | --- |
| Audience Expansion | On where available, and the forecast leaves its members out | Off | [a418929](https://www.linkedin.com/help/lms/answer/a418929) |
| LinkedIn Audience Network | On for new single image, carousel, document and video ad sets | Off | [a420372](https://www.linkedin.com/help/lms/answer/a420372) |
| Location | A suggested option among Recent or permanent, Permanent and Recent | Permanent location | [a424655](https://www.linkedin.com/help/lms/answer/a424655), [a420751](https://www.linkedin.com/help/lms/answer/a420751) |
| Ad rotation | Optimize for performance, LinkedIn's recommended option | Rotate ads evenly while you test | [a423702](https://www.linkedin.com/help/lms/answer/a423702) |
| Conversion | None attached | 1 conversion, attached at creation | [a484456](https://www.linkedin.com/help/lms/answer/a484456) |

Recent or permanent location also matches members by IP address during short visits, so a conference can drop out-of-market visitors into a regional audience. Permanent location uses only the location on the member's profile.

*Fig. 04: A new ad set with all 5 changes made, both toggles off and each chosen option in moss.*

Every ad set Adwarp creates already has Audience Expansion and the Audience Network off, and it lands as a draft ([safety](https://adwarp.dev/docs/safety)). To put the Audience Network back on, do it in Campaign Manager after creation; [the Audience Network post](https://adwarp.dev/blog/linkedin-audience-network) covers when that's worth it.

## Audiences sized for a buying committee

Every ad set needs at least 300 member accounts to run ([LinkedIn Help, Target audience size best practices](https://www.linkedin.com/help/lms/answer/a423690), checked 2026-11-07). The same page suggests at least 50,000 for most ad sets and 300,000 for Sponsored Content. Account-based work runs far below that on purpose. The buying committee at 1 company is a few hundred people, and widening an ad set to 50,000 means paying to reach people who will never sign.

*Fig. 05: Audience size on a log scale: LinkedIn's 300 floor and its 50,000 suggestion as lines, with the 1:1 account range of 400 to 1,000 in orange and personas and retargeting around it.*

| Program | Targeting | Size range | Source |
| --- | --- | --- | --- |
| Any ad set | Anything | 300 member accounts at least | LinkedIn, [a423690](https://www.linkedin.com/help/lms/answer/a423690) |
| 1:1 account-based | Company name, job function, seniority | 400 to 1,000 per ad set | Adwarp default, [linkedin-abm-builder](https://adwarp.dev/docs/skills/linkedin-abm-builder) |
| Persona at target companies | Company list, job function, seniority | A few thousand per persona, about 50 to 500 per account | Adwarp default, [linkedin-audience-sizing](https://adwarp.dev/docs/skills/linkedin-audience-sizing) |
| Retargeting | Website, video, form, Page or event audience | 300 matched to serve, 1,000 or more to aim for | LinkedIn, [a427551](https://www.linkedin.com/help/linkedin/answer/a427551); Adwarp default |
| LinkedIn's suggestion | Broad prospecting | 50,000; 300,000 for Sponsored Content | LinkedIn, [a423690](https://www.linkedin.com/help/lms/answer/a423690) |

### 1:1 account-based ad sets

Target the account by Company name, which matches a member's current employer, then add the job functions and seniorities that sign, use and block the purchase. Narrow until the estimate sits between 400 and 1,000. The lower bound leaves room, because exclusions and people changing jobs can drop a 350-person ad set under 300 halfway through a flight. Past 1,000 the budget grows and the ads reach people far from the deal.

LinkedIn won't combine Company name with industry or company size, and job titles replace function and seniority rather than adding to them ([Targeting Criteria Facet URNs](https://learn.microsoft.com/en-us/linkedin/shared/references/v2/ads/targeting-criteria-facet-urns)). For an account that comes out small, widen in this order: Senior seniority, then 1 function that influences the deal such as Purchasing, then subsidiary pages. A big account goes the other way. Drop Manager first, then the least central function, and if it's still over, restrict the location to the office where the buying group sits.

The [linkedin-abm-builder](https://adwarp.dev/docs/skills/linkedin-abm-builder) skill plans 1 ad set per account this way, and Adwarp's `estimate_audience` checks that each lands at 400 to 1,000 before anything is built. Small accounts that share an angle merge into 1 cluster ad set. An account that can't reach 300 at all goes to sales as outbound only. The session below runs on the skill's made-up example list.

```text
> Plan 1:1 ad sets for the 13 accounts in accounts.csv. Finance, Accounting and Operations, Manager to CXO, United States.
adwarp.search_targeting employers, 13 accounts  13 pages
adwarp.estimate_audience Brightwater Foods  640
adwarp.estimate_audience Copperline Manufacturing  2,300
adwarp.estimate_audience Copperline, drop Manager  960
adwarp.estimate_audience Pinecrest Tools, + Senior, + Purchasing  405
adwarp.estimate_audience Redfern + Little Fern as 1 cluster  420
adwarp.estimate_audience Marlow Instruments, widened twice  70
10 accounts in range, 1 cluster of 2, Marlow Instruments goes to sales as outbound only
Plan: 11 ad sets, 33 ads, a 14-day flight, 2,142 USD against a 2,500 USD cap
Made-up example data. Nothing is created until you reply yes, and every ad set lands as a draft.
```

The full workflow is on [account-based ads](https://adwarp.dev/linkedin-ads/abm).

### Persona prospecting at target companies

Upload the target account list as a company list, then layer job function and seniority on top, with 1 ad set per persona. A company list needs at least 300 rows to upload ([company list requirements](https://www.linkedin.com/help/lms/answer/a423102)). Aim for a few thousand people per persona. Finance leaders and IT leaders read different ads, and in separate ad sets each persona reports on its own.

### Matched lists from Salesforce or HubSpot

Contact lists go up as email addresses hashed with SHA-256. Matching takes up to 48 hours, and a list needs at least 300 matched member accounts before an active ad set can use it ([contact list requirements](https://www.linkedin.com/help/lms/answer/a1489764)). LinkedIn recommends uploading at least 10,000 emails, so a list of 400 contacts on open deals may match too few people to run alone.

Adwarp's `audience_from_salesforce` turns a SOQL query that selects an email column into a matched audience, and `audience_from_hubspot` does the same from a HubSpot list or search. The HubSpot path hashes each email with SHA-256 on your machine and uploads only the hashes. Setup is on the [Salesforce](https://adwarp.dev/integrations/salesforce) and [HubSpot](https://adwarp.dev/integrations/hubspot) pages, and the list mechanics are on [audiences](https://adwarp.dev/linkedin-ads/audiences).

### Exclusions every SaaS account needs

Keep 4 matched lists current and exclude them from every prospecting ad set: customers, contacts on open opportunities, competitors' employees and your own employees. Customers and open deals get their own programs, and the other 2 lists are people who will never buy from you. An Expired audience can't be added to an ad set, and an ad set holding one can't be reactivated ([expired audiences](https://www.linkedin.com/help/lms/answer/a422355)). Refresh the lists monthly.

*Fig. 06: 1 prospecting ad set with the 4 matched lists cut out of it: customers, open deals, competitors' employees and your own.*

## Formats and offers by funnel stage

Start every program on single image ads and add other formats where a stage needs them. LinkedIn's [A B2B Marketer's Guide to Every LinkedIn Ad Type](https://www.linkedin.com/business/marketing/blog/linkedin-ads/a-b2b-marketers-guide-to-every-linkedin-ad-type) (September 5, 2025) sorts them into Sponsored Content, Sponsored Messaging and Dynamic Ads. A SaaS account mostly uses 5.

*Fig. 07: A funnel of formats with the offer each stage gets: guides and documents for cold personas, proof for warm audiences, and the demo, in orange, for the people closest to buying.*

| Format | Fit | LinkedIn's guidance |
| --- | --- | --- |
| Single image | Every stage, the base format | An image that carries the message, with short intro text and a headline |
| Thought leader | Cold and warm audiences | Sponsors a founder's or employee's post, with their approval |
| Document | Cold personas | A preview of a guide; members unlock the full file with a form |
| Video | Reach in cold audiences | Autoplays in the feed as people scroll |
| Text and spotlight | Extra reach on account-based audiences | Desktop right rail; spotlight ads use the member's photo and job title |

LinkedIn recommends at least 4 ads per ad set, live for at least 7 days ([ad set setup best practices](https://www.linkedin.com/help/linkedin/answer/a422123)). The account-based skill runs 3 per ad set on purpose: a 600-person audience has few impressions to split, and a 1:1 ad set is no place for a creative test. Adwarp builds single image and text ad sets end to end. For video, carousel and document ads, the launch skill writes a build sheet to follow in Campaign Manager instead. For real ads by format, see [LinkedIn ad examples](https://adwarp.dev/blog/linkedin-ad-examples).

*Fig. 08: The desktop page: a single image ad in the feed with its image in orange, and a text ad and a spotlight ad in the right rail.*

### Thought leader ads next to company ads

Sponsor a person's post when the person is the reason anyone would read it: a founder who writes about the problem your product solves, or an engineer explaining a release. Keep company Page ads for the offer itself, such as the demo, the guide or the pricing page.

*Fig. 09: A company Page ad with the demo button next to a thought leader ad, which runs as the member's own post with a small promoted-by line for your Page.*

In Campaign Manager's Content Library, you search for the member's post and click to request approval. The member gets an email, approves the request from LinkedIn's Sponsorship Permissions page, and can revoke approval later, which stops the ad ([sponsorship requests](https://www.linkedin.com/help/lms/answer/a5964111)). The post has to be public, and the member has to disclose the relationship to the company. Thought leader ads run only in ad sets with the brand awareness, engagement or video views objective ([create thought leader ads](https://www.linkedin.com/help/lms/answer/a5965137)), so they need a campaign of their own next to a Website visits program. [The thought leader ads post](https://adwarp.dev/blog/linkedin-thought-leader-ads) goes through setup.

### The offer for each audience

Match the ask to what the person already knows about you. Cold personas get something useful without a sales call: a guide, a benchmark or a template. Retargeting audiences and contacts on open opportunities get the demo or the trial, because they've seen the product or talked to sales already. A demo offer in front of a cold persona tends to spend impressions on people who have never heard of you.

*Fig. 10: A gated document for a cold persona, its form opened over the ad, beside a demo ad for the retargeting audience with the button in orange.*

## Budgets and bidding

LinkedIn's minimums are 10 USD a day and 100 USD lifetime for a new campaign. On any given day, actual spend can run up to 100% over the daily budget, so up to 2 times the amount. On a continuous schedule it won't pass 7 times the daily budget in a week, and total spend never passes a lifetime budget ([Campaign and ad set budgets](https://www.linkedin.com/help/lms/answer/a422101), checked 2026-11-07).

*Fig. 11: 1 week of daily spend against a daily budget: 1 day runs to 2 times the budget, in orange, and the week still stays under LinkedIn's cap of 7 times the daily budget.*

Give account-based ad sets a fixed flight with an end date, so spend stops on its own. Adwarp's own account-based runs used 2-week flights, above LinkedIn's suggested minimum of 7 days. Budget each ad set from its audience with the check above, and let a cluster or an outbound-only account absorb the cuts when the program runs over its cap.

| Strategy | How it bids | Charged by | Fits |
| --- | --- | --- | --- |
| Maximum delivery | LinkedIn bids automatically to spend the full budget | Impressions | Fixed flights where reaching the account matters more than the price of a click |
| Cost cap | You set a cost per key result as a benchmark | Impressions | Brand awareness, website visits, engagement, video views and lead generation only |
| Manual | You set the bid for a key result | Impressions, clicks, sends or video views | Control over what you pay, at the risk of spending less than the budget |

Source: [Campaign and ad set bidding strategies](https://www.linkedin.com/help/linkedin/answer/a421112), checked 2026-11-07. Maximum delivery takes no bid and no cap. LinkedIn suggests manual bidding when you prefer to monitor and update your bids yourself for maximum control. In Adwarp, `optimizationTargetType: MAX_CLICK` is maximum delivery on landing page clicks, and leaving it out with a `unitCost` sets a manual bid. Every budget and bid change Adwarp makes goes into the change journal, so you can read its effect later.

## A retargeting sequence

LinkedIn builds retargeting audiences from your website (through the Insight Tag), video viewers, Lead Gen Form users, Company Page visitors and event attendees. On 2026-11-07 its help page listed 9 types, adding single image, document and conversation ad audiences and Conversions API audiences ([Retargeting with Matched Audiences](https://www.linkedin.com/help/linkedin/answer/a427551)). Each needs at least 300 member accounts before it can be targeted, and a website audience can take 48 hours to build ([website retargeting](https://www.linkedin.com/help/lms/answer/a420433)).

*Fig. 12: The retargeting sequence: engagers get proof, high-intent visitors get the demo offer in orange, and converted accounts leave through a matched-list exclusion.*

| Step | Audience | Offer | Exclude |
| --- | --- | --- | --- |
| 1 | Engagers: video viewers, Page visitors, event attendees, form openers | Proof: a customer story or a benchmark | Customers |
| 2 | High-intent visitors to pricing, integrations, security or comparison pages | A demo or a trial | Booked demos and open opportunities |
| 3 | Converted accounts | None | Everyone above, through matched lists from Salesforce or HubSpot |

Build the website audience from the pages that signal buying. An all-visitors audience pulls in job seekers, students and customers logging in to the app. Keep the exclusions in step 3 current, or customers keep seeing demo ads for a product they already pay for. More on the mechanics: [retargeting](https://adwarp.dev/linkedin-ads/retargeting).

*Fig. 13: The same member over time: a customer story video once they engage, the demo ad after a pricing page visit, then no ad at all once they convert.*

## Conversion tracking that reaches pipeline

Put the Insight Tag on every page of your domain, as LinkedIn's setup asks ([Add the Insight Tag](https://www.linkedin.com/help/linkedin/answer/a418880)). Then attach a conversion to every ad set, at creation. LinkedIn's help says conversions are only tracked when attached to an ad set ([Conversions API setup](https://www.linkedin.com/help/lms/answer/a1657171)), and it can't report conversions for ads shown before the conversion was added ([add conversions](https://www.linkedin.com/help/lms/answer/a484456)).

*Fig. 14: The path from ad to pipeline: the Insight Tag sees the visit and the form, and the Conversions API, in orange, carries qualified stages from Salesforce or HubSpot back to LinkedIn.*

The default window in Campaign Manager is a 90-day click and 90-day view window, and you can set 1, 7, 30 or 90 days instead ([conversion window](https://www.linkedin.com/help/lms/answer/a426359), checked 2026-11-07). Check the window before comparing LinkedIn's conversion counts with another tool's.

A form fill is the start of a SaaS deal, so send the later stages back too. The Conversions API takes conversions from your own server or a partner integration, and LinkedIn lists HubSpot and Salesforce Data 360 among the partners. Its conversion categories include Qualified Lead, Marketing Qualified Lead and Sales Qualified Lead, and Conversions API and CSV conversions in those categories can use a 180 or 365-day lookback window. Once those stages flow back, you can judge a program with a 9-month cycle on the pipeline it opened.

*Fig. 15: A qualified stage that lands months after the click falls outside the default 90-day window, and the Conversions API's 365-day lookback still counts it.*

In Adwarp, `list_conversions` shows the account's conversions, and `create_campaign` takes `conversionIds`. Without them it attaches the default conversion from your config, which may not be the one you meant, so pass them every time. The setup itself, step by step, is in [LinkedIn conversion tracking](https://adwarp.dev/blog/linkedin-conversion-tracking).

## The weekly routine

Leave an ad alone until it has about 1,000 impressions, and don't read its cost per conversion before it has 3 conversions. Those floors are the defaults in Adwarp's performance review skill. A 1:1 account ad set may never reach them per ad, so judge it over the whole flight and pool results by angle across accounts.

*Fig. 16: The 11 active single image ads in the pause rules skill's made-up example account, by impressions and click-through rate: the 3 in orange sit under the 0.29% single image floor after 1,500 impressions, and the moss one is protected as the last active ad in its ad set.*

`Weekly routine`:
```text
Judge:  nothing under 1,000 impressions or 3 conversions
Pause:  under the format's click-through floor after 1,500 impressions
Limit:  at most 5 pauses per run, top 5 ads by conversions protected
Log:    every budget, bid and creative change, with the reason
```

The pause rule comes from the [linkedin-ads-pause-rules](https://adwarp.dev/docs/skills/linkedin-ads-pause-rules) skill, and each format gets its own floor. The defaults are 70% of the lowest public median for the format: 0.29% for single image, 0.22% for carousel, 0.17% for video and 1.88% for thought leader ads, from ZenABM's medians of 0.42%, 0.32%, 0.24% and 2.68% across 161,256 ads at 211 companies ([ZenABM, LinkedIn Ads CTR Benchmark](https://zenabm.com/blog/linkedin-ads-ctr-benchmarks), updated 2026-02-16). Document, event and other formats have no agreed public median, so they stay out of the run until you set a floor.

The rule never pauses the last active ad in an ad set, since that would stop the ad set without anyone deciding to, and it keeps ads that convert at or under your target cost. The cap is there because 1,500 impressions is a thin sample. A single image ad sitting exactly at the 0.42% median still shows under 0.29% about 25% of the time at that volume, so the run sorts candidates by spend and stops at 5. Each run shows a dry-run table first, pauses only the list you confirm, and logs the reason with `log_ad_change`.

```text
> Run the pause rules on the last 30 days. Dry run first.
adwarp.list_campaigns active ad sets  6
adwarp.get_performance creative, last 30 days  21 ads
5 ads under their format's floor after 1,500 impressions, highest spend first
Kept under the floor: 1 top-5 ad, 1 at target cost, 1 last active ad
Skipped: 2 document ads, since documents have no floor until you set one
SQL to board slides breaks the video floor too, held for next run by the cap of 5
Nothing has changed. Confirm the list to pause it.
> pause these 5
adwarp.update_ad 100000102, dry run  1 patch
adwarp.update_ad 100000102  PAUSED
adwarp.log_ad_change 100000102, 0.21% on 8,200, floor 0.29%  logged
4 more paused and logged the same way
Paused 5 of 5. Next run: recheck 100000303, and replace 100000501 before pausing it.
```

Log every budget, bid and creative change with a reason, including the ones made in Campaign Manager. Adwarp journals its own writes automatically in a local file. Later, `compute_lift` compares the 14 days before a change with the 14 days after it ([change journal](https://adwarp.dev/docs/journal)). Read the result as a signal: seasonality, LinkedIn's learning phase after an edit and any budget change made at the same time all move it. More on the loop: [optimization](https://adwarp.dev/linkedin-ads/optimization).

*Fig. 17: 1 journal entry pinned to the day of a budget change, with the 14 days before and the 14 days after that `compute_lift` compares.*

### Adwarp's own runs

49 account-based ad sets ran in batches, each with 400 to 1,000 decision makers, 3 ads, its own landing page and a 2-week flight. 169 audience estimates sized them before anything was built.

1 brief produced 35 ad sets and 35 draft ads in a single run, and a one-time job switched 14 drafts live at 9am. Since June the journal has recorded 1,125 changes, among them 29 budget changes, 23 bid changes, 16 rotation switches and 36 notes on why. A Monday job applies the pause rule, and a daily job checks pacing.

Put it to work: [Account-based ads](https://adwarp.dev/linkedin-ads/abm). Adwarp plans 1 ad set per target account, sizes each to 400 to 1,000 decision makers and creates them as drafts from your terminal.

## Questions

### Are LinkedIn ads worth it for B2B SaaS?

They pay when a closed deal is worth enough to cover what LinkedIn charges to find the buyer and your buyers can be targeted by company, job function and seniority. Factors.ai's 2026 report on more than 850 companies found LinkedIn returned 1.6x on ad spend against 1.18x for Google, which is a vendor's sample, so treat it as a reason to test. Run 1 account-based program with a conversion tied to pipeline before you scale.

### How much should a SaaS company spend on LinkedIn ads each month?

Work it out from the audience: members, times the impressions you want each to see a month, times your own cost per 1,000 impressions, divided by 1,000. LinkedIn's minimums are 10 USD a day and 100 USD lifetime for a new campaign. With placeholder numbers, a 600-person account ad set at 3 impressions a week and 50 USD per 1,000 impressions needs about 13 USD a day.

### What's the minimum audience size, and how big should a SaaS audience be?

LinkedIn needs at least 300 member accounts for an ad set to run and suggests 50,000 or more for most ad sets. Account-based ad sets run far smaller on purpose: Adwarp's skills plan 400 to 1,000 decision makers per account and a few thousand per persona at target companies. Retargeting audiences need 300 matched members before they can serve.

### Lead gen forms or a landing page for a demo offer?

Lead Gen Forms prefill from the member's profile, so people can submit without typing, which suits a guide offered to a cold audience. For a demo, a landing page lets you qualify the person and book the meeting in 1 step, and the Insight Tag can track it as a conversion. Run forms for guides and a landing page for demos, then compare the 2 on cost per qualified meeting.

### How long should an ad run before I judge it?

LinkedIn suggests keeping an ad set live for at least 7 days. Adwarp's skills wait for about 1,000 impressions before judging click-through rate and 3 conversions before judging cost per conversion, and the pause rule waits for 1,500 impressions. Small account-based ad sets may never reach those numbers per ad, so judge them over the whole flight.

### Should thought leader ads replace company Page ads?

Run them side by side. Sponsor a person's post when the person is the reason anyone reads it, and keep Page ads for the offer itself, such as the demo or the guide. Thought leader ads need an ad set with the brand awareness, engagement or video views objective, and the member has to approve each sponsorship request.

### Should Audience Network and Audience Expansion be off?

For a sized business-to-business audience, yes. Audience Expansion shows ads to members with similar attributes, which in a 1:1 account ad set means people at other companies, and the Audience Network moves spend to partner apps and sites. Turn the Audience Network back on only when you want more reach and will check delivery by placement.

### How do I tie LinkedIn ads to pipeline in Salesforce or HubSpot?

Install the Insight Tag on every page, attach a conversion to every ad set, and send qualified stages back through the Conversions API, where LinkedIn offers marketing qualified lead and sales qualified lead categories with 180 or 365-day lookback windows. LinkedIn lists HubSpot and Salesforce Data 360 among its partner integrations. In the other direction, Adwarp turns a Salesforce query or a HubSpot list into a matched audience for targeting or exclusion.

### How often should the same person see my ad?

LinkedIn publishes no frequency target, and the rule of 7 is an old advertising rule of thumb that no LinkedIn guidance backs. Adwarp's skills plan 3 impressions per member per week for 1:1 account ad sets, and treat 1 to 8 a month as workable for wider audiences. Watch Average frequency in Campaign Manager and rotate in new ads when the same people keep seeing the old ones.

## Related

- [What LinkedIn ads cost](https://adwarp.dev/blog/linkedin-ads-cost): What clicks and impressions cost on LinkedIn, the number the budget check needs.
- [LinkedIn conversion tracking](https://adwarp.dev/blog/linkedin-conversion-tracking): The Insight Tag, conversion windows and the Conversions API, set up step by step.
- [LinkedIn Audience Network](https://adwarp.dev/blog/linkedin-audience-network): What the Audience Network does with your budget, and why this playbook starts with it off.

Canonical page: https://adwarp.dev/blog/linkedin-ads-for-saas
Last updated: 2026-11-07
