Call Ads

This guide explains how to create and publish call ads using the Marketing API from Meta.

Before You Start

This guide assumes you have:

To make successful calls to all endpoints in this guide, you will need:

  • A Page access token requested by a person who can perform the ADVERTIZE task on the Page
  • The following permissions must be granted a person using your app:
    • ads_management
    • pages_manage_ads
    • pages_read_engagement
    • pages_show_list

Recommendations

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.

Limitations

  • The target audience must be 18 years old or older
  • The phone number included in Call to Action must be from the same country as the target audience

Step 1: Create a Campaign

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

Example Request

Formatted for readability. Replace bold, italics values, such as ad_account_id, with your values.
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"
}

Step 2: Create an Ad Set

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 ads
  • targeting

Example Request

Formatted for readability. Replace bold, italics values, such as ad_account_id, with your values.
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"
}

Step 3: Create Ad Creative

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

Image Ad Example Request

Formatted for readability. Replace bold, italics values, such as page_access_token, with your values.
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"
}

Step 4: Create the Ad

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:

  • adset_id (from Step 2)
  • creative_id (from Step 3)
  • name
  • status

Ad with Creative Example Request

Formatted for readability. Replace bold, italics values, such as ad_account_id, with your values.
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"
}

Next Steps

Visit the Get Started guide to learn how submit your ad for review.