Threads went from a text app with no ads to a placement Meta switches on by default in every new campaign. Meta's own Threads ads page talks about reaching over 500 million people, and if you run Advantage+ placements your ads are probably already showing there, whether you planned creative for it or not.
I build the ad-operations tooling for an Austrian performance marketing agency, and Threads is the placement where we saw the most confusion this year: launches failing on an ID nobody could find, 9:16 videos cropped in odd places, lead campaigns that never delivered there. This guide covers what Threads ads actually are, what Meta requires, the specs that matter, the profile ID trap, and how to run Threads at the same volume as the rest of your Meta placements.
What are Threads ads?
Threads ads are Meta ads that appear in the Threads Feed, between organic posts, on mobile only. You do not create them in a separate tool: they are a placement inside a normal Meta campaign, next to Facebook Feed, Instagram Reels and the rest.
That has two consequences. First, everything you already know about Meta campaigns applies: the same objective, budget, audience and pixel decide delivery, and Threads results show up in Ads Manager's placement breakdown like any other surface. Second, Threads only gets the creative you give the whole ad set. If your ad set runs on automatic placements and you uploaded a single 9:16 video, Threads gets that 9:16 video, cropped to 4:5.
The Threads Feed ad looks like a post from your brand. There is no call-to-action button: tapping the headline or the media opens your destination, tapping the caption expands the post and its replies, and tapping the brand icon opens your profile. Video plays with sound off by default.
What do you need to run Threads ads?
These requirements come from Meta's Threads ads creation documentation and its Threads ads page for businesses, both read in November 2026.
| Requirement | Detail |
|---|---|
| Meta ad account | Threads ads are bought in Meta Ads Manager or the Marketing API, nowhere else |
| Instagram Feed placement | Must be selected in the same ad set; Threads Feed cannot run on its own |
| Objective | Awareness, Traffic, Engagement or Sales |
| Identity | Your Threads profile if the ad names one, otherwise your Instagram account, otherwise your Facebook Page |
| Threads profile in your Business portfolio | Instagram-linked Threads profiles created before 29 January 2026 were added automatically; newer ones must be added by hand |
| Devices | Mobile only |
The Instagram Feed rule is the one that surprises people on manual placements. Untick Instagram Feed and keep Threads Feed, and Meta rejects the ad set with a placement error. Meta documents this as a prerequisite: in API terms the ad set needs both instagram and threads in publisher_platforms, stream in instagram_positions, and threads_stream in threads_positions.
The objective list is the other trap. A Leads campaign with an instant form or an App promotion campaign will not deliver on Threads, even though the rest of the setup is identical. If Threads matters for a launch, pick one of the four supported objectives first.
Which formats and specs do Threads ads support?
Threads supports single image, single video and image carousel ads. The table below is Meta's spec as documented for the Marketing API in November 2026.
| Spec | Threads Feed rule | What to upload |
|---|---|---|
| Image aspect ratio | 1.91:1 to 9:16 accepted; taller than 4:5 is cropped and centred to 4:5 | 4:5 or 1:1 |
| Video aspect ratio | 1.91:1 to 9:16 accepted; taller than 4:5 is cropped to 4:5 | 4:5, keep text out of the top and bottom of a 9:16 |
| Carousel cards | Image cards only; anything other than 1:1 is cropped to 1:1 | 1:1 cards |
| Image width | At least 500 px | 1080 px wide as usual |
| Caption length | 1,000 characters maximum; over the limit the ad still runs on Instagram but not on Threads | 80 to 160 characters (Meta's recommendation) |
| Hashtags and URLs in the caption | Not supported | Keep links in the destination field |
| Call to action | No button on Threads; headline and media are the click | Write the headline as the action |
The caption rule deserves a second look because it fails silently. A long-form primary text that works well in Facebook Feed, say 1,200 characters with a story and a list, does not error. The ad launches, delivers on Facebook and Instagram, and quietly never appears on Threads. If you write long copy for Meta, keep a short variant for ad sets where Threads delivery matters.
The cropping rule is why a single 9:16 asset is a weak choice for Threads. A 9:16 video is cut to 4:5, which removes about 30 percent of the frame height, usually where the hook text and the logo sit in a Reels-first edit. One 4:5 asset next to the 9:16 fixes that, and with placement asset customization Meta serves each placement its own ratio from one ad. Our guide to Facebook ad placements explains how that rule set works.
Threads profile or Instagram identity?
Without a Threads profile on the ad, Meta runs it in the Threads Feed under your Instagram account. That works, but the ad then shows the Instagram identity, not a Threads profile people can follow. If your brand has a Threads profile, attach it.
Attaching it is where launches break. In the API the creative carries a Threads account ID next to the Page ID and Instagram account ID, and Meta shows that ID in no Ads Manager screen. The place most people look is Business settings, Accounts, Threads accounts, which lists the profile with an ID. That ID is a Business asset ID, and the ads API rejects it.
We tested both side by side in August 2026 on one of our own test accounts with a live Threads placement: the Business settings ID failed, the ID read from the linked Instagram account passed. The working IDs in our checks all started with 17841. Two error messages tell you which mistake you made:
| Error from Meta | What it means |
|---|---|
(#100) Param threads_user_id must be a valid Threads account id | The ID does not exist as a Threads account, usually a Business settings ID or a typo |
| Error subcode 4588023, worded as "the ad account has no access to this Threads account" | The ID is real but belongs to another brand, or to a Threads profile not linked to the Instagram identity of this ad |
Meta also pairs the identities strictly: the Threads profile must belong to the same Instagram account the ad runs as. A Threads ID from brand A with the Instagram account of brand B is rejected, which matters for agencies that switch identities between launches on one ad account.
How do you turn Threads ads on or off?
Threads is on by default. Meta switches the Threads option on when you create a campaign in Ads Manager, Advantage+ placements include the Threads Feed, and duplicating a campaign with Advantage+ placements keeps it on in the copy.
Controlling Threads delivery in Ads Manager
- 1
Keep Advantage+ placements
Threads Feed is included automatically. This is the right default for most accounts: Meta only spends there when it finds delivery it rates as efficient.
- 2
Switch to manual placements to exclude it
Open the ad set, choose Manual placements and untick Threads Feed. Nothing else changes.
- 3
Keep Instagram Feed when you include it
On manual placements, Threads Feed only works with Instagram Feed ticked in the same ad set.
- 4
Read the placement breakdown after a week
In Ads Manager, break results down by placement and compare Threads Feed cost per result with Instagram Feed before you decide to exclude it.
The honest answer to "should I run Threads?" is usually "leave it on and look at the numbers". Threads inventory is mobile only, text-first and still growing, so results vary a lot by vertical. Excluding it by reflex removes a placement that can be cheap for awareness and traffic, and keeping it on costs nothing extra by itself.
How do you launch Threads ads in bulk?
Running Threads at volume is mostly about the two rules above: the right identity on every ad, and a 4:5 asset for every concept. Done by hand in Ads Manager, the identity is one more field per ad, and the per-placement asset is one more rule per ad.
In uplads, the Threads profile is a setting per ad account, not per ad. You pick it once in the Ad Launcher under Manage ad profiles..., where uplads reads the Threads profile linked to the selected Instagram account from Meta, so nobody has to look up an ID. From then on every launch on that account attaches it to each ad creative automatically. The setup is described step by step in our help article on setting up Threads placements.
For creative, uplads groups the ratios of one concept into a single ad with placement rules. On an account with a Threads profile saved, Threads Feed gets the 4:5 asset, the same one Instagram Feed gets, so Meta does not have to crop a 9:16. When you edit an ad set's placements in uplads and tick Threads Feed, Instagram Feed is added automatically, because Meta rejects the ad set without it.
Threads, Instagram and Facebook from one upload
Upload each concept in 4:5 and 9:16 once. uplads builds one ad per concept with the right asset per placement and your Threads profile on every creative.
Common Threads ads problems
| Symptom | Likely cause | Fix |
|---|---|---|
| No Threads impressions in the placement breakdown | Objective is Leads or App promotion, Threads excluded on manual placements, or caption over 1,000 characters | Use Awareness, Traffic, Engagement or Sales; check placements; shorten the caption |
| Ad set rejected when ticking Threads | Instagram Feed not selected | Add Instagram Feed to the same ad set |
| Ad shows the Instagram name instead of the Threads profile | No Threads profile attached to the creative | Attach the Threads profile linked to that Instagram account |
Launch fails with threads_user_id error | ID taken from Business settings, or a typo | Use the ID read from the linked Instagram account |
| Hook text cut off on Threads | 9:16 asset cropped to 4:5 | Add a 4:5 version and use placement asset customization |
Is Threads worth it for your ads?
Treat Threads as an extension of Instagram, not as a new channel to plan from scratch. The audience, pixel and creative are shared, and the delivery system decides how much goes there. What you control is whether the creative survives the placement: a 4:5 asset, a caption under 1,000 characters, a headline that works without a button, and the right identity.
Give it two to four weeks on Advantage+ placements, then compare Threads Feed with Instagram Feed in the placement breakdown on the metric your campaign is optimised for. If it is clearly worse after real spend, exclude it on that account. If it is in line, you just got extra reach for the creative you already made.
