TrackingDesk

advertising·analytics·attribution

Meta API v27 lets your iOS ad sets buy Android by default

Published 2026-11-05 ·primary source

What it means

From v27, a new Sales ad set that targets iOS or specific devices can also deliver to other devices and operating systems unless the request sets device to 0, and from about February 2027 that default applies on every API version. Any report that reads an ad set's results as the result for its device or OS is wrong for new ad sets from now on. Tools that create ad sets through the API inherit the new default without anyone choosing it, so check what yours sends.

An iOS-only Sales ad set used to mean iOS-only delivery. From Marketing API v27.0, released on 4 November, a new Sales ad set that targets an operating system or specific devices can also deliver to other devices and operating systems, unless the request that creates it says no. In about 90 days the same default applies on every API version, so staying on v26 only delays it.

The same release changes a second default. Meta may now add Product showcase, products from your catalog under the ad, to new ads whose creative says nothing about it.

What Meta changed

The release post lists both defaults under “Key dates and changes”:

  • Reach more people across other mobile devices. On new eligible Sales ad sets that target user_os or user_device, the setting targeting_automation.individual_setting.device now defaults to 1. Meta can then deliver “to people on other mobile devices and operating systems when that is likely to improve performance”. Existing ad sets do not change. Ad sets that use the Mobile App conversion location or a Special Ad Category are not eligible.
  • Product showcase. When a creative has no product_extensions setting, Meta may turn it on if it has “high confidence” that a product set in your catalog matches the ad. This applies to ads and creatives created on v27.0. Older versions do not change.

The release also stops accepting country and location_spec in a lookalike spec, ends the /{catalog-id}/batch endpoint on v27.0, and removes the total_video_consumption_rate video metric on every version. Graph API v21.0 is removed on 21 January 2027.

The detail in the reference page

The Advanced targeting reference, updated for v27, has a rule that the release post leaves out. If an update replaces an ad set’s whole targeting object and does not include device, the stored value is cleared. A tool that writes the full targeting object on every edit can delete your device: 0 without anyone deciding to. The page says a cleared field reads back as “never set” and that the default applies only at creation. It does not say how such an ad set then delivers. Read the field back after each edit and do not assume.

The Product showcase change also reverses an earlier rule. Meta’s product-extensions page, last updated in January 2025, says that since v20.0 every eligible ad creation request must state OPT_IN or OPT_OUT. From v27, a request that leaves the field out is accepted, and Meta can decide for you.

The read

An ad set’s device targeting no longer tells you where it delivered. Advertisers split ad sets by OS for good reasons: iOS and Android buyers can have different order values, and after Apple’s App Tracking Transparency changes, iOS results are often measured differently. Until now, the CPA of an iOS ad set was the CPA for iOS. On a new ad set created through v27, it is a blend of iOS and whatever Meta added, and the ad set name still says iOS.

The reports can check part of it, not all of it. Meta’s Insights API has a device_platform breakdown, which only says mobile or desktop, and an impression_device breakdown, which reports the device where the last ad was served. It has no operating-system breakdown. Since 6 August, impression_device can return nothing in a synchronous request for some accounts until an admin opts in, so a dashboard that does not show it may be missing data rather than showing zero. And the device that saw the ad is not always the one that bought: a person who saw the ad on an Android phone and bought on an iPhone is counted under impression_device as Android.

The default goes to whoever does not send the field. Nobody in Ads Manager accepts this change. Any tool, script or agency platform that creates Sales ad sets through the API and does not send device gets the expansion on v27 now, and on every version from about February. The same is true for Product showcase on v27: an ad creative made by a tool can show catalog products that nobody chose.

What to do

  1. Send device: 0 on every ad set that must stay on its devices, and send it again on every update that rewrites the whole targeting object. Read targeting{targeting_automation{individual_setting{device}}} back to check.
  2. Send enroll_status: OPT_OUT in the creative features spec on any ad that must show only the creative you made, for example a single-product ad or an ad with regulated claims.
  3. Add impression_device to the device-split ad sets you report on. Use an asynchronous report job if the synchronous request comes back empty.

Meta’s case for the default is that it improves performance. The only way to check that in your own account is to run the same ad set with the setting on and off and compare the results. That leaves the question of how much a lift result can be trusted. Ads that do nothing get a lift result half the time tests that on Google’s own certainty measure.

Sources

  • Meta for Developers blog, 'Introducing Graph API v27.0 and Marketing API v27.0' (4 November 2026): starting with v27.0, new eligible Sales ad sets that target specific mobile devices or operating systems have 'Reach more people across other mobile devices' turned on unless device is set to 0; all versions approximately 90 days later (February 2027), date to be confirmed. verified 2026-11-05
  • Same post: with the setting on, Meta can deliver ads to people on other mobile devices and operating systems when that is likely to improve performance. Existing ad sets are not changed, and the setting is unavailable for the Mobile App conversion location and Special Ad Categories. verified 2026-11-05
  • Same post: starting in v27.0, Meta may turn on Product showcase (product_extensions) when you create ads with creatives that have no Product showcase settings, only when it has high confidence that a specific product set in your catalog matches the ad. Opt out with degrees_of_freedom_spec.creative_features_spec.product_extensions.enroll_status = OPT_OUT. Versions before v27.0 do not change. Affected endpoints include POST /{ad-account-id}/ads and POST /{ad-account-id}/adcreatives. verified 2026-11-05
  • Same post: lookalike audiences can no longer be created with country or location_spec in lookalike_spec on v27.0+ (all versions about 90 days later); they inherit delivery locations from the ad sets that target them. The /{catalog-id}/batch endpoint no longer works on v27.0+; use /{catalog-id}/items_batch. The total_video_consumption_rate Page video insights metric stops returning data on all versions from early November 2026, with no direct replacement. verified 2026-11-05
  • Same post: Graph API v21.0 is removed on 21 January 2027 and v22.0 on 20 May 2027. verified 2026-11-05
  • Marketing API, Advanced targeting reference (updated 15 October 2026): beginning with v27.0, device defaults to 1 when you create an eligible ad set without setting it; the default applies only when targeting includes user_device or user_os and is not applied when you update an existing ad set. When an update replaces an ad set's complete targeting value and omits device, the stored device value is cleared. The device field returns 1 when opted in, 0 when opted out, and is omitted when the setting has never been set. verified 2026-11-05
  • Marketing API, Product Extensions for Advantage+ Creative (updated 14 January 2025): beginning with v20.0, all ad creation requests that are eligible for product extensions must specify enroll_status OPT_IN or OPT_OUT. Eligibility: a campaign with SALES or TRAFFIC objective, a single image or video ad format, and a catalog. verified 2026-11-05
  • Marketing API, Insights breakdowns reference (updated 15 October 2026): device_platform is 'the type of device, mobile or desktop'; impression_device is 'the device where your last ad was served to someone on Meta'. From 6 August 2026 impression_device may be unavailable for some ad accounts in synchronous requests; an admin can opt in via Ads Manager, or the data can be pulled through an asynchronous report job. The page lists no operating-system breakdown. verified 2026-11-05