billing_event defines events you want to pay for such as impressions, clicks, or various actions. Billing depends on the size of your audience and your budget.
For example, to optimize for POST_ENGAGEMENT and pay per IMPRESSIONS:
curl -X POST \
-F 'name="My First Adset"' \
-F 'lifetime_budget=20000' \
-F 'start_time="2025-11-11T14:18:00-0800"' \
-F 'end_time="2025-11-21T14:18:00-0800"' \
-F 'campaign_id="<AD_CAMPAIGN_ID>"' \
-F 'bid_amount=500' \
-F 'billing_event="IMPRESSIONS"' \
-F 'optimization_goal="POST_ENGAGEMENT"' \
-F 'targeting={
"facebook_positions": [
"feed"
],
"geo_locations": {
"countries": [
"US"
],
"regions": [
{
"key": "4081"
}
],
"cities": [
{
"key": 777934,
"radius": 10,
"distance_unit": "mile"
}
]
},
"genders": [
1
],
"age_max": 24,
"age_min": 20,
"behaviors": [
{
"id": 6002714895372,
"name": "All travelers"
}
],
"life_events": [
{
"id": 6002714398172,
"name": "Newlywed (1 year)"
}
],
"publisher_platforms": [
"facebook"
],
"device_platforms": [
"desktop"
]
}' \
-F 'status="PAUSED"' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v24.0/act_<AD_ACCOUNT_ID>/adsets
Once you select optimization_goal, you may have one or more billing_event options. See Optimization Goal and Billing Events and CPA.
buying_type is the way in which the advertiser pays for their delivery, defined on the campaign level. Most of the time we just use AUCTION, but there are a few special cases where we either bill based off of prediction, known as RESERVED, or use a fixed price means of negotiating the price an advertiser will pay, known as FIXED_CPM. Campaigns with buying_type require ad sets with a billing_event defined.
Valid billing_events for each buying_type:
| AUCTION | RESERVED | FIXED_CPM | |
|---|---|---|---|
| ✓ | ✓ | ✓ |
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ |
For buying_type=AUCTION campaigns, with an optimization_goal set, we have restrictions on what billing_event you can choose for your ad set.
In the restrictions below, we assume you have an objective specified on the campaign level.
| `optimization_goal` | Valid ad set `billing_event` |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|