# How we Run ABM Campaings on LinkedIn a small budget (~$5k) – Cheapest LinkedIn Ad Formats & Campaign Objective Combinations

> So a couple of days ago I shared my ABM strategy for ZenABM – and how I’m planning to open ~ $105,000 in pipeline on a $5k monthly ad budget in 3 months.

Author: Emilia Korczynska
Published: 2026-09-13
Updated: 2026-09-13
Categories: LinkedIn Ads
Source: https://zenabm.com/blog/cheap-linkedin-ad-formats-abm-on-small-budget

---

![How We Run ABM on LinkedIn for $5k a Month cover with ZenABM branding and campaign dashboard screenshots](https://cdn.zenabm.com/media/zenabm_featured_5k_abm.jpg)

So a couple of days ago I shared my ABM strategy for** [ZenABM](/)** – and how I’m planning to open \~ **$105,000 in pipeline on a $5k monthly ad budget in 3 months.**

Today I’m digging deeper into how I’m actually executing it – running a LinkedIn ads ABM strategy on a small budget (with cheap ad format + campaign objective combinations) – step by step:

- how we built the **target audience**
- how I picked the **campaign goals**(both the revenue goals and and operationalized them (both accounts I needed to target, number of accounts I needed to reach, number of accounts I needed to make “aware” of ZenABM and push into the “warm campaigns”)
- how we made the decisions **how to structure the campaigns** – to maximize FREE brand exposure with right-rail text ads, harvest intent signals from engagements with ads in ad sets dedicated to specific topics (with [**ZenABM)**](/)
- how we picked which **ad formats to run,** **how many ads we can afford per adset,** and **exactly how much budget to allocate on each adset;**
- how **I’m doing impression capping to make sure the ads reach as many companies as possible**;
- how **I’m creating the content** for the campaigns (**wacky ads** to get your attention faster 😁)
- how I’m moving accounts between **the COLD and WARM audiences** (with [**ZenABM rather than retargeting on LinkedIn – bc I’m also using CRM properties here**](/))
- what’s the difference between **the COLD ads and WARM ads there (problem-awareness building ads vs. solution & product ads)**
- how I’m **capturing intent signals from cheap ad formats (Text Ads, Document Ads with Website visits)** and passing them onto **the CRM** for **follow up outreach with** (with [**ZenABM)**](/)
- **how I’m capturing WHICH companies we need to prioritize for outreach (**based on engagement level + prior intent signals like Signups for our ABM bootcamp, TLA bootcamp, or other webinars – Again with [**ZenABM account stages.)**](/)

## TL;DR – This is the whole campaign structure, with ad formats (+ why these) + exclusions:

![ZenABM Q4 campaign pricing breakdown showing cold air cover, text ads, thought leader ads, and document ads with daily…](https://cdn.zenabm.com/media/zenabm-q4-abm-campaign-ad-formats.png)

- We built our target audience from **companies already advertising on LinkedIn**(I didn’t want to necessarily convince anyone that they should).
- we built our audience from **companies already advertising on LinkedIn** (I didn’t want to convince anyone they should start).
- I worked backwards from **$105k in pipeline**, using our $3k ACV to arrive at \~35 opportunities and \~65–70 demos. So assuming 1% of companies meaningfully reached book a demo – I needed to **meaningfully engage 6,500 companies**.
- The 1% came up in our engagement data – **exactly 1.2% of companies reached With enough impressions on LinkedIn ads book a demo with us**
- But what does it mean, “meaningfully engaged” or “enough impressions”? I used[**ZenABM](/)’s and HubSpot’s MCP servers in Claude** to pull our conversion rates, ad costs and **the median number of impressions before demos/trials.**
- companies typically saw \~30 impressions before a demo and \~45 before a trial. So I went for the higher bracket and planned for **18 COLD feed impressions + 27 WARM impressions per company**.
- in **COLD**, I explain **the importance of addressing problems ZenABM solves**. In **WARM**, I **show** **how our product solves them.**
- I tested the formats before allocating the budget. Here’s what our **24 August–6 September results** told me:

![LinkedIn ad format performance comparison showing cost, impressions, and CTR metrics for ABM campaigns.](https://cdn.zenabm.com/media/zenabm-linkedin-ad-format-performance.png)

- **How did I choose the ad formats – this is the key decision here – with little budget, you choose the ad formats you can buy you the most meaningful impressions at the lowest cost.**
- **Now, there are a few types of ads that can do that, if combined with the right objective:**
- **Text ads can buy you a LOT of exposure for very little money** with **Website Visits objective + CPC bidding**. Text ads appear in the right rail, where clicks are rare, so you pay for very few clicks while collecting lots of impressions – you can even overbid above the recommended bid a lot to win more auctions and get more impressions:

![LinkedIn text ad campaign with $18 manual bidding strategy and auto-created lead conversion tracking.](https://cdn.zenabm.com/media/zenabm-linkedin-text-ad-bidding-setup.png)

- because they were so cheap, I could run a lot of them at the same time without necessarily eroding reach, I split text ads into 4 ad sets with different content (corresponding to different value props of ZenABM) – so I could capture intent signals on companies engaging with them:
- **Intent 1: Reporting & Revenue Attribution**
- **Intent 2: Company Engagement, Scoring & Intent**
- **Intent 3: Linkedyn Ads Optimization**
- **Intent 4: AI: Zena & MCP Server**

![LinkedIn Ads Campaign Manager interface showing active ad sets with delivery status, key results, spending and cost data.](https://cdn.zenabm.com/media/linkedin-ads-campaign-manager-zenabm.png)

- **ZenABM captures intent signals from those engagements** & pushes them as company properties into **HubSpot ( or any other tool, for instance, sales outreach tools or Clay, so we can use them to personalise the sales outreach message):**

![ZenABM Intent Management dashboard showing LinkedIn Ad Sets and Campaigns intents with engagement metrics.](https://cdn.zenabm.com/media/zenabm-intent-management-dashboard.png)

- this is how it looks in Hubspot. (These are intents from our previous campaigns)

![ZenaABM companies database in HubSpot showing LinkedIn intent data and contact records.](https://cdn.zenabm.com/media/zenabm-hubspot-companies-list.png)

- but **cheap impressions aren’t necessarily meaningful impressions**. I didn’t want text ad impressions alone to qualify companies for WARM.
- So I created a separate **“COLD meaningful engagement” campaign with feed ads** that will produce more meaningful engagements and exposure to actually branded content:
- for meaningful feed exposure, I chose **ungated Document Ads + Website Visits with CPC bidding**.
- People can browse the Document ad without a paid website click; I pay when they click through to the landing page in that tiny link below:

![ZenABM dashboard showing LinkedIn Ads pipeline revenue metrics and campaign performance data.](https://cdn.zenabm.com/media/zenabm-linkedin-pipeline-metrics.png)

- In our test, these Document ads generated **3,137 engagements and 44 landing-page clicks for \~$453**. The CPM was **$23.79**, so they let us put more content in front of people significantly cheaper than image ads
- I also chose **TLAs with the Brand Awareness**objective.
- Why the BA objective and not engagement? Because the CPM for BA was **$31.21, versus $111.95 with Engagement**. That buys \~3.6x as many impressions for the same spend, and event with the lower landing-page CTR (**0.64% vs 1.73%**), BA bought **\~3.6× more impressions per dollar** -and **\~33% more landing page clicks for the same budget**.
- to spread the budget across more companies, I created **company-level impression exclusions for each ad set**( see how to do this further in the article):

![LinkedIn Campaign Manager audience building interface showing company-level impression exclusion rules for ABM campaigns.](https://cdn.zenabm.com/media/linkedin-campaign-manager-company-exclusion-rules.png)

- my limits: **7 impressions/7 days; 10 for text or 15 for feed/30 days; 30/90 days**.
- companies enter WARM after **3+ engagements, 2+ clicks, OR 18+ COLD feed impressions**.
- That segment is**synced directly from ZenABM to Hubspot and to a dynamic audience on LinkedIn Campaign Manager:**

![ZenABM filtering interface showing segment membership and demo booking criteria for LinkedIn campaign targeting.](https://cdn.zenabm.com/media/zenabm-linkedin-campaign-manager-filters.png)

- 

![LinkedIn Campaign Manager form showing company segment audience creation with 369 targeted companies.](https://cdn.zenabm.com/media/linkedin-campaign-manager-segment-audience.png)

- **only TLA and document impressions count towards those 18 impressions that drive movement to WARM**.
- Actual**clicks and engagements count from all COLD formats**, **including text ads – Someone clicked on them repeatedly, it means they definitely noticed them.**
- I included the impression rule because **some company-level clicks aren’t reported**, especially for smaller companies.
- Feed exposure gives me another way to qualify them:

![LinkedIn campaign filter interface showing ABM campaigns selection with impression metrics and active status indicators.](https://cdn.zenabm.com/media/linkedin-abm-filter-group-campaigns.png)

![ZenABM dashboard showing ABM stages from Identified through Unqualified with company counts and engagement metrics.](https://cdn.zenabm.com/media/zenabm-abm-stages-pipeline.png)

- I built these rules as an **ABM stage in ZenABM**, combining **activity across campaigns.** Qualifying companies **sync to HubSpot nightly, then into the LinkedIn audience.**
- I also include **high-intent website visitors and unconverted trials/demos**, excluding competitors and customers.
- This lets **WARM run while the COLD** audience builds.

![LinkedIn campaign manager filter group showing ABM campaigns with Impressions metric and Selected ABM Campaigns filter.](https://cdn.zenabm.com/media/linkedin-abm-campaign-filter-group.png)

- companies leave the warm campaigns (= get excluded) after **27 WARM impressions in 90 days**.
- Those entering WARM with **18 COLD impressions get \~45 feed impressions in total.**
- for outreach, I use **ZenABM’s ABM stages to combine engagement with CRM history**. Example: 10+ WARM impressions AND a previous bootcamp/webinar signup.
- **the stage tells me which companies to prioritise; intent signals tell me what to talk about**.
- finally, I used **ZenABM’s MCP server in Claude Code to build a daily benchmark dashboards** tracking companies reached, impressions per company, stage progression and influenced pipeline.

![COLD Meaningful Engagement campaign metrics showing reach against plan with weekly performance data.](https://cdn.zenabm.com/media/cold-engagement-reach-against-plan.png)

- I watch **CPM, cost per landing-page click and companies reaching WARM**. Cheap impressions only help if enough of the right companies move through the campaign.

![LinkedIn ad campaign performance table showing CPM, click costs, and ROAS for different ad formats and objectives.](https://cdn.zenabm.com/media/linkedin-abm-campaign-cost-metrics.png)

## The FULL Story for the brave of you who still read 2000+ word blog posts

### Context – why I chose to run ABM on LinkedIn for ZenABM?

Well, that one was easy – [**ZenABM](/)** is a tool designed to help with running ABM programs on LinkedIn (with account scoring, CRM sync & intent signals capture) – so our target audience is literally **demand gen marketers running ads on LinkedIn**– what better place than Linkedin ads would be there to target them?

Even though we have a low ACV (ZenABM starts from $59 per month and goes up to $499 for agency plans) – I didn’t want to fall for the “limiting belief” (;p) that LinkedIn ads are “too expensive” for

I had \~ $5k ad budget to spare, and with a sensible goal of \~7 x pipeline per $ spent, in 3 months I should be able to generate $15k x 7 = \~ $105,000 in pipeline. This means \~ 35 deals with 3k ACV.

With a 50% deal open rate from demo – this should be \~ 65-70 demos.

From the data I pulled from Hubspot MCP server & ZenABM’s MCP server, I knew that:

- 26% of all demos (BUT with a trial following it!) end up in a closed won deal;
- 1.21% of LinkedIn ad traffic (= clicks to Landing Page) in the last 6 months booked a demo
- **median number of impressions from LinkedIn ads of companies that booked a demo was 30; for trial signups – it was 45;**

So the rest was pure math – if I want to drive \~ 65-70 demos, how many companies do I need to \*meaningfully\* (with 30-45 impressions each – I’d go for the higher bracket, because I’m ekhm, from Eastern Europe-istan, so optimism is not my forte), and how much will it cost me?

## STEP 1: Deciding on the target audience

![LinkedIn Campaign Manager interface showing audience targeting options with job titles, skills, and company filters.](https://cdn.zenabm.com/media/linkedin-campaign-manager-audience-targeting.png)

If 1.21% of companies visiting our site from LinkedIn ads book a demo – that’s around 5,785-6500 companies visiting needed.

Considering our average CTR was \~ 0.5% – that’s \~ 1,157,000 impressions needed.

Assuming a company decides to book a demo after 45 impressions in total – that’s 25,711 companies we needed to reach with those impressions.

Now – I can realistically reach 40-60% audience penetration. So to reach almost 25k companies, we needed 41k at least.

## STEP 2: Building the list – this took \~ 2 weeks

Now – based on the data from our closed-won deals from the past 6 months, the sweet spot for ZenABM was companies <200 employees running LinkedIn ads.

I also knew that the best locations were EU, US, UK and India, and then had to filter by a whole lot of job titles – and exclude another lot (I couldn’t afford to build a contact list).

This was the list of job titles I decided to include in the targeting:

- Digital Marketing Director
- Performance Manager
- Digital Marketing Consultant
- Marketing Strategist
- Digital Marketing Executive
- Vice President Marketing
- Digital Manager
- Marketing Manager
- Advertising Coordinator
- Head of Demand Generation
- Demand Generation Manager
- Demand Generation Associate
- Demand Generation Specialist
- Marketing Executive
- Marketing Advertising Specialist
- Senior Marketing Manager
- Digital Marketing Specialist
- Performance Specialist
- Digital Marketing Manager
- Head of Marketing
- Marketing Director
- Marketing Specialist
- Advertising Specialist
- Chief Marketing Officer
- Advertising Manager

I also knew I didn’t want to build demand per se – and educate companies that they should run LinkedIn ads and should use a tool like ZenABM.

I needed to find companies that were already running ABM programs on LinkedIn ads.

So we started building the list based on companies running LinkedIn ads from [LinkedIn Ads library API –](/blog/linkedin-ad-library)targeting companies running ads on similar keywords to the ones our CW deals run.

Simple – only that it took about 2 weeks due to API rate limits.

But we finally arrived at a total list of **52,450 companies; filtered down to** 2- 500 employees (I decided to go a bit broader than 200 as a test – may need to still reduce the audience size further down to 200 if I notice the larger companies are not converting!): 42,029 companies (51-200 – 37,366 companies)

COLD Filtered by company size and location + filtered further by job title and exclusions: **34,021 companies and 110,000 members.**

The list will be further filtered by companies exiting the audience after they’ve been saturated by enough impressions in a given time period (on most adsets: – 7 in 7, 10 or 15 in 30, and 30 in 90)

![LinkedIn Matched Audiences interface showing company engagement filters and audience attributes for ABM campaigns.](https://cdn.zenabm.com/media/linkedin-matched-audiences-abm-targeting.png)

**This would be our COLD audience.**

## WARM audience

The warm audience is built based on several criteria:

- **Active engagements (3+ engagements or 2+ clicks)** with any of the ads in the COLD campaign – both the “air cover” text ads and the “Meaningful Engagement” (TLA + Doc ads)
- **Impressions (18+) in the “Meaningful Engagement” campaign**– this is because I know that not ALL the clicks (especially in smaller companies) get reported by the API; so for the meaningful eng. campaign – I was happy to settle for 18+ impressions there to assume the company (esp that the number of members per company was small – on average 3 / company) saw the ads enough times – this would be 6 times per member on average – the feed ads actually are noticeable and the impressions are meaningful;
- This audience was created in [ZenABM](https://www.linkedin.com/company/zenabm/) as **an ABM Stage combining all the engagements and impressions from the different campaigns and adsets** , which then gets synced to Hubspot every night are the companies meeting the conditions:

![LinkedIn stage conditions interface showing filter groups with engagement metrics and campaign selection criteria.](https://cdn.zenabm.com/media/linkedin-stage-conditions-filter-setup.png)

![LinkedIn campaign filter group showing impressions condition for ABM campaigns.](https://cdn.zenabm.com/media/linkedin-abm-filter-group-conditions.png)

![Filter group configuration for LinkedIn ABM campaigns showing selected campaigns with engagement metrics and active status.](https://cdn.zenabm.com/media/linkedin-abm-campaign-filter-group-2.png)

Now, apart from that – I also wanted to include:

- **all website visitors to high-intent pages** (excluding competitors and current customers) – I had built retargeting audiences based on visitors to specific landing pages before:

![LinkedIn audience creation dialog for retargeting high-intent page visitors within 180 days.](https://cdn.zenabm.com/media/linkedin-audience-builder-high-intent-pages.png)

- trial signups and demos that didn’t convert into paying customers:

![ZenABM ABM stage filter showing demo bookings that are not customers with segment membership conditions.](https://cdn.zenabm.com/media/zenabm-abm-stage-filter-segment-membership.png)

- This audience was built as a company segment in Hubspot, and then pushed to LinkedIn

![LinkedIn dialog to create a company segment audience for WARF Q4 2026 with 369 total companies.](https://cdn.zenabm.com/media/linkedin-create-company-segment-audience.png)

Because we just started the cold campaign, this audience itself, based on the engagements and impressions in the cold campaign, is still too small to run ads to.

Luckily, the other segment (website visitors) is saving the day, and we can already run the warm campaigns to this audience segment, while the WARM audience from cold engagements is still populating.

## Campaign Structure & Budget Allocation

Ok so we had a COLD list of **34,021 companies and 110,000 members.** These weren’t in fact pure cold companies – we still used the companies we had run ads to earlier + companies that reached the interested stage in previous campaigns – it would be wasteful not to include them.

60% audience penetration of 34,021 = **20,413 companies**.

60% of 110,000 = **66,000 people**.

Now – **we set the goals: we need to reach 6,500 companies with 45 impressions to book a demo at the 1% rate (pessismistic variant)**

- **In cold: 18 impressions per company**, impressions counted only from ads in the feed, but enagements also counting from right-rail ads (text)
- **In warm: 27 more impressions per company**, on top of the 18 they already had.
- This should give me **45 meaningful impressions per company in total.**

Now – I had to choose the right ad formats to deliver these impressions + meaningful engagements as cheaply as possible.

And this is where your insider knowledge about LinkedIn ad hacks really matters – because certain combinations of ad formats and campaign objectives can deliver impressions pretty much for free.

First of all, we need to distinguish between different ad placements on LinkedIn:

- the right rail, which is where you have the games like Zip and Sudoku – this is reserved for text ads, spotlight ads, and the new right rail ads, which are currently in alpha and which I don’t have access to
- the feed – which is where most of the traditional ads go, like TLA image ads, video ads, document ads, carousels, etc
- the inbox – this is reserved, of course, for the message ads or DM ads and the conversation ads

For now, I’m using only two placements: the right rail and the feed.the right rail and the feed.

These two don’t compete with each other because the impressions are delivered independently.

## This is how I picked the combinations of ad formats and campaign objectives:

## Text Ads with website visits objective – Right Rail for general air cover

1) For general brand awareness – (very cheap impressions) – building the “air cover”: **text ads with the website visits objective** – the problem with these is that they are often overlooked, I’m not counting impressions from these campaigns as an indication that an account is aware. But when someone does notice the ads, they can even sometimes click on them.

The click-through rate because of this is typically very low, so with the website’s visits objective, you pay pennies – but these are free impressions, and the clicks you get can still capture **intent signals for you,**which is exactly what I’m planning to use the campaign for.

I followed the advice of AJ Wilcox in terms of the structure and number of text ads in the ad sets:

- **the general problem solution and product campaign**– this is a separate LinkedIn text ads campaign with two assets – one for product related ads , one for problem-solution-related ads: two ad sets x 8 ads each

![LinkedIn Ads Campaign Manager showing active ad sets with performance metrics including cost per result and impressions.](https://cdn.zenabm.com/media/linkedin-ads-campaign-manager-dashboard.png)

![LinkedIn Campaign Manager showing multiple active ABM product ads with performance metrics and budget allocation.](https://cdn.zenabm.com/media/linkedin-campaign-manager-abm-ads.png)

- the **four intent campaign contain four ad sets, each with four ads, each focused on a specific value proposition of ZenABM:**

![LinkedIn Ads Campaign Manager showing four active intent campaigns with website visit results and spending data.](https://cdn.zenabm.com/media/linkedin-ads-campaign-manager-intent-ads.png)

![LinkedIn Campaign Manager showing multiple active ad sets with performance metrics and cost per result data.](https://cdn.zenabm.com/media/linkedin-campaign-manager-ad-sets.png)

These ads are also used for cheap capture of the intent signals:

![ZenABM interface showing Intent Management with LinkedIn ad sets and campaign intents list.](https://cdn.zenabm.com/media/zenabm-intent-management-linkedin-ads.png)

If any of the target accounts engage with any of the text adsets – ZenABM captures this engagement and labels the company with an intent signal company property, both in ZenABM and in Hubspot:

![ZenABM Companies table tracking ABM stage, intent and engagement per account in a $5k LinkedIn campaign](https://cdn.zenabm.com/assets/1789145856831.gif)

![ZenABM CRM interface showing company records with LinkedIn engagement data and intent signal properties.](https://cdn.zenabm.com/media/zenabm-hubspot-company-intent-signals.png)

## Document ads with website visits objective + TLA’s with brand awareness objective – for meaningful engagement capture

Now, considering text ads are sometimes overlooked – we wouldn’t use them as a measure of meaningful engagement and the trigger to move the companies to the warm stage (after 18+ impressions from these 2 ad formats or 2+ clicks / 3 engagements in COLD (any ad format)).

This is what we use two ad formats in the feed that actually drive meaningful engagements and build awareness of the product and our brand, but – when used with the right campaign objective – can be still very cost-effective.

![ZenABM interface showing LinkedIn Ads performance metrics and pipeline revenue data with engagement statistics.](https://cdn.zenabm.com/media/zenabm-linkedin-ads-pipeline-metrics.png)

Document ads – when ungated (with the website visits objective) – they work exactly like carousels but have better UX and engagement rate – And you only pay for the clicks to the landing page if the prospect actually clicks on the link under the document.

![Smiling student in uniform featured in Weatherbys Private Bank school fees brochure cover.](https://cdn.zenabm.com/media/weatherbys-private-bank-school-fees-brochure.png)

We use them to replace the more expensive single image ads (to pack more content into a single ad).

So Document Ads are practically free to browse.

They are also pretty easy to create with e.g. Claude – I’ve built a skill for this with our brand guidelines ([https://zenabm.com/brand](/brand)) + [**document ad best practices:**](/blog/linkedin-document-ads-guide-with-examples)

**I make them intentionally emotional & attention grabbing:**

![ZenABM platform overview showing before and after marketing results with campaign performance metrics.](https://cdn.zenabm.com/media/zenabm-why-i-built-platform.png)

Then – the staple of all ABM campaigns – TLAs for building trust and creating the most in-depth understanding of the problem and the need for the solution (in the “COLD” stage) and how the product can help solve the prospects’ problems and how it works (in the “WARM” ABM stage)

![Two professionals posing outdoors for a casual photo in business attire.](https://cdn.zenabm.com/media/linkedin-abm-campaign-targeting-tactics.png)

These two ad formats are the backbone of the the COLD campaigns (and warm ones too)

Once I settled on which ad formats I want to run, I benchmarked the cost per click, CPM and 1000 members reached in each of the ad formats to decide how to allocate my budget to them:

![ZenABM LinkedIn ad set performance data showing CPM, cost per click, and engagement metrics across different ad formats.](https://cdn.zenabm.com/media/zenabm-linkedin-ad-set-performance-benchmarks.png)

These were our **benchmarks on the** key metrics for each format I finally decided to settle on:

- **Text ads:** $0.41 per thousand impressions.
- **Thought leader ads:** $31.21 per thousand impressions, and $4.88 per landing page click.
- **Document ads:** $23.79 per thousand impressions, and $10.29 per landing page click.
- **Video:** $68.27 per thousand impressions.

## Now we know the ad formats – How the whole campaign was structured, step by step:

### Step 1: Start with the number of demos we want

- We want **65 demos** by mid December.
- In the past, about **1% of the companies we get properly engaged** with book a demo.
- 65 divided by 1% means we need **6,500 engaged companies**.
- Every other number in this plan comes from that one.

### Step 2: Work out how much advertising a demo actually takes

- We looked at every closed deal that ZenABM marked as ABM influenced.
- The typical company had seen **110 impressions before the deal was even created**. The lowest was 34. The highest was 1,307.
- Deals with no ABM influence had seen **0 to 17 impressions**.
- Our own records also show about **30 impressions before a demo** and **45 before a trial signup**.
- So the question is not how to get a click. The question is how to get a company to 30 or more impressions without wasting money.

### Step 3: Split the journey into two stages

- We don’t want to attack companies that have not heard of us or that don’t have a strong need to solve the problems that ZenABM solves with “book-a-demo ads” and product-led messaging.
- So we
- So we do it in two stages: **Cold: reach 18 impressions.** That is the point where a company knows who we are. **Warm: 27 more impressions –** only for companies that reached 18.
- 18 plus 27 is 45, which matches the trial threshold from step 2.

### Step 4: Count how many companies we can actually reach

- Our target list is **34,021 companies**, containing **110,000 matching people**.
- LinkedIn never serves your whole audience in one quarter. Some people do not log in. Some are not eligible to see ads. We lose some auctions.
- So we plan on reaching **60%**: **20,413 companies and 66,000 people**.
- That works out at about **3.23 people per company**. This number becomes important in step 14.

### Step 5: Multiply

- Cold: 20,413 companies × 18 impressions = **367,400 impressions**.
- Warm: 6,500 companies × 27 impressions = **175,500 impressions**.
- Now we need to know what one impression costs.

### Step 6: Run a test campaign and measure the real prices per 1000 impressions.

We spent two weeks on a test and measured each format:

- **Text ads:** $0.41 per thousand impressions.
- **Thought leader ads:** $31.21 per thousand impressions, and $4.88 per landing page click.
- **Document ads:** $23.79 per thousand impressions, and $10.29 per landing page click.
- **Video:** $68.27 per thousand impressions.

### Step 7: Calculate the budget

- 367,400 cold impressions at the measured prices costs about **$3,300 a month**.
- 175,500 warm impressions costs about **$1,540 a month**. We give warm **$2,700**instead, so there is room to spare (and this is why I may end up spending actually $5000 per month).
- TEXT Air cover gets **$120 a month**. Step 9 explains why so little.
- **Total: $6,900 a month, or $230 a day.**
- We did not choose $6,900. It is the cost of the impressions we need.

### Step 8: Set up four campaigns on LinkedIn

**Cold Q4 Aircover, Campaign 1.** $100 a month.

- Two ad sets: Problems/Solutions and Product. Eight text ads in each.

**Cold Q4 Aircover, Campaign 2.** $20 a month.

- Four ad sets, one for each intent: ABM, LinkedIn ads optimization, dashboards and attribution, AI agent and MCP. Four text ads in each.

**Cold Q4 Meaningful Engagement.** $4,080 a month.

- Thought leader ads, five live at a time. $2,280.
- Document ads, five intents with one intent live at a time and two documents inside it. $1,800.
- This is the only cold campaign that can qualify a company for warm.

**Warm Q4 26.** $2,700 a month.

- Documents $1,200. Thought leader ads $1,200. Video $300.

### Step 9: Why the text ads cost almost nothing

- Text ads appear in the right rail, the narrow column next to the feed.
- We bid **$18 per click**, which is far higher than LinkedIn suggests. We also chose to pay per click rather than per impression.
- We only pay when someone clicks. Almost nobody clicks a text ad. So the high bid wins a lot of auctions, we collect a large number of impressions, and we are charged for very few clicks.
- In September these campaigns spent **$13.96 a day** in total, even though the budget allowed much more.
- The $120 is a limit we will not reach, not an amount we plan to spend.

### Step 10: Text impressions do not count toward the 18

- **96% of our cold impressions come from text ads.** They deliver 7.3 to 7.9 impressions per person, compared to 1.3 in the feed.
- A right rail impression means we were present. It does not mean anyone read anything.
- If text impressions counted, companies would reach 18 without engaging with real content, and we would spend warm budget on them.
- So the 18-impression bar counts **feed formats only**: thought leader ads and document ads.
- Clicks and engagements still count from every campaign, because a person chose to do those.

### Step 11: How to distribute the impressions more evenly across all companies & reach more companies – with impression capping

To make sure we distribute the impressions across as many companies as possible. I’ve set weekly, monthly, and quarterly impression caps on the company level:

- You build them in the companies list, ironically, using the filters on the right and the time frame on the top right, and then you just save this company list filtered view as an exclusion audience.
- You can build the impression-based exclusion audiences based on impressions in specific ad sets – as shown below:

![LinkedIn Campaign Manager Companies dashboard showing engagement metrics and audience filters with COLD search results.](https://cdn.zenabm.com/media/linkedin-campaign-manager-companies-filter.png)

- 

![LinkedIn Ads Campaign Manager dialog for creating a company retargeting audience with exclusion options.](https://cdn.zenabm.com/media/linkedin-ads-campaign-manager-retargeting-audience.png)

- Then you just save them, and add them to your exclusions on each ad set level.
- When **a company goes over an impression limit in any given ad set in the specified time period** , Linkedin adds **it to the dynamic company list and excludes it from the ad set.**
- The budget then goes to companies that have not reached their dose of impressions yet.
- There are three limits on every ad set, covering three different time periods:
- **Air cover:**NO more than 7 impressions in 7 days, 10 in 30 days, 30 in 90 days.
- **Meaningful Engagement:**NO more than7 in 7 days, 15 in 7 days, or 30 in 90 days.
- **Warm: NO more than** 7 in 7 days, 15 in 30 days, or 30 in 90 days.

This is not a rule of thumb, but the number that makes sense for an audience where we have roughly 3 team members on average targeted by our ads per company.

So assuming we manage to reach all three members, each of them should see 2-3 ads in a week, 5 in a month, and 10 in a quarter.

**Why this matters more than the budget:**

- Without these limits, LinkedIn shows the ads mostly to the few hundred companies that engage the most. The average impressions per company still looks healthy, but almost no company actually reaches 18.
- With the limits, about **48% of companies reach 18 impressions**. That is roughly 9,800 companies, and we only need 6,500.

### Step 12: How a company moves through the campaigns

- A company starts in all three cold campaigns at the same time. Text ads and feed ads never compete with each other, because the right rail and the feed are separate auctions.
- Inside air cover, a company moves from the broad text ad sets into the intent ad sets, and then out of text altogether, based on the limits above.
- Nothing moves a company between the two cold campaigns. Both run against the same list at the same time.
- A company **enters warm**when any one of these is true: 3 engagements, 2 clicks, or 18 Meaningful Engagement impressions.
- There are also other ways in: **visitors to our demo and pricing pages, visitors with demand-gen job titles, visitors to our competitor and ABM pages, and trial signups or demos that have not become customers.**
- A company **leaves warm** at 27 impressions in 90 days.
- By then – it should have \~ 45 impressions from expensive adsets (no counting impressions from COLD Air cover) in total.
- The warm list is an **ABM Stage in ZenABM**, **sent to LinkedIn as a third-party audience through HubSpot. It updates itself.**
- **In ZenABM, we monitor the progression through the funnel with the ABM stages for this campaign:**

![ZenABM ABM stages showing campaign funnel progression from Identified through Lost with engagement metrics.](https://cdn.zenabm.com/media/zenabm-abm-stages-funnel-progression.png)

- **These stages can be set manually or through the AI agent Zena** – and can be set based on:
- any combination of LinkedIn ad engagements, impressions, engagements, and clicks in specific campaigns, assets, or ABM campaigns

![HubSpot filter setup with HubSpot Contact Property conditions for bootcamp and ABM campaign application.](https://cdn.zenabm.com/media/hubspot-contact-property-filter-groups.png)

- + any combination of contact-level and company-level properties, deal stages, etc., including website visits, webinar signups, etc
- This **tells me which companies we should focus the follow-up outreach on.**
- **E.g. I want to see companies in the WARM stage that have already reached 10+ impressions in the warm stage and, in the past, signed up for any of our webinars, events, etc**

![ZenABM filter configuration showing HubSpot contact properties with bootcamp enrollment conditions set to equals yes.](https://cdn.zenabm.com/media/zenabm-contact-property-filter-setup.png)

- 

### Step 13: How it is set up in ZenABM

to facilitate correct tracking of the impact of the campaigns on pipeline and revenue, and so that I can easily see how companies are moving through the stages of the funnel in each of the campaigns – we have four ABM campaigns. Three of them cover cold:

![ZenABM campaigns dashboard showing ABM campaigns list with status, dates, and performance metrics.](https://cdn.zenabm.com/media/zenabm-campaigns-list-view.png)

- **COLD Q4 (Total).** Contains all three cold LinkedIn campaigns. This shows how cold is performing overall.
- **Cold Q4 Aircover.** Contains only the two text campaigns. This lets us check that air cover is still cheap.
- **Cold Q4 (Meaningful Engagements, TLAs and Docs).** Contains only the feed campaign.
- **WARM Q4 26.**One campaign for all the ads formats there.

**The 18-impression rule must be measured on a view that contains only the feed campaign.**

If you measure it across all of cold, the text ads will fill your warm audience with companies that have never read anything. Warm does one job, so it only needs one view.

### Step 15: Measurement

![Comparison table of LinkedIn ad formats showing efficiency metrics including cost per impression, click rate, and cost per…](https://cdn.zenabm.com/media/linkedin-cold-outreach-cost-efficiency-metrics.png)

![COLD Meaningful Engagement campaign dashboard showing plan vs actual reach, impressions, and account performance metrics.](https://cdn.zenabm.com/media/cold-engagement-meaningful-reach-plan.png)

Using [**ZenABM’s MCP server in Claude Code**](/mcp), I built my own artifact for this campaign with two reporting dashboards tracking:

- key leading metrics I need to watch on daily basis to make sure the campaign stays on track with cost per 1000 impressions (CPM) to produce the 6,500 warm companies by mid-December for the set budget;
- and how the companies move through the funnel every week

**1. What we want** 6,500 warm companies. Warm means a company has seen us **18 times**in the Meaningful Engagement campaigns.

**2. So what do we have to buy?**

At least 18 impressions for 6,500 companies. That’s \~ 117k impressions

We split those 18 across two formats:

- **8** thought leader ad impressions
- **10** document ad impressions

**3. What does that cost?** Impressions are priced per thousand, so one impression is CPM ÷ 1,000.

- Thought leader ads: $31.21 per thousand, so **3.1 cents each**. × 8 = **$0.25 per company**
- Documents: $23.79 per thousand, so **2.4 cents each**. × 10 = **$0.24 per company**
- **Total: $0.49 to give one company its full 18 impressions x 6,500**

**4. The benchmarks is the most we can pay per impression and still buy all 18 impressions for all 6,500 companies with the money we have.**

- TLA ceiling $34 CPM. Today $31.21. Fine.
- Document ceiling $26 CPM. Today $23.79. Fine

**1. Accounts reached**

- Cold has to touch all **20,413** companies. Warm has to touch **6,500**.
- Cold is supposed to deliver 18 meaningful impressions per company for 6,500.
- We check the **average Meaningful Engagement impressions per company per week**.
- Very few companies will reach warm in the first five weeks. That is how the plan is designed, because a company needs the full quarter to collect 18 impressions. If we judged the first six weeks on companies moved, a working plan would look like a failing one.

**2. Max CPM**

- Thought leader ads: **$31.21** today, ceiling **$34.00**
- Documents: **$23.79** today, ceiling **$26.00**
- Text: **$0.41** today, ceiling **$0.50**
- Video: **$68.27** today, ceiling **$70.00**
- Each ceiling is the measured cost from the test plus 10 to 20%. It is a tripwire, not a target.
- Crossing it does not mean you spent more. It means the price of an impression changed.

**3. Max CPC, counted as clicks that reach the site**

- **Only 31% of billed thought leader ad clicks actually land on the page.** LinkedIn charges for reactions and profile clicks too.
- So the TLA ceiling is **$6.00** while the document ceiling is **$11.00**, even though documents cost more per impression.
- Measure billed clicks instead and you will celebrate a cheap CPC that bought nothing.

**4. Dollars per account at target dose**

- This is just CPM × dose. It answers: what does this cost per company.
- Cold TLAs **$0.27**, cold documents **$0.26**, warm documents **$0.47**, warm TLAs **$0.31**, video **$2.00**, text **$0.015**.

**How we pull them, weekly**

- All of it from the ZenABM MCP server, not Campaign Manager, for one reason: **LinkedIn counts people, I need to count companies.**
- ZenABM resolves impressions to companies, so I get accounts reached and impressions per account.
- CPM is spend ÷ impressions. Click cost is spend ÷ **landing page** clicks, which is a separate field from clicks.

## Current campaign structure (Actual – I’m still missing a lot of the document ads I want to add!):

### Campaign 1 — COLD Text 1 Air Cover Q4 2026 – Product, Problem + Solution

*(2 ad sets)*

**Ad set 1: Aircover Q4-Text- Product- COLD – Sept 26**

- Ad format: Text Ad
- Objective: Website visits
- Daily budget: $100.00
- Bid: $18.00 (Manual)
- Ads: 10

**Ad set 2: Q4 26 Air Cover – Text – Problem/Solution – COLD**

- Ad format: Text Ad
- Objective: Website visits
- Daily budget: $100.00
- Bid: $10.00 (Manual)
- Ads: 8

### Campaign 2 — COLD 2 Air Cover Q4 2026 – 4 intents

*(4 ad sets)*

**Ad set 1: COLD 2 Text Air Cover Q4 2026 – Intent 2 — Company Engagement, Scoring & Intent**

- Ad format: Text Ad | Objective: Website visits | Daily budget: $100.00 | Bid: $19.00 (Manual) | Ads: 4

**Ad set 2: COLD 2 Text Air Cover Q4 2026 – Intent 3 — Linkedyn Ads Optimization**

- Ad format: Text Ad | Objective: Website visits | Daily budget: $100.00 | Bid: $19.00 (Manual) | Ads: 4

**Ad set 3: COLD 2 Text Air Cover Q4 2026 – Intent 1: Reporting & revenue attribution**

- Ad format: Text Ad | Objective: Website visits | Daily budget: $100.00 | Bid: $18.00 (Manual) | Ads: 4

**Ad set 4: COLD 2 Text Air Cover Q4 2026 – Intent 4: AI: Zena & MCP Server**

- Ad format: Text Ad | Objective: Website visits | Daily budget: $100.00 | Bid: $15.00 (Manual) | Ads: 12

### Campaign 3 — WARM Q4 2026

*(3 ad sets)*

**Ad set 1: WARM Video WV Q4 26**

- Ad format: Sponsored Content – Video | Objective: Website visits | Daily budget: $10.00 | Bid: $7.00 (Manual) | Ads: 1

**Ad set 2: WARM Docs WV Q4 26**

- Ad format: Sponsored Content – Document | Objective: Website visits | Daily budget: $40.00 | Bid: $10.00 (Manual) | Ads: 1

**Ad set 3: WARM TLAs BA Q4**

- Ad format: Sponsored Content | Objective: Brand awareness (Reach) | Daily budget: $40.00 | Bid: Automatic (max delivery) | Ads: 9

### Campaign 4 — COLD TLAs & Docs Q4

*(2 ad sets)*

**Ad set 1: COLD TLA BA Q4**

- Ad format: Sponsored Content | Objective: Brand awareness (Reach) | Daily budget: $76.00 | Bid: Automatic (max delivery) | Ads: 18

**Ad set 2: COLD Document WV Q4**

- Ad format: Sponsored Content – Document | Objective: Website visits | Daily budget: $60.00 | Bid: $15.00 (Manual) | Ads: 1

And that is it.

I know you probably haven’t reached this place 🙂
