Running ads on X (formerly Twitter) means you can’t get comfortable. The algorithm changes constantly, often without any warning, and we saw that firsthand in a Q1 2026 campaign for a B2B SaaS client. Getting through these shifts takes more than just a big budget. You have to know the platform inside and out and be ready to pivot fast. This client, selling enterprise CRM solutions, gave us a perfect test case.
Key Takeaways
- Our first attempt with broad interest targeting bombed, with a Cost Per Lead (CPL) of $125, way over our $70 goal.
- Switching to specific job titles, company sizes, and custom audiences slashed our CPL by 44%, hitting the $70 target.
- Creative tests proved that short videos showing the product UI beat static images with a 2.5% higher Click-Through Rate (CTR).
- Shifting budget daily based on real-time conversion data boosted our Return On Ad Spend (ROAS) from a weak 1.8x to a solid 3.1x.
- Using bid caps at the start stopped us from overspending on bad traffic and saved about 15% of our daily budget.
Campaign Teardown: Enterprise CRM Lead Generation
For this Q1 2026 campaign, the mission was simple: get qualified leads in the US and Canada for a new enterprise CRM platform. The client, a known SaaS company, gave us some tough targets: a CPL of $70 and a 2.5x ROAS. We had a $50,000 budget to work with over six weeks, from January 8 to February 19, 2026. It was a straightforward top-of-funnel strategy where we sent traffic to a landing page to download a whitepaper.
Strategy and Initial Approach
We started out leaning on X’s standard targeting options. We went broad, targeting interests like “Enterprise Software,” “Cloud Computing,” and “Business Intelligence,” and layered on demographics for senior management and IT decision-makers. For creative, we stuck to high-level benefits and brand messaging with static images and carousels. We let the platform handle the bidding with an automatic, optimize-for-link-clicks setting, hoping the algorithm would figure things out and send us cheap traffic. (Spoiler: it didn’t.)
Performance Metrics: The Early Weeks
The first two weeks were rough. From January 8 to January 21, we were getting plenty of impressions, so reach wasn’t the problem, but nobody was clicking or converting. Our average CTR was a dismal 0.8%, well below the 1.2% we’d expect for a B2B campaign like this on X. Worse, our CPL ballooned to $125, nowhere near the $70 target. With only 120 total conversions, we were looking at a 1.8x ROAS. It was obvious our broad targeting was just burning cash and the algorithm was not on our side.
Initial Campaign Performance (Jan 8 – Jan 21)
| Metric | Value |
|---|---|
| Budget Spent | $15,000 |
| Impressions | 1,500,000 |
| Clicks | 12,000 |
| Conversions | 120 |
| CTR | 0.8% |
| CPL | $125 |
| ROAS | 1.8x |
Optimization Steps Taken: Adapting to Algorithm Shifts
Seeing those numbers, we knew we had to change course, so on January 22 we kicked off a full-on optimization push. Our theory was that the algorithm was lost in our wide-open targeting. The first thing we did was get way more specific with our audience targeting. We ditched the generic interests and started targeting exact job titles like “VP of Sales,” “Head of IT,” and “Chief Operations Officer” at companies with 500+ employees. We also uploaded a custom audience list from the client’s own database to give the algorithm a much clearer signal. A narrow, engaged audience will always beat a broad, irrelevant one, and X’s algorithm definitely rewards that kind of precision.
At the same time, we threw our old creative out and built a full creative testing matrix. We brought in new ads, including short videos that actually showed the CRM in action. A 15-second clip of the dashboard and its integrations almost immediately became our best ad, pulling a 2.5% higher CTR than any of our old static images. This was the proof we needed: the X algorithm was clearly prioritizing more dynamic content, especially when we aimed it at the right people. This isn’t surprising, as every eMarketer report shows video ad spend on social is just going up and up.
We also completely changed our bidding. We turned off automatic bidding and put in a bid cap strategy, starting at $5 per click, which instantly improved the quality of the traffic we were buying even though it meant fewer initial impressions. Once we had enough conversion data rolling in, we switched to an optimized bidding strategy for conversions, basically telling the algorithm to go find us people who would actually download the whitepaper. The last piece was a daily budget re-allocation process, where we’d physically move money to the best performing ad sets every single morning. This daily check-in was absolutely essential for keeping up with the algorithm’s constant changes.
Results Post-Optimization
The results from these changes were immediate and huge. In the second phase of the campaign, from January 22 to February 19, everything turned around. Our average CTR jumped to 1.8%, and our CPL finally came down to our $70 target. We pulled in another 400 conversions (for 520 total), and our ROAS stabilized at 3.1x, blowing past the 2.5x goal. The average cost per conversion for this period was $65, a massive improvement from the $125 we were paying at the start.
Optimized Campaign Performance (Jan 22 – Feb 19)
| Metric | Value |
|---|---|
| Budget Spent | $35,000 |
| Impressions | 2,000,000 |
| Clicks | 36,000 |
| Conversions | 400 |
| CTR | 1.8% |
| CPL | $70 |
| ROAS | 3.1x |
What Worked and What Didn’t
What worked exceptionally well:
- Hyper-specific targeting: Ditching broad interests for exact job titles and custom audiences was the single biggest win. The X algorithm rewarded this specificity by sending our ads to the right people.
- Video creative: A quick video showing the product in action crushed our static images. This just lines up with the platform’s obvious preference for dynamic content.
- Dynamic budget allocation: Adjusting budgets every day based on performance let us double down on what was working and kill what wasn’t, maximizing our efficiency.
- Bid caps: This was a smart move to control costs and get clean data at the beginning, before we felt comfortable enough to switch to full conversion optimization.
What didn’t work:
- Broad interest targeting: This was a total waste of money for a niche B2B product, giving us tons of impressions but almost no real engagement. It’s a classic trap, you want to cast a wide net to “see what sticks,” but on X, you’re better off starting narrow and only expanding if you have to.
- Static, benefit-focused creative: These ads, which were fine for general branding, completely failed to get conversions for a complicated SaaS tool. Users needed to see actual proof of value, not just marketing copy.
- Automatic bidding without data: Trusting automatic bidding right out of the gate, with no conversion history to guide it, just led to a ton of inefficient spend in those first couple of weeks.
Lessons Learned and Future Implications
If there’s one thing to take away from this campaign, it’s that you have to stay agile and test constantly when you’re running ads on X. The algorithm is always changing, so what killed it last month might be dead this month. You have to be ready to iterate fast. That means having your A/B testing framework for creative and targeting built out and ready to go from the second you launch.
The shift to video isn’t a trend, it’s a reality. You need to be creating short, high-quality videos that get straight to the point, showing how your product solves a real problem for the user. Just repurposing your static display ads for social won’t cut it anymore if you care about ROAS. Marketers who refuse to get on board with short-form video are going to see their campaign efficiency plummet on platforms like X.
And don’t forget your first-party data integration. Uploading our client’s customer list let us skip a huge part of the algorithm’s painful learning phase because we handed it a perfect picture of our ideal user from the start. This move got us to a profitable campaign way faster. You should be collecting and segmenting your own customer data to build custom and lookalike audiences on every platform you use.
Running X ads in 2026 is all about being proactive and data-driven. Continuous testing and fast adaptation aren’t just ‘best practices’ anymore, they’re what it takes to survive and actually grow.
How often should I be optimizing my X ad campaigns?
For big-budget campaigns or anything in the learning phase, look at it daily. Once things stabilize, checking in every 2-3 days is fine. Keep your eyes on CPL, CTR, and conversion rates to catch any problems early.
What’s the best video ad length for B2B on X?
Our data shows that 15 to 30 seconds is the sweet spot for B2B lead gen on X. It’s just enough time to show the product’s value without the viewer scrolling away.
Automatic bidding vs. bid caps on X: which one?
It depends on the stage. I always start new campaigns with bid caps to control costs and gather data cleanly. After you have a solid stream of conversions, you can switch to optimized bidding and let the algorithm do its thing.
How much do custom audiences really matter for X ads?
They’re everything. Using your own data to target known customers or leads is the most direct path to a lower CPL and higher ROAS. It’s almost always going to beat broad interest targeting.
What are the most important metrics to watch on X?
For lead gen, it’s all about Cost Per Lead (CPL), Return On Ad Spend (ROAS), and your Conversion Rate. Secondary metrics like Click-Through Rate (CTR) and Cost Per Click (CPC) are also good health indicators for your ad creative and targeting.