OpenAI Ads has no device targeting: you can’t run desktop-only

Updated July 21, 2026

The short answer

No. OpenAI Ads supports geographic targeting only — country, region, and DMA — and there is no device field in campaign or ad group targeting. You cannot run desktop-only, exclude mobile, or set a device bid adjustment the way Google Ads allows. Device appears in one place: the insights API, which can segment performance by product, country, or device. So you can measure the desktop-vs-mobile split after the fact, but you can't restrict delivery to one of them — the reporting dimension has no matching targeting control.

The setting that isn’t there

A furniture store sells a $1,400 sit-stand desk — a considered purchase its buyers almost always finish on a laptop, not a phone. On Google Ads the move is one line: a mobile bid adjustment of −100%, and the campaign effectively goes desktop-only. In OpenAI Ads Manager, that setting doesn't exist. Ask the API to create a campaign restricted to desktop and it rejects the field:

targeting.device = "desktop"  →  400: unknown field — targeting supports "locations"
Trying to add a device restriction to an OpenAI Ads campaign

The only thing targeting accepts is geography. The campaign targeting docs are explicit: "OpenAI Ads supports country, region, and DMA targeting." No device, no bid adjustment, no exclusion — the desk store and a phone-case store get the same delivery surface.

What OpenAI Ads targets

Targeting on OpenAI Ads is one dimension deep. A campaign carries a targeting.locations.include array — country, region, or DMA — and that is the whole targeting surface. There are no keywords, no device settings, and no bid modifiers. You describe intent in the ad group's context_hints field and the model matches conversations; you fence delivery by geography and nothing else.

So "desktop-only" has nowhere to live. There is no field to set it in, and there is no device bid you could zero out to fake it.

Why device is a report, not a lever

The confusing part is that device is in the platform — just on the wrong side of it. The insights API segments performance by exactly three dimensions: product, country, and device. You can pull impressions, clicks, spend, and conversions split by desktop versus mobile and see precisely how each performs.

That is the asymmetry. OpenAI Ads lets you see the device, not choose it. Google exposes device as both a report and a control; OpenAI exposes it as a report only. The insights endpoint will happily tell you that mobile drove 40% of your desk campaign's spend and none of its conversions — and there is no setting that lets you do anything about it directly.

The reason is structural. Google's device adjustment rides on a per-device auction. OpenAI's match happens inside a model against conversation context, and the ad renders in the same ChatGPT surface whatever the device — so there's no device-level knob to expose in the first place. Same reason there's no search-terms report: the Google lever has no equivalent here.

What to do when you can’t exclude mobile

The device switch is missing, so work the inputs and the outcomes it can't reach:

  1. Read the device segment you can't target. Pull insights segmented by device on a schedule. It won't change delivery, but it sizes the problem: if mobile is 40% of spend and 0% of conversions, that's the number that justifies whatever you do next.
  2. Steer with context_hints, honestly weakly. A description skewed toward high-consideration, comparison-heavy intent is a soft proxy for desktop buyers, not a device filter — don't oversell it to yourself.
  3. Move the device logic post-click. You pay for the mobile impression regardless, so put the control where you actually have it: a responsive landing page, or routing phone visitors to a lighter capture flow. The click is priced; the conversion path is yours.
  4. Judge at the campaign level. If a device segment is pure waste, the only real lever is the campaign itself — pause, reframe the offer, or reallocate budget. There is no scalpel below that.

How the check actually ran

The rejection above is the OpenAI Ads API answering for itself: hand it a device restriction and it names the one field it accepts. On an account running on Adjar, targeting is plain-text config, so the absence is visible rather than surprising — a device = "desktop" line has no schema slot to sit in, and the reviewer sees geography is the only fence available:

[campaigns.targeting]
locations = ["US", "US-CA"]   # country / region / DMA — the only targeting there is
# device = "desktop"          # unsupported: OpenAI Ads has no device targeting
Targeting is geo-only — there is no device line to write

The report Adjar pulls back carries the device segment the platform will give you — the desktop-vs-mobile split per campaign — so the number you can't target on is at least a number you can see. You measure the split, act where the platform lets you, and stop pretending there's a switch that isn't there.

Frequently asked questions

Can I restrict OpenAI Ads to desktop only?

No. Campaign targeting on OpenAI Ads covers geography only — country, region, and DMA. There is no device field, so you can't limit delivery to desktop or any other device type. Ads serve across ChatGPT surfaces regardless of device.

Can I exclude mobile on OpenAI Ads?

No. There is no device exclusion and no device bid adjustment. The only targeting exclusions available are geographic. If mobile traffic converts poorly, you can see it in the insights report but you can't switch it off at the device level.

Does OpenAI Ads report performance by device?

Yes — but only as reporting, not targeting. The insights API can segment impressions, clicks, spend, conversions, and ROAS by device (one segment per request, alongside product and country). You can read the desktop-vs-mobile split; you just can't target on it.

How is this different from Google Ads device targeting?

Google Ads exposes device as a bid-adjustment lever — you can set mobile to −100% to effectively exclude it. OpenAI Ads has no device lever at all. Device is a report you read, not a setting you configure.

What can I do if I only want desktop buyers?

Steer intent with the ad group's context_hints, read the device segment to size the mobile share, and handle the rest post-click — a responsive landing page, or routing mobile visitors to a lighter flow. You pay for the mobile impression either way, so the control you have is over what happens after the click.

Put your ad account in config.

Adjar turns OpenAI Ads into version-controlled config your AI agents can read and tune.