curl -X POST https://api.ayrshare.com/api/ads/facebook/boost \
-H "Authorization: Bearer API_KEY" \
-H "Content-Type: application/json" \
-d '{
"postId": "1234567890",
"accountId": "1234567890",
"adName": "My Ad",
"status": "active",
"goal": "engagement",
"minAge": 18,
"maxAge": 65,
"locations": { "countries": ["US"] },
"budget": 100,
"bidAmount": 1,
"startDate": "2025-03-01T00:00:00Z",
"endDate": "2025-03-07T23:59:59Z",
"interests": [1234567890, 1234567891]
}'
curl -X POST https://api.ayrshare.com/api/ads/facebook/boost \
-H "Authorization: Bearer API_KEY" \
-H "Content-Type: application/json" \
-d '{
"postId": "1234567890",
"accountId": "1234567890",
"adName": "Nurse Practitioner Hiring",
"status": "active",
"goal": "traffic",
"callToAction": {
"type": "APPLY_NOW",
"link": "https://example.com/careers/nurse-practitioner",
"linkTitle": "Apply today"
},
"specialAdCategories": ["employment"],
"minAge": 18,
"maxAge": 65,
"locations": { "countries": ["US"] },
"budget": 100,
"bidAmount": 1,
"startDate": "2025-03-01T00:00:00Z",
"endDate": "2025-03-07T23:59:59Z"
}'
const API_KEY = "API_KEY";
fetch("https://api.ayrshare.com/api/ads/facebook/boost", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${API_KEY}`
},
body: JSON.stringify({
postId: "1234567890",
accountId: "1234567890",
adName: "My Ad",
status: "active",
goal: "engagement",
minAge: 18,
maxAge: 65,
locations: { countries: ["US"] },
budget: 100,
bidAmount: 1,
startDate: "2025-03-01T00:00:00Z",
endDate: "2025-03-07T23:59:59Z",
interests: [1234567890, 1234567891]
})
})
.then((res) => res.json())
.then((json) => console.log(json))
.catch(console.error);
import requests
API_KEY = "API_KEY"
url = "https://api.ayrshare.com/api/ads/facebook/boost"
payload = {
"postId": "1234567890",
"accountId": "1234567890",
"adName": "My Ad",
"status": "active",
"goal": "engagement",
"minAge": 18,
"maxAge": 65,
"locations": {"countries": ["US"]},
"budget": 100,
"bidAmount": 1,
"startDate": "2025-03-01T00:00:00Z",
"endDate": "2025-03-07T23:59:59Z",
"interests": [1234567890, 1234567891]
}
response = requests.post(url, headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}, json=payload)
print(response.json())
<?php
$API_KEY = "API_KEY";
$payload = [
"postId" => "1234567890",
"accountId" => "1234567890",
"adName" => "My Ad",
"status" => "active",
"goal" => "engagement",
"minAge" => 18,
"maxAge" => 65,
"locations" => ["countries" => ["US"]],
"budget" => 100,
"bidAmount" => 1,
"startDate" => "2025-03-01T00:00:00Z",
"endDate" => "2025-03-07T23:59:59Z",
"interests" => [1234567890, 1234567891]
];
$ch = curl_init("https://api.ayrshare.com/api/ads/facebook/boost");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type: application/json",
"Authorization: Bearer " . $API_KEY
]);
$response = curl_exec($ch);
$result = json_decode($response, true);
print_r($result);
curl_close($ch);
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string API_KEY = "API_KEY";
var payload = new
{
postId = "1234567890",
accountId = "1234567890",
adName = "My Ad",
status = "active",
goal = "engagement",
minAge = 18,
maxAge = 65,
locations = new { countries = new[] { "US" } },
budget = 100,
bidAmount = 1,
startDate = "2025-03-01T00:00:00Z",
endDate = "2025-03-07T23:59:59Z",
interests = new[] { 1234567890, 1234567891 }
};
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", API_KEY);
var content = new StringContent(
JsonSerializer.Serialize(payload),
Encoding.UTF8,
"application/json"
);
var response = await client.PostAsync("https://api.ayrshare.com/api/ads/facebook/boost", content);
var responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
apiKey := "API_KEY"
payload := map[string]interface{}{
"postId": "1234567890",
"accountId": "1234567890",
"adName": "My Ad",
"status": "active",
"goal": "engagement",
"minAge": 18,
"maxAge": 65,
"locations": map[string]interface{}{"countries": []string{"US"}},
"budget": 100,
"bidAmount": 1,
"startDate": "2025-03-01T00:00:00Z",
"endDate": "2025-03-07T23:59:59Z",
"interests": []int{1234567890, 1234567891},
}
jsonData, err := json.Marshal(payload)
if err != nil {
fmt.Println("Error marshaling JSON:", err)
return
}
req, err := http.NewRequest("POST", "https://api.ayrshare.com/api/ads/facebook/boost", bytes.NewBuffer(jsonData))
if err != nil {
fmt.Println("Error creating request:", err)
return
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer "+apiKey)
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error sending request:", err)
return
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println("Error reading response:", err)
return
}
fmt.Println(string(body))
}
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.databind.ObjectMapper;
public class BoostPost {
public static void main(String[] args) {
String API_KEY = "API_KEY";
String url = "https://api.ayrshare.com/api/ads/facebook/boost";
Map<String, Object> payload = new HashMap<>();
payload.put("postId", "1234567890");
payload.put("accountId", "1234567890");
payload.put("adName", "My Ad");
payload.put("status", "active");
payload.put("goal", "engagement");
payload.put("minAge", 18);
payload.put("maxAge", 65);
Map<String, Object> locations = new HashMap<>();
locations.put("countries", Arrays.asList("US"));
payload.put("locations", locations);
payload.put("budget", 100);
payload.put("bidAmount", 1);
payload.put("startDate", "2025-03-01T00:00:00Z");
payload.put("endDate", "2025-03-07T23:59:59Z");
payload.put("interests", Arrays.asList(1234567890, 1234567891));
try {
ObjectMapper objectMapper = new ObjectMapper();
String requestBody = objectMapper.writeValueAsString(payload);
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Content-Type", "application/json")
.header("Authorization", "Bearer " + API_KEY)
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
require 'net/http'
require 'uri'
require 'json'
API_KEY = "API_KEY"
uri = URI.parse("https://api.ayrshare.com/api/ads/facebook/boost")
payload = {
postId: "1234567890",
accountId: "1234567890",
adName: "My Ad",
status: "active",
goal: "engagement",
minAge: 18,
maxAge: 65,
locations: { countries: ["US"] },
budget: 100,
bidAmount: 1,
startDate: "2025-03-01T00:00:00Z",
endDate: "2025-03-07T23:59:59Z",
interests: [1234567890, 1234567891]
}
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.request_uri)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer #{API_KEY}"
request.body = payload.to_json
response = http.request(request)
puts response.body
{
"status": "success",
"adId": "120217670757750410",
"adName": "API Post - DE6gpw8kxlonHy2b7Lo - 2025-03-26T23:42:43",
"adStatus": "active",
"bidAmount": 10,
"budget": 100,
"endDate": "2026-03-28T22:30:00Z",
"goal": {
"title": "Get More Engagement",
"description": "This goal seeks to increase engagement...",
"type": "engagement"
},
"interests": [
"6003195554098"
],
"locations": { "countries": ["US"] },
"maxAge": 65,
"minAge": 18,
"postId": "DE6gpw8kxlonHy2b7Lo",
"startDate": "2026-03-26T22:30:00Z"
}
{
"status": "success",
"adId": "120217670757750411",
"adName": "Nurse Practitioner Hiring - DE6gpw8kxlonHy2b7Lo - 2025-03-26T23:42:43",
"adStatus": "active",
"bidAmount": 1,
"budget": 100,
"callToAction": {
"type": "APPLY_NOW",
"link": "https://example.com/careers/nurse-practitioner",
"linkTitle": "Apply today"
},
"endDate": "2025-03-07T23:59:59Z",
"goal": {
"title": "Drive Traffic",
"description": "Sends people from the boosted post to a destination off Facebook...",
"type": "traffic"
},
"locations": { "countries": ["US"] },
"maxAge": 65,
"minAge": 18,
"postId": "DE6gpw8kxlonHy2b7Lo",
"startDate": "2025-03-01T00:00:00Z"
}
{
"action": "boost post",
"status": "error",
"code": 369,
"message": "Unable to boost post. Please try again or contact us if the issue persists.",
"details": "The accountId likely does not exist. Please check the accountId and try again."
}
{
"action": "request",
"status": "error",
"code": 101,
"message": "Missing or incorrect parameters. Please verify with the docs. https://www.ayrshare.com/docs/apis",
"details": "Missing required fields: budget"
}
Facebook Ads
Sponsoriser une publication
Sponsorisez une publication en la soumettant à la plateforme publicitaire de Facebook
POST
/
ads
/
facebook
/
boost
curl -X POST https://api.ayrshare.com/api/ads/facebook/boost \
-H "Authorization: Bearer API_KEY" \
-H "Content-Type: application/json" \
-d '{
"postId": "1234567890",
"accountId": "1234567890",
"adName": "My Ad",
"status": "active",
"goal": "engagement",
"minAge": 18,
"maxAge": 65,
"locations": { "countries": ["US"] },
"budget": 100,
"bidAmount": 1,
"startDate": "2025-03-01T00:00:00Z",
"endDate": "2025-03-07T23:59:59Z",
"interests": [1234567890, 1234567891]
}'
curl -X POST https://api.ayrshare.com/api/ads/facebook/boost \
-H "Authorization: Bearer API_KEY" \
-H "Content-Type: application/json" \
-d '{
"postId": "1234567890",
"accountId": "1234567890",
"adName": "Nurse Practitioner Hiring",
"status": "active",
"goal": "traffic",
"callToAction": {
"type": "APPLY_NOW",
"link": "https://example.com/careers/nurse-practitioner",
"linkTitle": "Apply today"
},
"specialAdCategories": ["employment"],
"minAge": 18,
"maxAge": 65,
"locations": { "countries": ["US"] },
"budget": 100,
"bidAmount": 1,
"startDate": "2025-03-01T00:00:00Z",
"endDate": "2025-03-07T23:59:59Z"
}'
const API_KEY = "API_KEY";
fetch("https://api.ayrshare.com/api/ads/facebook/boost", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${API_KEY}`
},
body: JSON.stringify({
postId: "1234567890",
accountId: "1234567890",
adName: "My Ad",
status: "active",
goal: "engagement",
minAge: 18,
maxAge: 65,
locations: { countries: ["US"] },
budget: 100,
bidAmount: 1,
startDate: "2025-03-01T00:00:00Z",
endDate: "2025-03-07T23:59:59Z",
interests: [1234567890, 1234567891]
})
})
.then((res) => res.json())
.then((json) => console.log(json))
.catch(console.error);
import requests
API_KEY = "API_KEY"
url = "https://api.ayrshare.com/api/ads/facebook/boost"
payload = {
"postId": "1234567890",
"accountId": "1234567890",
"adName": "My Ad",
"status": "active",
"goal": "engagement",
"minAge": 18,
"maxAge": 65,
"locations": {"countries": ["US"]},
"budget": 100,
"bidAmount": 1,
"startDate": "2025-03-01T00:00:00Z",
"endDate": "2025-03-07T23:59:59Z",
"interests": [1234567890, 1234567891]
}
response = requests.post(url, headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}, json=payload)
print(response.json())
<?php
$API_KEY = "API_KEY";
$payload = [
"postId" => "1234567890",
"accountId" => "1234567890",
"adName" => "My Ad",
"status" => "active",
"goal" => "engagement",
"minAge" => 18,
"maxAge" => 65,
"locations" => ["countries" => ["US"]],
"budget" => 100,
"bidAmount" => 1,
"startDate" => "2025-03-01T00:00:00Z",
"endDate" => "2025-03-07T23:59:59Z",
"interests" => [1234567890, 1234567891]
];
$ch = curl_init("https://api.ayrshare.com/api/ads/facebook/boost");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type: application/json",
"Authorization: Bearer " . $API_KEY
]);
$response = curl_exec($ch);
$result = json_decode($response, true);
print_r($result);
curl_close($ch);
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string API_KEY = "API_KEY";
var payload = new
{
postId = "1234567890",
accountId = "1234567890",
adName = "My Ad",
status = "active",
goal = "engagement",
minAge = 18,
maxAge = 65,
locations = new { countries = new[] { "US" } },
budget = 100,
bidAmount = 1,
startDate = "2025-03-01T00:00:00Z",
endDate = "2025-03-07T23:59:59Z",
interests = new[] { 1234567890, 1234567891 }
};
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", API_KEY);
var content = new StringContent(
JsonSerializer.Serialize(payload),
Encoding.UTF8,
"application/json"
);
var response = await client.PostAsync("https://api.ayrshare.com/api/ads/facebook/boost", content);
var responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
apiKey := "API_KEY"
payload := map[string]interface{}{
"postId": "1234567890",
"accountId": "1234567890",
"adName": "My Ad",
"status": "active",
"goal": "engagement",
"minAge": 18,
"maxAge": 65,
"locations": map[string]interface{}{"countries": []string{"US"}},
"budget": 100,
"bidAmount": 1,
"startDate": "2025-03-01T00:00:00Z",
"endDate": "2025-03-07T23:59:59Z",
"interests": []int{1234567890, 1234567891},
}
jsonData, err := json.Marshal(payload)
if err != nil {
fmt.Println("Error marshaling JSON:", err)
return
}
req, err := http.NewRequest("POST", "https://api.ayrshare.com/api/ads/facebook/boost", bytes.NewBuffer(jsonData))
if err != nil {
fmt.Println("Error creating request:", err)
return
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer "+apiKey)
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error sending request:", err)
return
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println("Error reading response:", err)
return
}
fmt.Println(string(body))
}
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.databind.ObjectMapper;
public class BoostPost {
public static void main(String[] args) {
String API_KEY = "API_KEY";
String url = "https://api.ayrshare.com/api/ads/facebook/boost";
Map<String, Object> payload = new HashMap<>();
payload.put("postId", "1234567890");
payload.put("accountId", "1234567890");
payload.put("adName", "My Ad");
payload.put("status", "active");
payload.put("goal", "engagement");
payload.put("minAge", 18);
payload.put("maxAge", 65);
Map<String, Object> locations = new HashMap<>();
locations.put("countries", Arrays.asList("US"));
payload.put("locations", locations);
payload.put("budget", 100);
payload.put("bidAmount", 1);
payload.put("startDate", "2025-03-01T00:00:00Z");
payload.put("endDate", "2025-03-07T23:59:59Z");
payload.put("interests", Arrays.asList(1234567890, 1234567891));
try {
ObjectMapper objectMapper = new ObjectMapper();
String requestBody = objectMapper.writeValueAsString(payload);
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Content-Type", "application/json")
.header("Authorization", "Bearer " + API_KEY)
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
require 'net/http'
require 'uri'
require 'json'
API_KEY = "API_KEY"
uri = URI.parse("https://api.ayrshare.com/api/ads/facebook/boost")
payload = {
postId: "1234567890",
accountId: "1234567890",
adName: "My Ad",
status: "active",
goal: "engagement",
minAge: 18,
maxAge: 65,
locations: { countries: ["US"] },
budget: 100,
bidAmount: 1,
startDate: "2025-03-01T00:00:00Z",
endDate: "2025-03-07T23:59:59Z",
interests: [1234567890, 1234567891]
}
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.request_uri)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer #{API_KEY}"
request.body = payload.to_json
response = http.request(request)
puts response.body
{
"status": "success",
"adId": "120217670757750410",
"adName": "API Post - DE6gpw8kxlonHy2b7Lo - 2025-03-26T23:42:43",
"adStatus": "active",
"bidAmount": 10,
"budget": 100,
"endDate": "2026-03-28T22:30:00Z",
"goal": {
"title": "Get More Engagement",
"description": "This goal seeks to increase engagement...",
"type": "engagement"
},
"interests": [
"6003195554098"
],
"locations": { "countries": ["US"] },
"maxAge": 65,
"minAge": 18,
"postId": "DE6gpw8kxlonHy2b7Lo",
"startDate": "2026-03-26T22:30:00Z"
}
{
"status": "success",
"adId": "120217670757750411",
"adName": "Nurse Practitioner Hiring - DE6gpw8kxlonHy2b7Lo - 2025-03-26T23:42:43",
"adStatus": "active",
"bidAmount": 1,
"budget": 100,
"callToAction": {
"type": "APPLY_NOW",
"link": "https://example.com/careers/nurse-practitioner",
"linkTitle": "Apply today"
},
"endDate": "2025-03-07T23:59:59Z",
"goal": {
"title": "Drive Traffic",
"description": "Sends people from the boosted post to a destination off Facebook...",
"type": "traffic"
},
"locations": { "countries": ["US"] },
"maxAge": 65,
"minAge": 18,
"postId": "DE6gpw8kxlonHy2b7Lo",
"startDate": "2025-03-01T00:00:00Z"
}
{
"action": "boost post",
"status": "error",
"code": 369,
"message": "Unable to boost post. Please try again or contact us if the issue persists.",
"details": "The accountId likely does not exist. Please check the accountId and try again."
}
{
"action": "request",
"status": "error",
"code": 101,
"message": "Missing or incorrect parameters. Please verify with the docs. https://www.ayrshare.com/docs/apis",
"details": "Missing required fields: budget"
}
Sponsorisez une publication Facebook existante pour créer une annonce.
Cet endpoint vous permet de convertir vos publications organiques en annonces payantes avec des paramètres de ciblage, de budget et de planification personnalisés.
- Les montants du budget et de l’enchère doivent être spécifiés en USD avec jusqu’à deux décimales.
- L’annonce doit être diffusée pendant au moins 30 heures pour respecter les exigences de Facebook.
- Vous pouvez utiliser l’endpoint interests pour trouver les ID de centres d’intérêt pour le ciblage.
- Facebook peut prendre jusqu’à 24 heures pour examiner et approuver les publications sponsorisées.
- Si vous utilisez
fbPostIddirectement (au lieu depostIdAyrshare), assurez-vous qu’il s’agit d’un ID de publication Facebook valide. - Si un boost échoue après que Facebook a créé sa campagne (à l’étape de la création publicitaire, de l’ensemble de publicités ou de la publicité), nous essayons de supprimer cette campagne. Si la suppression échoue également, la campagne vide reste dans votre compte publicitaire. Vous pouvez la retrouver et la supprimer dans le Gestionnaire de publicités (Ads Manager).
Objectifs publicitaires
Chaque annonce doit avoir un objectif. L’objectif détermine la manière dont l’annonce sera optimisée pour l’affichage.engagement: Cet objectif vise à augmenter l’engagement tout en garantissant que l’annonce atteigne le nombre maximum d’utilisateurs uniques. Il équilibre la visibilité avec l’engagement, en montrant l’annonce à autant de personnes différentes que possible susceptibles d’interagir avec elle.interactions: Conçu pour stimuler les interactions, telles que les likes, les commentaires et les partages, sur l’annonce. Facebook priorise l’affichage de l’annonce aux utilisateurs les plus susceptibles d’interagir avec elle.awareness_views: Se concentre sur l’augmentation de la notoriété de la marque en maximisant le nombre de fois que l’annonce est affichée. Il priorise l’affichage de l’annonce autant de fois que possible dans le cadre du budget, quelle que soit la portée unique.awareness_audience: Vise à améliorer la notoriété de la marque en maximisant le nombre de personnes uniques qui voient l’annonce. Il garantit que l’annonce atteint autant d’utilisateurs différents que possible et maximise la taille de l’audience unique plutôt que de la montrer plusieurs fois à la même audience.traffic: Envoie les personnes hors de Facebook vers une destination de votre choix, comme votre site web, une page de destination ou une offre d’emploi. Facebook optimise pour les clics sur le lien plutôt que pour l’engagement sur la plateforme. C’est le seul objectif qui prend en charge un boutoncallToAction.
Paramètres d’en-tête
Paramètres du corps
string
requis
L’ID du compte publicitaire Facebook sur lequel sponsoriser la publication. L’ID du compte peut être récupéré depuis
l’endpoint des comptes publicitaires.
string
requis
Nom de votre annonce (apparaît dans le Facebook Ad Manager) au format
{adName} - {postId or fbPostId} - {current date}.number
requis
Montant maximum de l’enchère en USD. Le montant minimum de l’enchère est de 1,00 $.
number
requis
Budget quotidien en USD. Le budget minimum est de 1,00 $.
string
requis
L’ID de publication sociale Facebook de la publication à sponsoriser, qui vous permet
de créer une annonce à partir d’une publication créée directement sur Facebook. Il s’agit de l’ID de la publication sur
Facebook, pas d’Ayrshare. Requis si
postId n’est pas défini.string
défaut:"engagement"
requis
L’objectif de l’annonce. Valeurs :
engagement, interactions, awareness_views,
awareness_audience et traffic. Consultez les détails des objectifs
publicitaires ci-dessus pour plus d’informations.object
requis
Localisations cibles de l’annonce avec un objet de tableaux :
countries, regions, cities.Afficher child attributes
Afficher child attributes
array
Liste des codes de pays.
{
"countries": ["US", "CA"]
}
array
Les régions nécessitent la valeur
key de la région Facebook. Consultez l’endpoint regions pour plus d’informations.{
"regions": [{ "key": "3886" }]
}
array
Les villes nécessitent :
key (de Facebook), radius et distance_unit.
radius est la distance autour de la ville : 10 à 50 miles ou 17 à 80 kilomètres.
distance_unit est mile ou kilometer.
Consultez l’endpoint cities pour plus d’informations.{
"cities": [
{ "key": "2420605", "radius": 25, "distance_unit": "mile" }
]
}
string
requis
L’ID de publication Ayrshare de la publication à sponsoriser. Requis si
fbPostId n’est pas défini.string
défaut:"active"
requis
Le statut de l’annonce. Valeurs :
active et paused.Vous pouvez modifier ultérieurement le statut de l’annonce en utilisant l’endpoint update ad.boolean
défaut:false
Contrôle le partage du budget de l’ad set au niveau de la campagne par Meta.
Meta exige désormais ce champ sur chaque campagne créée sans budget au niveau de la campagne, donc Ayrshare l’envoie toujours — la valeur par défaut est
false pour la rétrocompatibilité.Définissez sur true pour permettre à Meta de partager jusqu’à ~20 % du budget d’un ad set avec d’autres ad sets de la même campagne afin d’optimiser les performances globales. Consultez la référence du groupe de campagnes publicitaires de Meta pour plus de détails.object
Ajoutez un bouton call-to-action, comme Apply Now ou Shop Now, à la publication sponsorisée. Le bouton ouvre l’URL que vous fournissez.
{
"callToAction": {
"type": "APPLY_NOW",
"link": "https://www.mysite.com/careers/social-media-manager",
"linkTitle": "Social Media Manager"
}
}
Afficher child attributes
Afficher child attributes
string
requis
Le libellé du bouton. Valeurs :
LEARN_MORE, APPLY_NOW, SIGN_UP, SHOP_NOW, BOOK_TRAVEL,
GET_QUOTE, CONTACT_US, DOWNLOAD et SUBSCRIBE.Insensible à la casse en entrée : apply_now, Apply_Now et APPLY_NOW sont donc tous acceptés.string
requis
La destination ouverte par le bouton. Doit être une URL absolue
http ou https. Les chemins
relatifs, les liens mailto: et les URL malformées sont rejetés.string
Titre optionnel affiché avec le bouton.
callToAction n’est pris en charge qu’avec l’objectif publicitaire traffic.
L’envoyer avec engagement, interactions, awareness_views ou awareness_audience renvoie un 400 avec code: 101 nommant les objectifs compatibles.
Auparavant, la valeur était acceptée avec n’importe quel objectif puis silencieusement ignorée, produisant une annonce sans bouton.callToAction.link fournit l’URL de destination. Lorsque Meta affiche le call to action sous forme de bouton sur la publication existante, les urlTags sont ajoutées au lien de ce bouton. goal: "traffic" sans callToAction est autorisé et crée une annonce de trafic sans bouton.Le callToAction que vous envoyez est renvoyé dans la réponse de sponsorisation avec type en majuscules — consultez l’exemple Post Boosted with a Call to Action — et est également renvoyé par la suite sur l’annonce via Get Boosted Ads.object
Suivez l’annonce à l’aide d’un Facebook Pixel.
Afficher child attributes
Afficher child attributes
number
requis
L’ID du Facebook Pixel pour suivre l’annonce.
{
"pixelId": 1234567890
}
array
Ajoutez des balises UTM à l’URL de l’annonce.Par exemple, si l’URL de destination est
{
"urlTags": ["utm_source=ayrshare", "utm_medium=social", "utm_campaign=ayrshare-social"]
}
https://www.mysite.com/my-post et que les balises d’URL ajoutées sont :utm_source=ayrshare, utm_medium=social et utm_campaign=ayrshare-social.L’URL de l’annonce sera :
https://www.mysite.com/my-post?utm_source=ayrshare&utm_medium=social&utm_campaign=ayrshare-social.array
Meta exige que les annonceurs des catégories publicitaires spéciales auto-identifient la catégorie de leur campagne.Si votre entreprise appartient à l’une de ces catégories, vous devez sélectionner la catégorie appropriée lors de la sponsorisation de votre publication.Les valeurs suivantes sont prises en charge :
housing: Annonces qui promeuvent ou renvoient directement à une opportunité de logement ou à un service connexe, y compris, mais sans s’y limiter, les annonces de vente ou de location d’une maison ou d’un appartement, l’assurance habitation, l’assurance hypothécaire, les prêts hypothécaires, les réparations domiciliaires et les services d’évaluation ou de prêt sur valeur nette du domicile.financial_product_services: Annonces qui promeuvent ou renvoient directement à une offre de produits et services financiers, y compris le crédit.financial_products_servicesest accepté comme graphie équivalente, etcreditest accepté comme l’ancien nom de cette catégorie chez Meta — les trois parviennent à Meta comme la même catégorie, envoyez donc celle que vous avez déjà.employment: Annonces qui promeuvent ou renvoient directement à une opportunité d’emploi, y compris, mais sans s’y limiter, les emplois à temps partiel ou à temps plein, les stages ou les programmes de certification professionnelle. Les annonces connexes appartenant à cette catégorie incluent des promotions pour des tableaux d’emploi ou des salons de l’emploi, des services d’agrégation ou des annonces détaillant les avantages qu’une entreprise peut offrir, indépendamment d’une offre d’emploi spécifique.none: La valeur par défaut. Déclare que la campagne n’appartient à aucune catégorie publicitaire spéciale. L’envoyer explicitement équivaut à omettre entièrementspecialAdCategories, et elle est acceptée pour qu’un appelant qui envoie toujours le champ puisse indiquer « aucune catégorie » sans traiter ce cas à part.issues_elections_politics: Annonces réalisées par, au nom de, ou concernant un candidat à une fonction publique, une personnalité politique, un parti politique ou plaidant pour l’issue d’une élection à une fonction publique. Cela inclut également les annonces concernant toute élection, référendum ou initiative de vote, y compris les campagnes électorales « Allez voter ». Les annonces réglementées comme publicité politique ou concernant des questions sociales dans tout lieu où l’annonce est diffusée. Si vous sélectionnez questions, élections ou politique, vous devez sélectionner le pays dans lequel vous souhaitez diffuser ces annonces. Vous devez être autorisé à diffuser des annonces concernant des questions sociales, des élections ou la politique dans le pays spécifié.
400 et code: 101 listant les valeurs acceptées. Auparavant, une valeur non reconnue était silencieusement abandonnée et la campagne était créée sans catégorie, si bien qu’une faute de frappe laissait une annonce réglementée diffusée sans catégorie déclarée.La liste des valeurs acceptées dans ce message d’erreur est rédigée dans la forme majuscule de Meta et nomme aussi les graphies alternatives ci-dessus ; elle se lit donc NONE, HOUSING, FINANCIAL_PRODUCTS_SERVICES, EMPLOYMENT, ISSUES_ELECTIONS_POLITICS, FINANCIAL_PRODUCT_SERVICES, CREDIT. Ce sont les cinq mêmes catégories que celles listées ici — FINANCIAL_PRODUCT_SERVICES et CREDIT sont les équivalents de financial_product_services, pas des catégories supplémentaires. Le même message est renvoyé par l’endpoint interests.Répéter une catégorie, ou envoyer deux graphies de la même catégorie comme ["credit", "financial_product_services"], est accepté et est réduit à une seule catégorie avant d’atteindre Meta. Une valeur vide est rejetée avec un 400 et code: 101.Pour trouver les ID de centres d’intérêt que Meta autorise pour l’une de ces catégories, transmettez la même valeur à l’endpoint interests.Meta a également besoin des pays dans lesquels une publicité de catégorie spéciale est diffusée. Ayrshare les déduit de locations : les pays que vous indiquez, plus le pays de chaque région et de chaque ville. Ainsi, un boost housing qui cible une ville du Royaume-Uni est configuré pour le Royaume-Uni, sans rien ajouter à votre requête. Sans locations, la publicité est diffusée aux États-Unis et la campagne est configurée pour les États-Unis.Meta impose aussi un rayon minimal autour de chaque ville pour ces catégories. Une ville du Royaume-Uni avec un rayon de 17 kilomètres a été refusée avec #2909039, qui exige au moins 25 kilomètres (15 miles). Utilisez donc 25 kilomètres ou plus.Meta exige des annonceurs qu’ils auto-identifient la catégorie de leur campagne.
Meta utilise des évaluateurs humains et l’apprentissage automatique pour identifier ce type d’annonces.
Si vous nous envoyez un
specialAdCategory incorrect, vos annonces risquent d’être mises en pause jusqu’à ce que la campagne soit ajustée.string
Date et heure de fin au format ISO 8601 (doit être au moins 30 heures après le début), par exemple
2025-03-01T00:00:00Z.Si non défini, l’annonce sera diffusée indéfiniment et aura une date de fin ongoing.object
Excluez des localisations à l’aide d’un objet avec des tableaux de
countries, regions et cities.Afficher child attributes
Afficher child attributes
array
Liste des codes de pays à exclure.
{
"countries": ["US", "CA"]
}
array
Les régions nécessitent la valeur
key de la région Facebook. Consultez l’endpoint regions pour plus d’informations.{
"regions": [{ "key": "3886" }]
}
array
Les villes nécessitent :
key (de Facebook), radius et distance_unit.
radius est la distance autour de la ville : 10 à 50 miles ou 17 à 80 kilomètres.
distance_unit est mile ou kilometer.
Consultez l’endpoint cities pour plus d’informations.{
"cities": [
{ "key": "2420605", "radius": 25, "distance_unit": "mile" }
]
}
string
défaut:"all"
Le genre de l’audience. Valeurs :
all, male, female.array
Les centres d’intérêt cibles de l’annonce sous forme d’un tableau d’ID de centres d’intérêt
Facebook.
number
défaut:65
Âge maximum pour le ciblage de l’annonce (par défaut : 65).
number
défaut:18
Âge minimum pour le ciblage de l’annonce (par défaut : 18).
string
Date et heure de début au format ISO 8601, par exemple
2025-03-01T00:00:00Z.Si non défini, l’annonce démarrera immédiatement.string
Le bénéficiaire de l’annonce pour la conformité au Digital Services Act (DSA) pour les pays de l’UE. Doit être défini
conjointement avec
dsaPayor si l’un ou l’autre est fourni. Veuillez consulter notre guide
DSA pour plus d’informations.string
Le payeur de l’annonce pour la conformité au Digital Services Act (DSA) pour les pays de l’UE. Doit être défini
conjointement avec
dsaBeneficiary si l’un ou l’autre est fourni.Budgets de campagne
Pour placer le budget sur la campagne plutôt que sur l’ensemble d’annonces, envoyezbudget.level: "campaign" dans la forme imbriquée du corps de la requête de boost. L’ensemble d’annonces n’a alors pas de budget propre. Cela fonctionne avec les budgets quotidiens comme avec les budgets totaux.
{
"accountId": "123456789",
"postId": "Ut1fWU6XkqkMayHGnJZ",
"goal": "traffic",
"budget": { "amount": 50, "type": "lifetime", "level": "campaign" },
"schedule": { "start": "2026-11-01T00:00:00Z", "end": "2026-11-08T00:00:00Z" },
"platformOptions": { "facebook": { "adName": "November boost", "bidAmount": 2 } }
}
budget.level:adSet(par défaut) oucampaign. Un budget de campagne ne peut pas être combiné avecadSetBudgetSharingEnabled. L’envoi des deux est rejeté avec une erreur400etcode: 101.- La réponse ajoute
budgetLevel: "campaign"pour un budget de campagne. Un budget d’ensemble d’annonces ne renvoie pasbudgetLevel: considérez donc un champ absent commeadSet. - Dans l’Historique,
budgetDailyaffiche le budget quotidien de la campagne pour une annonce avec un budget de campagne quotidien. Si plusieurs annonces partagent un même budget de campagne, chacune affiche l’intégralité du budget de la campagne, et non sa part. L’Historique n’affiche pas les budgets totaux, ni sur la campagne ni sur l’ensemble d’annonces. Une fois un budget de campagne total épuisé, chaque annonce de cette campagne affichedeliveryStatus: "COMPLETED"après la mise à jour nocturne suivante, y compris une annonce programmée ou en cours d’examen. Une annonce rejetée resteREJECTED.
Sponsoriser dans une campagne ou un ensemble d’annonces existant
Par défaut, chaque boost crée sa propre campagne, son propre ensemble d’annonces et sa propre annonce. Pour ajouter le boost à une campagne ou à un ensemble d’annonces que vous gérez déjà dans Meta, envoyez la forme imbriquée avecattachTo.
attachTo.campaignId: le boost crée un nouvel ensemble d’annonces et une nouvelle annonce dans cette campagne. Envoyezbudget,targetingetbidAmountcomme d’habitude : ils s’appliquent au nouvel ensemble d’annonces.attachTo.adSetId: le boost crée uniquement l’annonce, dans cet ensemble d’annonces. Envoyez égalementattachTo.campaignId, la campagne à laquelle appartient l’ensemble d’annonces. Omettezbudget,targetingetplatformOptions.facebook.bidAmount: l’ensemble d’annonces conserve les siens. L’envoi de l’un d’eux renvoie une erreur400aveccode: 101.
{
"accountId": "123456789",
"postId": "Ut1fWU6XkqkMayHGnJZ",
"goal": "engagement",
"attachTo": { "campaignId": "120210000000000001", "adSetId": "120210000000000002" },
"platformOptions": { "facebook": { "adName": "November boost" } }
}
- La campagne ou l’ensemble d’annonces doit se trouver dans le compte publicitaire indiqué par
accountIdet ne doit pas appartenir aux boosts d’un autre utilisateur. Sinon, la requête renvoie une erreur400. Un boost Facebook ne peut pas non plus être rattaché à une campagne créée par un boost Instagram, et inversement. attachTone peut pas être combiné avecbudget.level: "campaign",specialAdCategoriesouadSetBudgetSharingEnabled, qui sont définis sur une nouvelle campagne. Leur envoi renvoiecode: 101.- Mettre en pause ou activer le boost ne modifie que ce que le boost a créé : l’annonce, ainsi que l’ensemble d’annonces lorsque le boost l’a créé. La campagne ou l’ensemble d’annonces que vous avez indiqué dans
attachToconserve son propre statut. L’annonce n’est diffusée que tant que la campagne et l’ensemble d’annonces dont elle dépend sont actifs. Cela s’applique aussi lorsqu’Ayrshare met vos annonces en pause, par exemple lorsqu’un profil est supprimé. - Si le boost échoue, la campagne ou l’ensemble d’annonces indiqué dans
attachTon’est jamais supprimé. - Si l’ensemble d’annonces auquel vous vous rattachez se trouve dans une campagne qui porte le budget (un budget de campagne), l’Historique présente le boost comme toute annonce avec un budget de campagne :
budgetDailyaffiche l’intégralité du budget de la campagne, et non la part du boost, et une fois un budget de campagne total épuisé, chaque annonce suivie par Ayrshare dans cette campagne affichedeliveryStatus: "COMPLETED"après la mise à jour nocturne suivante, y compris une annonce programmée ou en cours d’examen. Une annonce rejetée resteREJECTED.
curl -X POST https://api.ayrshare.com/api/ads/facebook/boost \
-H "Authorization: Bearer API_KEY" \
-H "Content-Type: application/json" \
-d '{
"postId": "1234567890",
"accountId": "1234567890",
"adName": "My Ad",
"status": "active",
"goal": "engagement",
"minAge": 18,
"maxAge": 65,
"locations": { "countries": ["US"] },
"budget": 100,
"bidAmount": 1,
"startDate": "2025-03-01T00:00:00Z",
"endDate": "2025-03-07T23:59:59Z",
"interests": [1234567890, 1234567891]
}'
curl -X POST https://api.ayrshare.com/api/ads/facebook/boost \
-H "Authorization: Bearer API_KEY" \
-H "Content-Type: application/json" \
-d '{
"postId": "1234567890",
"accountId": "1234567890",
"adName": "Nurse Practitioner Hiring",
"status": "active",
"goal": "traffic",
"callToAction": {
"type": "APPLY_NOW",
"link": "https://example.com/careers/nurse-practitioner",
"linkTitle": "Apply today"
},
"specialAdCategories": ["employment"],
"minAge": 18,
"maxAge": 65,
"locations": { "countries": ["US"] },
"budget": 100,
"bidAmount": 1,
"startDate": "2025-03-01T00:00:00Z",
"endDate": "2025-03-07T23:59:59Z"
}'
const API_KEY = "API_KEY";
fetch("https://api.ayrshare.com/api/ads/facebook/boost", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${API_KEY}`
},
body: JSON.stringify({
postId: "1234567890",
accountId: "1234567890",
adName: "My Ad",
status: "active",
goal: "engagement",
minAge: 18,
maxAge: 65,
locations: { countries: ["US"] },
budget: 100,
bidAmount: 1,
startDate: "2025-03-01T00:00:00Z",
endDate: "2025-03-07T23:59:59Z",
interests: [1234567890, 1234567891]
})
})
.then((res) => res.json())
.then((json) => console.log(json))
.catch(console.error);
import requests
API_KEY = "API_KEY"
url = "https://api.ayrshare.com/api/ads/facebook/boost"
payload = {
"postId": "1234567890",
"accountId": "1234567890",
"adName": "My Ad",
"status": "active",
"goal": "engagement",
"minAge": 18,
"maxAge": 65,
"locations": {"countries": ["US"]},
"budget": 100,
"bidAmount": 1,
"startDate": "2025-03-01T00:00:00Z",
"endDate": "2025-03-07T23:59:59Z",
"interests": [1234567890, 1234567891]
}
response = requests.post(url, headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}, json=payload)
print(response.json())
<?php
$API_KEY = "API_KEY";
$payload = [
"postId" => "1234567890",
"accountId" => "1234567890",
"adName" => "My Ad",
"status" => "active",
"goal" => "engagement",
"minAge" => 18,
"maxAge" => 65,
"locations" => ["countries" => ["US"]],
"budget" => 100,
"bidAmount" => 1,
"startDate" => "2025-03-01T00:00:00Z",
"endDate" => "2025-03-07T23:59:59Z",
"interests" => [1234567890, 1234567891]
];
$ch = curl_init("https://api.ayrshare.com/api/ads/facebook/boost");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type: application/json",
"Authorization: Bearer " . $API_KEY
]);
$response = curl_exec($ch);
$result = json_decode($response, true);
print_r($result);
curl_close($ch);
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string API_KEY = "API_KEY";
var payload = new
{
postId = "1234567890",
accountId = "1234567890",
adName = "My Ad",
status = "active",
goal = "engagement",
minAge = 18,
maxAge = 65,
locations = new { countries = new[] { "US" } },
budget = 100,
bidAmount = 1,
startDate = "2025-03-01T00:00:00Z",
endDate = "2025-03-07T23:59:59Z",
interests = new[] { 1234567890, 1234567891 }
};
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", API_KEY);
var content = new StringContent(
JsonSerializer.Serialize(payload),
Encoding.UTF8,
"application/json"
);
var response = await client.PostAsync("https://api.ayrshare.com/api/ads/facebook/boost", content);
var responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
apiKey := "API_KEY"
payload := map[string]interface{}{
"postId": "1234567890",
"accountId": "1234567890",
"adName": "My Ad",
"status": "active",
"goal": "engagement",
"minAge": 18,
"maxAge": 65,
"locations": map[string]interface{}{"countries": []string{"US"}},
"budget": 100,
"bidAmount": 1,
"startDate": "2025-03-01T00:00:00Z",
"endDate": "2025-03-07T23:59:59Z",
"interests": []int{1234567890, 1234567891},
}
jsonData, err := json.Marshal(payload)
if err != nil {
fmt.Println("Error marshaling JSON:", err)
return
}
req, err := http.NewRequest("POST", "https://api.ayrshare.com/api/ads/facebook/boost", bytes.NewBuffer(jsonData))
if err != nil {
fmt.Println("Error creating request:", err)
return
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer "+apiKey)
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error sending request:", err)
return
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println("Error reading response:", err)
return
}
fmt.Println(string(body))
}
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.databind.ObjectMapper;
public class BoostPost {
public static void main(String[] args) {
String API_KEY = "API_KEY";
String url = "https://api.ayrshare.com/api/ads/facebook/boost";
Map<String, Object> payload = new HashMap<>();
payload.put("postId", "1234567890");
payload.put("accountId", "1234567890");
payload.put("adName", "My Ad");
payload.put("status", "active");
payload.put("goal", "engagement");
payload.put("minAge", 18);
payload.put("maxAge", 65);
Map<String, Object> locations = new HashMap<>();
locations.put("countries", Arrays.asList("US"));
payload.put("locations", locations);
payload.put("budget", 100);
payload.put("bidAmount", 1);
payload.put("startDate", "2025-03-01T00:00:00Z");
payload.put("endDate", "2025-03-07T23:59:59Z");
payload.put("interests", Arrays.asList(1234567890, 1234567891));
try {
ObjectMapper objectMapper = new ObjectMapper();
String requestBody = objectMapper.writeValueAsString(payload);
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Content-Type", "application/json")
.header("Authorization", "Bearer " + API_KEY)
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
require 'net/http'
require 'uri'
require 'json'
API_KEY = "API_KEY"
uri = URI.parse("https://api.ayrshare.com/api/ads/facebook/boost")
payload = {
postId: "1234567890",
accountId: "1234567890",
adName: "My Ad",
status: "active",
goal: "engagement",
minAge: 18,
maxAge: 65,
locations: { countries: ["US"] },
budget: 100,
bidAmount: 1,
startDate: "2025-03-01T00:00:00Z",
endDate: "2025-03-07T23:59:59Z",
interests: [1234567890, 1234567891]
}
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.request_uri)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer #{API_KEY}"
request.body = payload.to_json
response = http.request(request)
puts response.body
{
"status": "success",
"adId": "120217670757750410",
"adName": "API Post - DE6gpw8kxlonHy2b7Lo - 2025-03-26T23:42:43",
"adStatus": "active",
"bidAmount": 10,
"budget": 100,
"endDate": "2026-03-28T22:30:00Z",
"goal": {
"title": "Get More Engagement",
"description": "This goal seeks to increase engagement...",
"type": "engagement"
},
"interests": [
"6003195554098"
],
"locations": { "countries": ["US"] },
"maxAge": 65,
"minAge": 18,
"postId": "DE6gpw8kxlonHy2b7Lo",
"startDate": "2026-03-26T22:30:00Z"
}
{
"status": "success",
"adId": "120217670757750411",
"adName": "Nurse Practitioner Hiring - DE6gpw8kxlonHy2b7Lo - 2025-03-26T23:42:43",
"adStatus": "active",
"bidAmount": 1,
"budget": 100,
"callToAction": {
"type": "APPLY_NOW",
"link": "https://example.com/careers/nurse-practitioner",
"linkTitle": "Apply today"
},
"endDate": "2025-03-07T23:59:59Z",
"goal": {
"title": "Drive Traffic",
"description": "Sends people from the boosted post to a destination off Facebook...",
"type": "traffic"
},
"locations": { "countries": ["US"] },
"maxAge": 65,
"minAge": 18,
"postId": "DE6gpw8kxlonHy2b7Lo",
"startDate": "2025-03-01T00:00:00Z"
}
{
"action": "boost post",
"status": "error",
"code": 369,
"message": "Unable to boost post. Please try again or contact us if the issue persists.",
"details": "The accountId likely does not exist. Please check the accountId and try again."
}
{
"action": "request",
"status": "error",
"code": 101,
"message": "Missing or incorrect parameters. Please verify with the docs. https://www.ayrshare.com/docs/apis",
"details": "Missing required fields: budget"
}