v2

latestOpenAPI 3.1.02026-08-075421692.0 MB
Ad Accounts

Create a value rule set

Creates a value rule set on the ad account (Meta's POST /act_X/value_rule_set). Attach the returned id to an ad set with valueRuleSetId on POST /v1/ads/create or PUT /v1/ads/ad-sets/{adSetId}.

Rule order is semantic: rules are evaluated in array order and only the first matching rule adjusts the bid for an overlapping audience.

adjustValue is an unsigned magnitude in percent; the direction lives in adjustSign. INCREASE accepts 1-1000, DECREASE accepts 1-90. There is no signed field and 0 is out of range.

criteriaValueTypes is positionally paired with criteriaValues (same length, same order). Every type is the literal "NONE" except on LOCATION, which uses LOCATION_COUNTRY / LOCATION_REGION / LOCATION_CITY / LOCATION_COMSCORE_MARKET and may mix them within one criterion. Location values are Targeting-Search keys: a two-letter country code for LOCATION_COUNTRY, a numeric key for the rest.

LOCATION_DMA was replaced by LOCATION_COMSCORE_MARKET on 2026-06-22 and rules using DMAs are no longer active, so this API rejects it.

AUDIENCE_LABEL values (e.g. HIGH_VALUE) are applied to a Custom Audience in Ads Manager. There is no API to provision them, so label strings are passed through unvalidated and a typo produces a rule that never fires.

Ads Manager turns a rule set read-only (this API stays editable) when a rule uses more than 2 criteria, a custom age range, or the placements FB_MARKETPLACE, FB_SEARCH, FB_VIDEO or IG_EXPLORE.

Limits: 6 rule sets per ad account, 10 rules per set, 4 criteria per rule. The per-account cap is enforced by Meta, not here.

post/v1/ads/value-rule-sets

Request body

accountIdstring required

Zernio SocialAccount id (posting or ads variant) used to resolve the Meta token.

adAccountIdstring required

Meta ad account id (act_<n>).

namestring required

Response

Value rule set created

adAccountIdstring
valueRuleSetIdstring nullable

The new rule set id. Meta does not document the create response body, so this is null on the (unobserved) case where it omits the id.