You've successfully subscribed to Circleboom Twitter: Analytics & Management for X Accounts
Great! Next, complete checkout for full access to Circleboom Twitter: Analytics & Management for X Accounts
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.
Twitter ads agency: what "managed targeting" really means on your invoice

Twitter ads agency: what "managed targeting" really means on your invoice

. 8 min read

The campaign that finally worked ran off a spreadsheet. Four thousand rows, one column that mattered, uploaded to X Ads Manager by me in about eleven minutes.

The campaign before that one had been managed. Managed targeting, managed optimization, managed reporting, all of it billed monthly under a line item I had never asked a hard question about.

Both campaigns ran to the same budget. Only one of them reached people who existed.

I want to rewind to how I got there, because the useful part is not that the spreadsheet worked.

The useful part is what I found when I finally asked what "managed targeting" had been producing all along.


What managed targeting produces: a settings panel, a monthly report, and no file. What an hour in Circleboom produces: a dated CSV of named X accounts with the rejects saved separately, pulled by an approved X Enterprise developer. One of those you can argue with.

→ Export Twitter accounts

The gap between those two rows is where most X ad budgets go.

The decode: "managed targeting" means nobody looked at the list

That phrase sat on my invoice for the better part of a year. I read it as expertise being applied continuously on my behalf.

What it actually described was a targeting configuration set once, in an interface I did not have access to, using X's native interest and keyword categories, and left alone.

There is nothing dishonest about that. It is a legitimate way to run a campaign, and for some objectives it is the right one.

But "managed" implies ongoing judgment, and what I was buying was a one-time setup plus a monthly report generated from the same dashboard I could have opened myself.

The tell is that the deliverable had no artifact. No file, no row count, nothing you could hold.

Every other line on that invoice produced something. Creative produced assets. Strategy produced a deck.

Targeting produced a checkbox state, and a checkbox state is very hard to audit, which is precisely why the line survived a year of quarterly reviews.

If you want the version with the numbers attached, the breakdown of what a $3,000 monthly Twitter ads agency retainer buys runs the same decomposition from the quote side rather than the invoice side.

The artifact test is the fastest way to run this yourself. Ask what file the targeting work produces, and if the answer is a screenshot of a settings panel, you have your decode.

Building a list you can run through Twitter accounts export takes an afternoon and settles the question permanently.

Why broad targeting on X is a tax, not a strategy

Here is the mechanism, because the mechanism is what makes this more than a complaint.

When you target broadly, you are telling X's delivery system to spend your budget efficiently across a large pool. The system optimizes for cost per impression, and it finds the cheapest impressions available.

The cheapest impressions on X are served to accounts nobody competes for. Nobody outside the company can put a firm number on how much of the platform is automated, and the public estimates disagree with each other by a wide margin.

What is not in dispute is the direction: those accounts are cheap to reach precisely because they are worthless to reach.

So a broad campaign does not fail loudly. It succeeds on every metric it reports:

  • Impressions hit target.
  • Cost per impression looks competitive.
  • Click volume comes in on forecast.
  • Engagement rate holds steady.

Everything is green except the part nobody is measuring, which is whether a person was on the other end.

The arithmetic is unforgiving once you write it out. A $100 budget spread broadly can return 25 clicks, of which one or two come from real humans. That is an effective cost near $80 per real click.

The same $100 aimed at a filtered list returns fewer raw clicks, but nearly all of them come from accounts with a person behind them, which drops the cost per real click by orders of magnitude.

The $100 X ads test: a 99 percent drop in cost per real user works through that comparison in full.

That ratio is not a marketing claim about a tool. It is what happens when you stop paying full price for bot inventory.

The uncomfortable follow-on is that the broad campaign is not merely wasteful. It is actively misleading, because it trains you to believe a cost-per-click number that has no relationship to cost per customer.

Every optimization you make on top of that number pushes you further into the cheap inventory, since that is where the metric improves fastest.

You can spend a quarter getting very good at buying nothing.

A dashboard that improves while outcomes decline is worse than no dashboard.

Building the file that managed targeting never produced

The workflow I run now, start to finish, before any budget moves.

Build and clean the account list

  1. Open Circleboom Twitter and authorize it against the X account that owns the ad budget, not a personal handle. You want the export trail sitting under the same account as the campaign.
  1. Open the Essential Toolbox menu, where the export tools sit alongside the list and block utilities.
  1. Search X accounts on the keyword your buyers put in their own bios. One deep historical query caps out around 5,000 accounts spread over roughly 50 pages, which is more raw material than most campaigns need.
  2. Apply the exclusion filters before you look at a single profile. The two that move the row count most are Inactive and Eggheads. Protected matters less than you would think, and Overactive is the one people forget, because a profile posting forty times a day is usually automation wearing a face.

Move the file into X Ads Manager

  1. Export the filtered result as CSV. The export is token-based and the remaining balance shows before the operation runs, so you know the cost of the pull in advance.
  2. Upload the CSV in X Ads Manager under Tools, then Audiences, then Create Audience, choosing the list option.
  3. Wait for the match to complete and compare the matched size against your row count. X's List Custom Audiences documentation states that a list needs at least 100 matched users to be usable, and that processing can take up to 48 hours.

The order matters more than any individual step. Filtering before export means the CSV is already the deliverable rather than a raw dump you clean up later, and comparing matched size against row count at the end tells you whether your keyword was describing real accounts or noise.

Skip that last comparison and you are back to trusting a dashboard.

I walked through the per-click accounting on video, because the numbers land harder when you watch them get counted.

What the spreadsheet changed, and what it did not

The first thing I noticed was not performance. It was that I could answer questions.

Asked who we were targeting, I had a file to open. The exclusions had a filter behind them rather than a shrug. And when week two came in soft, the first place to look was the list, not the algorithm.

That sounds procedural. It is actually the whole thing.

A campaign you can inspect gets fixed in days. A campaign you can only report on gets fixed at the next quarterly review, if at all.

I also got something wrong that is worth admitting, because it cost me a month.

My first exported list was built from a single keyword, and it was far too literal. I searched the term my company uses for the category, which turned out to be a term almost nobody outside the company uses in a bio.

The list came back full of competitors and industry press. Excellent accounts. Zero buyers.

The fix was not a better tool. It was running three separate searches on the words customers actually used in support tickets, then keeping the accounts that appeared in more than one result.

Overlap across independent keyword searches turned out to be a far stronger relevance signal than any single query.

Keyword overlap is one seed. Competitor audiences are the other. The question of whether you can target a competitor's followers with Twitter ads has a better answer than most people expect, once you separate the follower list from the retweeter list.

What you are actually renting

For creative production and testing discipline, often yes. For the audience layer, the honest answer is that you are renting a workflow you can run yourself.

The reason has nothing to do with agency competence. It is that the constraint moved.

Structured X account data used to be genuinely hard to reach at scale, which made the intermediary valuable. Sanctioned API access closed that gap, and reaching it now costs what a software subscription costs rather than what a professional-services engagement costs.

What did not get cheaper is the taste involved. Somebody has to decide that "procurement software" is the wrong bio keyword and "spend approvals" is the right one, and no filter panel will tell you that.

Pay for the taste. Do not pay a subscription for the export.

So the split I would recommend, having run both models:

  • Buy strategy, creative, and testing cadence from people who do it daily.
  • Build the audience file yourself, monthly, and keep every version.
  • Treat any "proprietary audience data" claim as a question, not a credential.

Circleboom's export X accounts is the step where the file stops being an idea and becomes an asset you own.

A third seed skips bio keywords entirely. Export retweeters starts from demonstrated amplification rather than a bio keyword, which is a stronger intent signal because someone had to act.

For a follower-based version of the same idea, the walkthrough on exporting Twitter followers for hyper-targeted ads covers building the list from a competitor's audience and pushing it into X Ads Manager.

Once you have several lists in play, keeping them organized stops being optional. The Twitter List Manager is where the segments live between campaigns, which matters more than it sounds when you are running three audiences against two creatives.

None of that answers what the media itself should cost, which is the other half of any proposal. The current picture of how much Twitter ads cost gives you the benchmark to hold a quote against.

Build the file first

A Twitter ads agency sells you attention. What it hands over is a configuration, and a configuration that produces no file is a configuration nobody has looked at since the day it was made.

Build the file. Then decide what the agency is for.

→ Export a filtered list of Twitter accounts

Still wondering?

How many rows should my exported X audience have?

A few thousand is a workable starting range. Too small and delivery stalls while frequency climbs on the same handful of people; too large and you are back to buying strangers. There is a hard activation minimum on X's side, and a list that lands under it simply will not run. If you are anywhere near that boundary, the problem is the keyword, not the filter.

Why did my CSV match to fewer people than I uploaded?

Matching is never one to one. X matches your identifiers against active accounts on its side, and dormant, suspended, or renamed accounts drop out. A large gap between row count and matched size usually means the list is stale, which is a signal to re-run the search rather than a reason to upload more rows.

Can I keep the agency and still build my own list?

Yes, and it is the arrangement I would recommend first. Hand them the file, keep the creative and testing work with them, and take the audience line off the retainer. A good agency will welcome a client who arrives with a cleaned list; the reaction to that proposal tells you a lot.

Is exporting account data from X allowed?

Yes, when it comes through sanctioned access. The question worth asking of any vendor is not whether the export works but where the underlying profile data came from, because that is the part that determines your exposure rather than theirs. Circleboom appears on X's Enterprise developer directory, which is a checkable fact rather than a marketing claim.

How often should I rebuild the list?

Stop guessing and measure it once. Keep every export you run, dated, and when you build the next one, count how many handles from the previous file have gone missing. That number is specific to your niche, and a fast-moving category will not behave like a slow one.


Arif Akdogan
Arif Akdogan

Passionate digital marketer helping grow through innovative strategies, data-driven insights, and creative content. [email protected]