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
Impulsar publicación
Impulsa una publicación enviándola a la plataforma de anuncios 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"
}
Impulsa una publicación existente de Facebook para crear un anuncio.
Este endpoint te permite convertir tus publicaciones orgánicas en anuncios pagos con parámetros personalizados de segmentación, presupuesto y programación.
- Los montos de presupuesto y de puja deben especificarse en USD con hasta dos decimales.
- El anuncio debe ejecutarse durante al menos 30 horas para cumplir con el requisito de Facebook.
- Puedes usar el endpoint de intereses para encontrar los IDs de intereses para la segmentación.
- Facebook puede tardar hasta 24 horas en revisar y aprobar las publicaciones impulsadas.
- Si usas
fbPostIddirectamente (en lugar delpostIdde Ayrshare), asegúrate de que sea un ID de publicación de Facebook válido. - Si un impulso falla después de que Facebook haya creado su campaña (en el paso del creativo, del conjunto de anuncios o del anuncio), intentamos eliminar esa campaña. Si la eliminación también falla, la campaña vacía permanece en tu cuenta publicitaria. Puedes encontrarla y eliminarla en el Administrador de anuncios (Ads Manager).
Objetivos del anuncio
Cada anuncio debe tener un objetivo. El objetivo determina cómo se optimizará el anuncio para su visualización.engagement: Este objetivo busca aumentar la interacción, asegurando al mismo tiempo que el anuncio llegue al mayor número de usuarios únicos. Equilibra la visibilidad con la interacción, mostrando el anuncio a tantas personas diferentes como sea posible que puedan interactuar con él.interactions: Diseñado para aumentar interacciones, como me gusta, comentarios y compartidos, en el anuncio. Facebook prioriza mostrar el anuncio a los usuarios con mayor probabilidad de interactuar con él.awareness_views: Se enfoca en aumentar el reconocimiento de marca maximizando la cantidad de veces que se muestra el anuncio. Prioriza mostrar el anuncio tantas veces como sea posible dentro del presupuesto, independientemente del alcance único.awareness_audience: Busca aumentar el reconocimiento de marca maximizando la cantidad de personas únicas que ven el anuncio. Garantiza que el anuncio llegue a la mayor cantidad de usuarios diferentes posibles y maximiza el tamaño de la audiencia única en lugar de mostrarlo varias veces a la misma audiencia.traffic: Envía a las personas fuera de Facebook hacia un destino que tú eliges, como tu sitio web, una página de destino o una oferta de empleo. Facebook optimiza para clics en el enlace en lugar de la interacción dentro de la plataforma. Este es el único objetivo que admite un botón decallToAction.
Parámetros del encabezado
Parámetros del cuerpo
string
requerido
El ID de la cuenta publicitaria de Facebook en la que se impulsará la publicación. El ID de la cuenta puede recuperarse desde el
endpoint de cuentas publicitarias.
string
requerido
Nombre para tu anuncio (aparece en el Administrador de Anuncios de Facebook) con el formato
{adName} - {postId o fbPostId} - {fecha actual}.number
requerido
Monto máximo de puja en USD. El monto mínimo de puja es $1.00.
number
requerido
Presupuesto diario en USD. El presupuesto mínimo es $1.00.
string
requerido
El ID de publicación social de Facebook de la publicación a impulsar, que te permite
crear un anuncio a partir de una publicación creada directamente en Facebook. Este es el ID de la publicación en
Facebook, no de Ayrshare. Requerido si
postId no está establecido.string
predeterminado:"engagement"
requerido
El objetivo del anuncio. Valores:
engagement, interactions, awareness_views,
awareness_audience y traffic. Consulta los detalles de los objetivos del
anuncio arriba para más información.object
Ubicaciones objetivo del anuncio con un objeto de arreglos:
countries, regions, cities.
Un objeto que no indica ningún país, región ni ciudad, como {}, se rechaza con el código 101; omite locations para dirigir el anuncio a EE. UU.Mostrar atributos hijos
Mostrar atributos hijos
array
Lista de códigos de país.
{
"countries": ["US", "CA"]
}
array
Las regiones requieren el valor
key de la región de Facebook. Consulta el endpoint de regiones para más información.{
"regions": [{ "key": "3886" }]
}
array
Las ciudades requieren:
key (de Facebook), radius y distance_unit.
radius es la distancia alrededor de la ciudad: 10–50 millas o 17–80 kilómetros.
distance_unit es mile o kilometer.
Consulta el endpoint de ciudades para más información.{
"cities": [
{ "key": "2420605", "radius": 25, "distance_unit": "mile" }
]
}
string
requerido
El ID de publicación de Ayrshare de la publicación a impulsar. Requerido si
fbPostId no está establecido.string
predeterminado:"active"
requerido
El estado del anuncio. Valores:
active y paused.Más adelante puedes cambiar el estado del anuncio usando el endpoint de actualización de anuncio.boolean
predeterminado:false
Controla la compartición de presupuesto entre conjuntos de anuncios a nivel de campaña de Meta.
Meta ahora requiere este campo en cada campaña creada sin un presupuesto a nivel de campaña, por lo que Ayrshare siempre lo envía — con valor predeterminado
false por compatibilidad hacia atrás.Establécelo en true para permitir que Meta comparta hasta aproximadamente el 20% del presupuesto de un conjunto de anuncios entre otros conjuntos de anuncios de la misma campaña para optimizar el rendimiento general. Consulta la referencia del ad campaign group de Meta para más detalles.object
Agrega un botón de llamada a la acción, como Apply Now o Shop Now, a la publicación impulsada. El botón abre la URL que proporciones.
{
"callToAction": {
"type": "APPLY_NOW",
"link": "https://www.mysite.com/careers/social-media-manager",
"linkTitle": "Social Media Manager"
}
}
Mostrar atributos hijos
Mostrar atributos hijos
string
requerido
La etiqueta del botón. Valores:
LEARN_MORE, APPLY_NOW, SIGN_UP, SHOP_NOW, BOOK_TRAVEL,
GET_QUOTE, CONTACT_US, DOWNLOAD y SUBSCRIBE.No distingue mayúsculas de minúsculas en la entrada, por lo que apply_now, Apply_Now y APPLY_NOW se aceptan por igual.string
requerido
El destino que abre el botón. Debe ser una URL absoluta
http o https. Las rutas relativas,
los enlaces mailto: y las URL mal formadas se rechazan.string
Titular opcional que se muestra junto al botón.
callToAction solo se admite con el objetivo del anuncio traffic.
Enviarlo con engagement, interactions, awareness_views o awareness_audience devuelve un 400 con code: 101 que nombra los objetivos compatibles.
Anteriormente el valor se aceptaba con cualquier objetivo y luego se ignoraba silenciosamente, produciendo un anuncio sin botón.callToAction.link proporciona la URL de destino. Cuando Meta muestra la llamada a la acción como un botón en la publicación existente, las urlTags se añaden al enlace de ese botón. Se permite goal: "traffic" sin un callToAction, y crea un anuncio de tráfico sin botón.El callToAction que envías se devuelve en la respuesta del impulso con type en mayúsculas — consulta el ejemplo Post Boosted with a Call to Action — y después también se devuelve en el anuncio mediante Anuncios impulsados.object
Realiza el seguimiento del anuncio usando un Facebook Pixel.
Mostrar atributos hijos
Mostrar atributos hijos
number
requerido
El ID del Facebook Pixel para hacer seguimiento del anuncio.
{
"pixelId": 1234567890
}
array
Agrega etiquetas UTM a la URL del anuncio.Por ejemplo, si la URL de enlace es
{
"urlTags": ["utm_source=ayrshare", "utm_medium=social", "utm_campaign=ayrshare-social"]
}
https://www.mysite.com/my-post y las etiquetas de URL agregadas son:utm_source=ayrshare, utm_medium=social y utm_campaign=ayrshare-social.La URL del anuncio será:
https://www.mysite.com/my-post?utm_source=ayrshare&utm_medium=social&utm_campaign=ayrshare-social.array
Meta requiere que los anunciantes en categorías especiales de anuncios se auto-identifiquen con la categoría de su campaña.Si tu negocio está en una de estas categorías, debes seleccionar la categoría apropiada al impulsar tu publicación.Se admiten los siguientes valores:
housing: Anuncios que promuevan o enlacen directamente con una oportunidad de vivienda o servicio relacionado, incluyendo, entre otros, listados para la venta o alquiler de una casa o apartamento, seguros para propietarios de vivienda, seguros hipotecarios, préstamos hipotecarios, reparaciones de vivienda y servicios de valoración o crédito con garantía hipotecaria.financial_product_services: Anuncios que promuevan o enlacen directamente con una oferta de productos y servicios financieros, incluido el crédito.financial_products_servicesse acepta como grafía equivalente, ycreditse acepta como el nombre que Meta daba antes a esta categoría — los tres llegan a Meta como la misma categoría, así que envía el que ya tengas.employment: Anuncios que promuevan o enlacen directamente con una oportunidad de empleo, incluidos, entre otros, trabajos a tiempo parcial o completo, pasantías o programas de certificación profesional. Los anuncios relacionados que entran en esta categoría incluyen promociones de bolsas de empleo o ferias, servicios de agregación o anuncios que detallen los beneficios que una empresa puede ofrecer, independientemente de una oferta de trabajo específica.none: El valor predeterminado. Declara que la campaña no está en ninguna categoría especial de anuncios. Enviarlo explícitamente equivale a omitirspecialAdCategoriespor completo, y se acepta para que un cliente que siempre envía el campo pueda indicar “sin categoría” sin tratarlo como caso especial.issues_elections_politics: Anuncios realizados por, en nombre de, o sobre un candidato a un cargo público, una figura política, un partido político o que aboguen por el resultado de una elección a un cargo público. Esto también incluye anuncios sobre cualquier elección, referéndum o iniciativa electoral, incluidas las campañas electorales de “Sal a votar”. Anuncios regulados como publicidad política o sobre temas sociales en cualquier lugar donde se publique el anuncio. Si seleccionas temas, elecciones o política, debes seleccionar el país en el que deseas publicar estos anuncios. Se te exige estar autorizado para publicar anuncios sobre temas sociales, elecciones o política en el país especificado.
400 y code: 101 que enumera los valores aceptados. Anteriormente, un valor no reconocido se descartaba silenciosamente y la campaña se creaba sin categoría, por lo que un error tipográfico dejaba un anuncio regulado en circulación sin ninguna categoría declarada.La lista de valores aceptados en ese mensaje de error está escrita en la forma en mayúsculas de Meta y también nombra las grafías alternativas anteriores, por lo que se lee NONE, HOUSING, FINANCIAL_PRODUCTS_SERVICES, EMPLOYMENT, ISSUES_ELECTIONS_POLITICS, FINANCIAL_PRODUCT_SERVICES, CREDIT. Son las mismas cinco categorías listadas aquí — FINANCIAL_PRODUCT_SERVICES y CREDIT son los equivalentes de financial_product_services, no categorías adicionales. El endpoint de intereses devuelve el mismo mensaje.Repetir una categoría, o enviar dos grafías de la misma, como ["credit", "financial_product_services"], se acepta y se consolida en una sola categoría antes de llegar a Meta. Un valor vacío se rechaza con un 400 y code: 101.Para encontrar los IDs de intereses que Meta permite para una de estas categorías, pasa el mismo valor al endpoint de intereses.Meta también necesita los países en los que se publica un anuncio de categoría especial. Ayrshare los toma de locations: los países que indiques, más el país de cada región y ciudad. Así, un impulso housing que segmenta una ciudad del Reino Unido se configura para el Reino Unido, sin nada adicional en tu solicitud. Sin locations, el anuncio se publica en EE. UU. y la campaña se configura para EE. UU.Meta también establece un radio mínimo alrededor de cada ciudad para estas categorías. Una ciudad del Reino Unido con un radio de 17 kilómetros fue rechazada con #2909039, que exige al menos 25 kilómetros (15 millas), así que usa 25 kilómetros o más.Meta exige que los anunciantes hayan auto-identificado la categoría de su campaña.
Meta utiliza revisores humanos y aprendizaje automático para identificar este tipo de anuncios.
Si nos envías un
specialAdCategory incorrecto, existe el riesgo de que tus anuncios se pausen hasta que se ajuste la campaña.string
Fecha y hora de finalización en formato ISO 8601 (debe ser al menos 30 horas después del inicio), por ejemplo
2025-03-01T00:00:00Z.Si no se establece, el anuncio se ejecutará indefinidamente y tendrá fecha de finalización ongoing.object
Excluye ubicaciones usando un objeto con arreglos de
countries, regions y cities.Mostrar atributos hijos
Mostrar atributos hijos
array
Lista de códigos de país a excluir.
{
"countries": ["US", "CA"]
}
array
Las regiones requieren el valor
key de la región de Facebook. Consulta el endpoint de regiones para más información.{
"regions": [{ "key": "3886" }]
}
array
Las ciudades requieren:
key (de Facebook), radius y distance_unit.
radius es la distancia alrededor de la ciudad: 10–50 millas o 17–80 kilómetros.
distance_unit es mile o kilometer.
Consulta el endpoint de ciudades para más información.{
"cities": [
{ "key": "2420605", "radius": 25, "distance_unit": "mile" }
]
}
string
predeterminado:"all"
El género de la audiencia. Valores:
all, male, female.array
Los intereses objetivo del anuncio como un arreglo de IDs de
intereses de Facebook.
number
predeterminado:65
Edad máxima para la segmentación del anuncio (predeterminado: 65).
number
predeterminado:18
Edad mínima para la segmentación del anuncio (predeterminado: 18).
string
Fecha y hora de inicio en formato ISO 8601, por ejemplo
2025-03-01T00:00:00Z.Si no se establece, el anuncio comenzará inmediatamente.string
El beneficiario del anuncio para el cumplimiento de la Ley de Servicios Digitales (DSA) para países de la UE. Debe establecerse
junto con
dsaPayor si se proporciona alguno de los dos. Por favor, consulta nuestra guía sobre
DSA para más información.string
El pagador del anuncio para el cumplimiento de la Ley de Servicios Digitales (DSA) para países de la UE. Debe establecerse
junto con
dsaBeneficiary si se proporciona alguno de los dos.Presupuestos de campaña
Para que el presupuesto esté en la campaña en lugar del conjunto de anuncios, envíabudget.level: "campaign" en la forma anidada. El conjunto de anuncios queda entonces sin presupuesto propio. Funciona con presupuestos diarios y totales.
{
"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(el valor predeterminado) ocampaign. Un presupuesto de campaña no se puede combinar conadSetBudgetSharingEnabled. Enviar ambos se rechaza con un400ycode: 101.- La respuesta añade
budgetLevel: "campaign"para un presupuesto de campaña. Un presupuesto de conjunto de anuncios no devuelvebudgetLevel, así que trata la ausencia del campo comoadSet. - En Historial,
budgetDailymuestra el presupuesto diario de la campaña para un anuncio con presupuesto diario de campaña. Si varios anuncios comparten un mismo presupuesto de campaña, cada uno muestra el presupuesto completo de la campaña, no su parte. Historial no muestra los presupuestos totales, ni de la campaña ni del conjunto de anuncios. Una vez agotado un presupuesto total de campaña, cada anuncio de esa campaña muestradeliveryStatus: "COMPLETED"tras la siguiente actualización nocturna, incluido un anuncio programado o en revisión. Un anuncio rechazado se mantiene enREJECTED.
Impulsar en una campaña o un conjunto de anuncios existente
De forma predeterminada, cada impulso crea su propia campaña, su propio conjunto de anuncios y su propio anuncio. Para añadir el impulso a una campaña o a un conjunto de anuncios que ya gestionas en Meta, envía la forma anidada conattachTo.
attachTo.campaignId: el impulso crea un nuevo conjunto de anuncios y un anuncio dentro de esa campaña. Envíabudget,targetingybidAmountcomo de costumbre: se aplican al nuevo conjunto de anuncios.attachTo.adSetId: el impulso crea solo el anuncio, dentro de ese conjunto de anuncios. Envía tambiénattachTo.campaignId, la campaña a la que pertenece el conjunto de anuncios. Omitebudget,targetingyplatformOptions.facebook.bidAmount: el conjunto de anuncios conserva los suyos. Enviar cualquiera de ellos devuelve un400concode: 101.
{
"accountId": "123456789",
"postId": "Ut1fWU6XkqkMayHGnJZ",
"goal": "engagement",
"attachTo": { "campaignId": "120210000000000001", "adSetId": "120210000000000002" },
"platformOptions": { "facebook": { "adName": "November boost" } }
}
- La campaña o el conjunto de anuncios debe estar en la cuenta publicitaria indicada en
accountIdy no debe pertenecer a los impulsos de otro usuario. De lo contrario, la solicitud devuelve un400. Además, un impulso de Facebook no puede adjuntarse a una campaña creada por un impulso de Instagram, ni a la inversa. attachTono se puede combinar conbudget.level: "campaign",specialAdCategoriesniadSetBudgetSharingEnabled, que se establecen en una campaña nueva. Enviarlos devuelvecode: 101.- Pausar o activar el impulso cambia solo lo que el impulso creó: el anuncio, y el conjunto de anuncios cuando lo creó el impulso. La campaña o el conjunto de anuncios que indicaste en
attachToconserva su propio estado. El anuncio solo se publica mientras la campaña y el conjunto de anuncios que lo contienen estén activos. Esto también se aplica cuando Ayrshare pausa tus anuncios, por ejemplo, cuando se elimina un perfil. - Si el impulso falla, la campaña o el conjunto de anuncios indicado en
attachTonunca se elimina. - Si el conjunto de anuncios al que te adjuntas está en una campaña que tiene el presupuesto (un presupuesto de campaña), Historial informa del impulso como de cualquier anuncio con presupuesto de campaña:
budgetDailymuestra el presupuesto completo de la campaña, no la parte del impulso, y una vez agotado un presupuesto total de campaña, cada anuncio que Ayrshare registra en esa campaña muestradeliveryStatus: "COMPLETED"tras la siguiente actualización nocturna, incluido un anuncio programado o en revisión. Un anuncio rechazado se mantiene enREJECTED.
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"
}