This guide explains how to create and publish call ads using the Marketing API from Meta.
This guide assumes you have:
To make successful calls to all endpoints in this guide, you will need:
ADVERTIZE
task on the Pageads_management
pages_manage_ads
pages_read_engagement
pages_show_list
Be sure to set the open hours for you business in your Facebook Page Settings.
When testing an API call, you can include the access_token
parameter set to your access token. However, when making secure calls from your app, use the access token class.
To create your ad campaign send a POST
request to the act_ad_account_id/campaigns
endpoint where ad_account_id is the ID for your Meta ad account. Your request must include:
name
objective
– set to one of the following supported objectives:
OUTCOME_AWARENESS
OUTCOME_ENGAGEMENT
OUTCOME_LEADS
OUTCOME_SALES
OUTCOME_TRAFFIC
special_ad_categories
curl -X POST "https://graph.facebook.com/v21.0
/act_ad_account_id/campaigns" \
-H "Content-Type: application/json" \
-d '{
"name":"Call_ad_campaign_name",
"objective":"OUTCOME_TRAFFIC",
"special_ad_categories":["NONE"],
}'
On success your app receives a JSON response with the ID for your campaign.
{ "id": "campaign_id" }
To create an ad set, send a POST
request to the act_ad_account_id/adsets
endpoint where ad_account_id is the ID for your Meta ad account. Your request must include:
bid_amount
billing_event
set to IMPRESSIONS
campaign_id
daily_budget
destination_type
set to PHONE_CALL
name
optimization_goal
set to QUALITY_CALL
for call adstargeting
curl -X POST "https://graph.facebook.com/v21.0
/act_ad_account_id/adsets"
-H "Content-Type: application/json"
-d '{
"bid_amount":"Your_bid_amount",
"billing_event":"IMPRESSIONS",
"campaign_id":"Your_campaign_id",
"daily_budget":"Your_daily_budget",
"destination_type":"PHONE_CALL",
"name:"Your_call_adset_name",
"optimization_goal":"QUALITY_CALL",
"targeting":{
"geo_locations": { "countries":["US","CA"] },
"device_platforms": ["mobile"],
"publisher_platforms": ["facebook"]
}
}'
On success your app receives the following JSON response with the ID for the ad set.
{ "id": "adset_id" }
The ad creative allows you to add assets to your ads. Carousel, image, text-only, and video ads are supported.
To create an ad creative, send a POST
request to the /act_ad_account_id/adcreatives
endpoint where ad_account_id is the ID for your Meta ad account. Your request must include:
name
object_story_spec
object_story_spec
with a link_data
object that defines the call_to_action
with type
set to CALL_NOW
and value
as the phone number for your business
curl -X POST "https://graph.facebook.com/v21.0
/act_ad_account_id/adcreatives"
-H "Content-Type: application/json"
-d '{
"name":"Your_call_image_ad_name",
"object_story_spec":{
"page_id": "your_page_id",
"link_data": {
"picture": "Your_image_URL",
"link": "Your_business_page_URL",
"call_to_action": {
"type":"CALL_NOW",
"value":{ "link":"tel:+Your_business_phone_number_with_country_code" }
}
}
}
}'
On success your app receives the following JSON response with the ID for the ad creative.
{ "id": "ad_creative_id" }
To create the ad you need to associate the ad creative and the ad set. To create the ad, send a POST
request to the /act_ad_account_id/ads
endpoint where ad_account_id is the ID for your Meta ad account. Your request must included:
curl -X POST "https://graph.facebook.com/v21.0
/act_ad_account_id/ads"
-H "Content-Type: application/json"
-d '{
"adset_id": "Your_ad_set_id",
"creative": { "creative_id": "Your_ad_creative_id" },
"status": "PAUSED"
}'
On success your app receives the following JSON response with the ID for the ad.
{ "id": "ad_id" }
Visit the Get Started guide to learn how submit your ad for review.
Learn more about the Marketing API and additional options for call ads.