Ads and Commerce

Product set optimization

Updated: Aug 5, 2026
Copy for LLM
Ads in WhatsApp Status are available via the Marketing API. Learn more about ads in WhatsApp Status.
Availability varies by feature:
  • Product set optimization — Generally Available (all RMN-tagged accounts, no allowlisting required).
  • Budget Splits — Beta (limited access; confirm with your Meta sales representative that your business has been granted access to begin onboarding).

Overview

Product set optimization is an enhancement for existing Advantage+ catalog and static ads that gives Retail Media Networks more control to fine-tune performance for specific brands and product groups within their catalog.
Rather than optimizing across an entire catalog, product set optimization lets Retail Media Networks target specific product sets and pool smaller budgets for increased liquidity and performance.
Product set optimization is compatible with Meta’s omnichannel optimization, a key driver of value for Retail Media Networks to drive in-store and online sales using one campaign.
Key Features:
  • Promoted products optimization — Focus ad delivery on specific brands’ products to maximize brand-level performance and deliver measurable, incremental sales. See Promoted products optimization.
  • Budget splits — Allocate individual budgets to each brand within a multi-brand product set. Ads showcase a mix of brands and automatically distribute spend based on each brand’s assigned budget. See Budget splits.

Prerequisites

These prerequisites apply to both promoted products optimization and budget splits.
Ensure you have the following ready before beginning integration:
  • Business Manager ID
  • App ID
  • Ad Account ID
  • Catalog ID

Catalog health

To ensure optimal setup, your catalog match rates, which reflect the correspondence between website events and catalog products, should ideally be above 90%, with 70% as the minimum accepted rate.

Budget splits filters (for multi-brand use cases)

Budget splits in multi-brand ads enables each brand to showcase their products, while respecting and allocating individual budgets for each brand. In order to create budget splits, make sure your catalog has at least one of the following catalog attribute filters that can be used to distinguish between brands:
  • vendor_id
  • custom_label_0
  • custom_label_1
  • custom_label_2
  • custom_label_3
  • custom_label_4
  • brand
See Supported Fields for more information. See Budgets for more information on budget types and spending behavior.

Meta developer app

Make sure you have a Meta app linked to your Business Manager. See Add an app to your business portfolio in Meta Business Suite for more information.

Permissions

Your developer app should have the following permissions in advanced access and should be live and not in development mode:
  • ads_management
  • ads_read
  • business_management
  • catalog_management

Access tokens

To make Marketing API calls, you need an access token. For product set optimization, use a system user access token, which does not expire and is ideal for server-to-server integrations.
Ensure your system user has access to the following assets:
  • Ad account — containing the product set optimization ad campaigns
  • Catalog — used for product set optimization
  • Facebook Page — used for product set optimization
  • Meta developer app — used to access the API
For detailed instructions on generating and managing access tokens, see:

Page shared with the Retail Media Network Business Manager

You must share the Page used in the product set optimization ad campaigns with the Retail Media Network. To do this, go to Settings > Accounts > Pages in Meta Business Suite, select your Page, and click Assign partner. Enter the partner’s Business Portfolio ID, enable the Ads permission, and click Assign.

Product sets

A product set is a subset of products within a product catalog, defined by filter rules. Product sets are used to target specific groups of products within Advantage+ catalog ads, Shops collections, and other catalog-powered surfaces.
OperationEndpointPayload example
Create a new product set
POST /{product-catalog-id}/product_sets
name=<NAME>&filter={'brand': {'i_contains': 'nike'}}
Read a product set
GET /{product-catalog-id}/product_sets
-
Update a product set
POST /{product-set-id}
name=<UPDATED_NAME>&filter={'product_type': {'contains': 'shirt'}}
Delete a product set
DELETE /{product-set-id}
-
See Filter Rules for more information.