Call Ads from Marketing API from Meta

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

Ad Creation Overview

To create and publish an ad you will:

  1. Create an ad campaign
  2. Create an ad set that links your ads to your ad campaign
  3. Create an ad creative for the call ad
  4. Create an ad by linking your ad creative to your ad set
  5. Publish your ad to Facebook and Instagram

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 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/v20.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/v20.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, text0nly, 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/v20.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/v20.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.