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
Beitrag bewerben
Bewerben Sie einen Beitrag, indem Sie ihn an die Werbeplattform von Facebook übermitteln
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"
}
Bewerben Sie einen bestehenden Facebook-Beitrag, um eine Anzeige zu erstellen.
Dieser Endpunkt ermöglicht es Ihnen, Ihre organischen Beiträge mit benutzerdefinierten Targeting-, Budget- und Zeitplanparametern in bezahlte Anzeigen umzuwandeln.
- Budget- und Gebotsbeträge müssen in USD mit bis zu zwei Dezimalstellen angegeben werden.
- Die Anzeige muss mindestens 30 Stunden laufen, um die Facebook-Anforderung zu erfüllen.
- Sie können den Interessen-Endpunkt verwenden, um Interessen-IDs für das Targeting zu finden.
- Facebook kann bis zu 24 Stunden benötigen, um beworbene Beiträge zu prüfen und freizugeben.
- Wenn Sie
fbPostIddirekt verwenden (anstelle der Ayrshare-postId), stellen Sie sicher, dass es sich um eine gültige Facebook-Post-ID handelt. - Wenn ein Boost fehlschlägt, nachdem Facebook die zugehörige Kampagne erstellt hat (beim Creative-, Anzeigengruppen- oder Anzeigenschritt), versuchen wir, diese Kampagne zu löschen. Schlägt auch das Löschen fehl, bleibt die leere Kampagne in Ihrem Werbekonto. Sie können sie im Ads Manager finden und löschen.
Anzeigenziele
Jede Anzeige muss ein Ziel haben. Das Ziel bestimmt, wie die Anzeige für die Anzeige optimiert wird.engagement: Dieses Ziel zielt darauf ab, die Interaktion zu steigern und gleichzeitig sicherzustellen, dass die Anzeige die maximale Anzahl eindeutiger Nutzer erreicht. Es schafft ein Gleichgewicht zwischen Sichtbarkeit und Interaktion, indem die Anzeige möglichst vielen unterschiedlichen Personen gezeigt wird, die mit ihr interagieren könnten.interactions: Darauf ausgelegt, Interaktionen wie Likes, Kommentare und Shares mit der Anzeige zu steigern. Facebook priorisiert die Anzeige gegenüber Nutzern, die am ehesten mit ihr interagieren.awareness_views: Konzentriert sich auf die Steigerung der Markenbekanntheit, indem die Anzahl der Anzeigen-Einblendungen maximiert wird. Es priorisiert, die Anzeige innerhalb des Budgets so oft wie möglich zu zeigen, unabhängig von der eindeutigen Reichweite.awareness_audience: Zielt darauf ab, die Markenbekanntheit zu steigern, indem die Anzahl der eindeutigen Personen maximiert wird, die die Anzeige sehen. Es stellt sicher, dass die Anzeige möglichst viele verschiedene Nutzer erreicht und die eindeutige Zielgruppengröße maximiert, anstatt sie mehrfach derselben Zielgruppe zu zeigen.traffic: Leitet Personen von Facebook zu einem Ziel Ihrer Wahl weiter, etwa Ihrer Website, einer Landingpage oder einer Stellenausschreibung. Facebook optimiert auf Link-Klicks statt auf Interaktion auf der Plattform. Dies ist das einzige Ziel, das einencallToAction-Button unterstützt.
Header-Parameter
Body-Parameter
string
erforderlich
Die ID des Facebook-Werbekontos, auf dem der Beitrag beworben werden soll. Die Konto-ID kann über den
Werbekonten-Endpunkt abgerufen werden.
string
erforderlich
Name für Ihre Anzeige (wird im Facebook Ad Manager angezeigt) im Format
{adName} - {postId oder fbPostId} - {aktuelles Datum}.number
erforderlich
Maximaler Gebotsbetrag in USD. Der Mindestgebotsbetrag beträgt 1,00 $.
number
erforderlich
Tagesbudget in USD. Das Mindestbudget beträgt 1,00 $.
string
erforderlich
Die Facebook-Social-Post-ID des zu bewerbenden Beitrags, die es Ihnen ermöglicht,
eine Anzeige aus einem direkt auf Facebook erstellten Beitrag zu erstellen. Dies ist die ID des Beitrags auf
Facebook, nicht von Ayrshare. Erforderlich, wenn
postId nicht gesetzt ist.string
Standard:"engagement"
erforderlich
Das Ziel der Anzeige. Werte:
engagement, interactions, awareness_views,
awareness_audience und traffic. Weitere Informationen finden Sie oben in den Anzeigenziel-Details.object
erforderlich
Zielorte der Anzeige mit einem Objekt aus Arrays:
countries, regions, cities.Anzeigen Untergeordnete Attribute
Anzeigen Untergeordnete Attribute
array
Liste der Ländercodes.
{
"countries": ["US", "CA"]
}
array
Regionen erfordern den
key-Wert der Facebook-Region. Weitere Informationen finden Sie im Regionen-Endpunkt.{
"regions": [{ "key": "3886" }]
}
array
Städte erfordern:
key (von Facebook), radius und distance_unit.
radius ist die Entfernung um die Stadt: 10–50 Meilen oder 17–80 Kilometer.
distance_unit ist mile oder kilometer.
Weitere Informationen finden Sie im Städte-Endpunkt.{
"cities": [
{ "key": "2420605", "radius": 25, "distance_unit": "mile" }
]
}
string
erforderlich
Die Ayrshare-Post-ID des zu bewerbenden Beitrags. Erforderlich, wenn
fbPostId nicht gesetzt ist.string
Standard:"active"
erforderlich
Der Status der Anzeige. Werte:
active und paused.Sie können den Status der Anzeige später über den Anzeige aktualisieren-Endpunkt ändern.boolean
Standard:false
Steuert die Budget-Freigabe von Meta auf Kampagnenebene für Anzeigengruppen.
Meta verlangt dieses Wire-Feld jetzt in jeder Kampagne, die ohne Budget auf Kampagnenebene erstellt wird, weshalb Ayrshare es immer sendet – standardmäßig auf
false gesetzt, um die Abwärtskompatibilität zu wahren.Setzen Sie es auf true, damit Meta bis zu ~20 % des Budgets einer Anzeigengruppe an andere Anzeigengruppen derselben Kampagne verteilen kann, um die Gesamtperformance zu optimieren. Details finden Sie in der Referenz zu Anzeigenkampagnen-Gruppen von Meta.object
Fügen Sie dem beworbenen Beitrag einen Call-to-Action-Button hinzu, etwa Apply Now oder Shop Now. Der Button öffnet die von Ihnen angegebene URL.
{
"callToAction": {
"type": "APPLY_NOW",
"link": "https://www.mysite.com/careers/social-media-manager",
"linkTitle": "Social Media Manager"
}
}
Anzeigen Untergeordnete Attribute
Anzeigen Untergeordnete Attribute
string
erforderlich
Die Beschriftung des Buttons. Werte:
LEARN_MORE, APPLY_NOW, SIGN_UP, SHOP_NOW, BOOK_TRAVEL,
GET_QUOTE, CONTACT_US, DOWNLOAD und SUBSCRIBE.Die Eingabe ist unabhängig von Groß- und Kleinschreibung, sodass apply_now, Apply_Now und APPLY_NOW alle akzeptiert werden.string
erforderlich
Das Ziel, das der Button öffnet. Muss eine absolute
http- oder https-URL sein. Relative Pfade,
mailto:-Links und fehlerhafte URLs werden abgelehnt.string
Optionale Überschrift, die zusammen mit dem Button angezeigt wird.
callToAction wird nur mit dem Anzeigenziel traffic unterstützt.
Wird es mit engagement, interactions, awareness_views oder awareness_audience gesendet, wird ein 400 mit code: 101 zurückgegeben, der die kompatiblen Ziele benennt.
Zuvor wurde der Wert bei jedem Ziel akzeptiert und dann stillschweigend ignoriert, sodass eine Anzeige ohne Button entstand.callToAction.link liefert die Ziel-URL. Wenn Meta den Call to Action als Button auf dem bestehenden Beitrag darstellt, werden urlTags an diesen Button-Link angehängt. goal: "traffic" ohne callToAction ist zulässig und erstellt eine Traffic-Anzeige ohne Button.Das gesendete callToAction wird in der Boost-Antwort zurückgegeben, wobei type in Großbuchstaben geschrieben ist – siehe das Beispiel Post Boosted with a Call to Action – und wird anschließend auch von Beworbene Anzeigen abrufen mit der Anzeige zurückgegeben.object
Verfolgen Sie die Anzeige mit einem Facebook-Pixel.
Anzeigen Untergeordnete Attribute
Anzeigen Untergeordnete Attribute
number
erforderlich
Die ID des Facebook-Pixels zur Verfolgung der Anzeige.
{
"pixelId": 1234567890
}
array
Fügen Sie UTM-Tags zur Anzeigen-URL hinzu.Zum Beispiel, wenn die Link-URL
{
"urlTags": ["utm_source=ayrshare", "utm_medium=social", "utm_campaign=ayrshare-social"]
}
https://www.mysite.com/my-post lautet und die hinzugefügten URL-Tags:utm_source=ayrshare, utm_medium=social und utm_campaign=ayrshare-social sind.Die Anzeigen-URL lautet dann:
https://www.mysite.com/my-post?utm_source=ayrshare&utm_medium=social&utm_campaign=ayrshare-social.array
Meta verlangt von Werbetreibenden in speziellen Anzeigenkategorien, dass sie ihre Kampagnenkategorie selbst deklarieren.Wenn Ihr Unternehmen in eine dieser Kategorien fällt, müssen Sie beim Bewerben Ihres Beitrags die entsprechende Kategorie auswählen.Die folgenden Werte werden unterstützt:
housing: Anzeigen, die für eine Wohnmöglichkeit oder einen damit verbundenen Service werben oder direkt darauf verlinken, einschließlich, aber nicht beschränkt auf Inserate zum Verkauf oder zur Vermietung einer Wohnung oder eines Hauses, Wohngebäudeversicherungen, Hypothekenversicherungen, Hypothekendarlehen, Wohnungsreparaturen sowie Home-Equity- oder Wertermittlungsdienste.financial_product_services: Anzeigen, die für Finanzprodukte und -dienstleistungen werben oder direkt darauf verlinken, einschließlich Krediten.financial_products_serviceswird als gleichwertige Schreibweise akzeptiert, undcreditwird als Metas frühere Bezeichnung für diese Kategorie akzeptiert – alle drei erreichen Meta als dieselbe Kategorie, senden Sie also einfach die Schreibweise, die Sie bereits verwenden.employment: Anzeigen, die für eine Beschäftigungsmöglichkeit werben oder direkt darauf verlinken, einschließlich, aber nicht beschränkt auf Teil- oder Vollzeitjobs, Praktika oder berufliche Zertifizierungsprogramme. Verwandte Anzeigen, die in diese Kategorie fallen, umfassen Werbung für Jobbörsen oder Jobmessen, Aggregations- dienste oder Anzeigen, die Vorteile eines Unternehmens beschreiben, unabhängig von einem konkreten Stellenangebot.none: Der Standard. Deklariert, dass die Kampagne in keine spezielle Anzeigenkategorie fällt. Es explizit zu senden ist gleichbedeutend damit,specialAdCategoriesganz wegzulassen, und wird akzeptiert, damit ein Aufrufer, der das Feld immer sendet, „keine Kategorie“ angeben kann, ohne dafür eine Sonderbehandlung zu benötigen.issues_elections_politics: Anzeigen, die von, im Namen von oder über einen Kandidaten für ein öffentliches Amt, eine politische Persönlichkeit, eine politische Partei geschaltet werden oder für ein bestimmtes Wahlergebnis werben. Dazu gehören auch Anzeigen über Wahlen, Referenden oder Volksabstimmungen, einschließlich Kampagnen wie „Geh wählen“. Anzeigen, die als politische Werbung oder als Werbung zu gesellschaftlichen Themen an dem Ort reguliert sind, an dem die Anzeige geschaltet wird. Wenn Sie Themen, Wahlen oder Politik auswählen, müssen Sie das Land angeben, in dem Sie diese Anzeigen schalten möchten. Sie müssen berechtigt sein, Anzeigen zu gesellschaftlichen Themen, Wahlen oder Politik im angegebenen Land zu schalten.
400 und code: 101 abgelehnt, der die akzeptierten Werte auflistet. Zuvor wurde ein unbekannter Wert stillschweigend verworfen und die Kampagne ohne Kategorie erstellt – ein Tippfehler führte also dazu, dass eine regulierte Anzeige ohne deklarierte Kategorie lief.Die Liste der akzeptierten Werte in dieser Fehlermeldung ist in Metas Großschreibung verfasst und nennt auch die oben genannten alternativen Schreibweisen; sie lautet daher NONE, HOUSING, FINANCIAL_PRODUCTS_SERVICES, EMPLOYMENT, ISSUES_ELECTIONS_POLITICS, FINANCIAL_PRODUCT_SERVICES, CREDIT. Das sind dieselben fünf hier aufgeführten Kategorien – FINANCIAL_PRODUCT_SERVICES und CREDIT sind die Entsprechungen von financial_product_services, keine zusätzlichen Kategorien. Dieselbe Meldung wird vom Interessen-Endpunkt zurückgegeben.Eine Kategorie zu wiederholen oder zwei Schreibweisen derselben Kategorie zu senden, etwa ["credit", "financial_product_services"], wird akzeptiert und zu einer einzigen Kategorie zusammengefasst, bevor sie Meta erreicht. Ein leerer Wert wird mit einem 400 und code: 101 abgelehnt.Um Interessen-IDs zu finden, die Meta für eine dieser Kategorien zulässt, übergeben Sie denselben Wert an den Interessen-Endpunkt.Meta benötigt außerdem die Länder, in denen eine Anzeige einer speziellen Kategorie ausgeliefert wird. Ayrshare übernimmt sie aus locations: die von Ihnen angegebenen Länder sowie das Land jeder Region und jeder Stadt. Ein housing-Boost, der auf eine Stadt in Großbritannien abzielt, wird also für Großbritannien eingerichtet, ohne zusätzliche Angaben in Ihrer Anfrage. Ohne locations wird die Anzeige in den USA ausgeliefert, und die Kampagne wird für die USA eingerichtet.Meta legt für diese Kategorien außerdem einen Mindestradius um jede Stadt fest. Eine britische Stadt mit einem Radius von 17 Kilometern wurde mit #2909039 abgelehnt, was mindestens 25 Kilometer (15 Meilen) verlangt. Verwenden Sie daher 25 Kilometer oder mehr.Meta verlangt, dass Werbetreibende ihre Kampagnenkategorie selbst deklarieren.
Meta setzt menschliche Prüfer und maschinelles Lernen ein, um solche Anzeigen zu identifizieren.
Wenn Sie uns eine falsche
specialAdCategory senden, besteht das Risiko, dass Ihre Anzeigen pausiert werden, bis die Kampagne angepasst ist.string
Enddatum und -uhrzeit im ISO-8601-Format (muss mindestens 30 Stunden nach dem Start liegen), zum Beispiel
2025-03-01T00:00:00Z.Wenn nicht gesetzt, läuft die Anzeige unbegrenzt und hat ein Enddatum von ongoing.object
Schließen Sie Standorte mit einem Objekt aus, das Arrays von
countries, regions und cities enthält.Anzeigen Untergeordnete Attribute
Anzeigen Untergeordnete Attribute
array
Liste der auszuschließenden Ländercodes.
{
"countries": ["US", "CA"]
}
array
Regionen erfordern den
key-Wert der Facebook-Region. Weitere Informationen finden Sie im Regionen-Endpunkt.{
"regions": [{ "key": "3886" }]
}
array
Städte erfordern:
key (von Facebook), radius und distance_unit.
radius ist die Entfernung um die Stadt: 10–50 Meilen oder 17–80 Kilometer.
distance_unit ist mile oder kilometer.
Weitere Informationen finden Sie im Städte-Endpunkt.{
"cities": [
{ "key": "2420605", "radius": 25, "distance_unit": "mile" }
]
}
string
Standard:"all"
Das Geschlecht der Zielgruppe. Werte:
all, male, female.array
Die Ziel-Interessen der Anzeige als Array von Facebook-Interessen-IDs.
number
Standard:65
Maximales Alter für das Targeting der Anzeige (Standard: 65).
number
Standard:18
Mindestalter für das Targeting der Anzeige (Standard: 18).
string
Startdatum und -uhrzeit im ISO-8601-Format, zum Beispiel
2025-03-01T00:00:00Z.Wenn nicht gesetzt, startet die Anzeige sofort.string
Der Begünstigte der Anzeige für die Einhaltung des Digital Services Act (DSA) in EU-Ländern. Muss zusammen
mit
dsaPayor gesetzt werden, wenn einer der beiden angegeben wird. Weitere Informationen finden Sie in unserem DSA-Leitfaden.string
Der Zahler der Anzeige für die Einhaltung des Digital Services Act (DSA) in EU-Ländern. Muss zusammen
mit
dsaBeneficiary gesetzt werden, wenn einer der beiden angegeben wird.Kampagnenbudgets
Um das Budget auf der Kampagne statt auf der Anzeigengruppe zu halten, senden Siebudget.level: "campaign" in der verschachtelten Form. Die Anzeigengruppe hat dann kein eigenes Budget. Das funktioniert mit Tages- und Laufzeitbudgets.
{
"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(Standard) odercampaign. Ein Kampagnenbudget kann nicht mitadSetBudgetSharingEnabledkombiniert werden. Wenn Sie beides senden, wird die Anfrage mit einem400undcode: 101abgelehnt.- Die Antwort enthält bei einem Kampagnenbudget zusätzlich
budgetLevel: "campaign". Ein Anzeigengruppenbudget gibt keinbudgetLevelzurück, behandeln Sie ein fehlendes Feld also alsadSet. - Im Verlauf zeigt
budgetDailybei einer Anzeige mit Tages-Kampagnenbudget das Tagesbudget der Kampagne. Wenn sich mehrere Anzeigen ein Kampagnenbudget teilen, zeigt jede das gesamte Kampagnenbudget, nicht ihren Anteil. Der Verlauf zeigt keine Laufzeitbudgets an, weder auf der Kampagne noch auf der Anzeigengruppe. Sobald ein Laufzeit-Kampagnenbudget ausgegeben ist, zeigt jede Anzeige in dieser Kampagne nach der nächsten nächtlichen AktualisierungdeliveryStatus: "COMPLETED", auch eine Anzeige, die geplant ist oder sich in Prüfung befindet. Eine abgelehnte Anzeige bleibtREJECTED.
Zu einer bestehenden Kampagne oder Anzeigengruppe hinzufügen
Standardmäßig erstellt jeder Boost seine eigene Kampagne, Anzeigengruppe und Anzeige. Um den Boost zu einer Kampagne oder Anzeigengruppe hinzuzufügen, die Sie bereits in Meta betreiben, senden Sie die verschachtelte Form mitattachTo.
attachTo.campaignId: Der Boost erstellt eine neue Anzeigengruppe und Anzeige innerhalb dieser Kampagne. Senden Siebudget,targetingundbidAmountwie gewohnt: Sie gelten für die neue Anzeigengruppe.attachTo.adSetId: Der Boost erstellt nur die Anzeige, innerhalb dieser Anzeigengruppe. Senden Sie außerdemattachTo.campaignId, die Kampagne, zu der die Anzeigengruppe gehört. Lassen Siebudget,targetingundplatformOptions.facebook.bidAmountweg: Die Anzeigengruppe behält ihre eigenen Werte. Wenn Sie einen davon senden, wird ein400mitcode: 101zurückgegeben.
{
"accountId": "123456789",
"postId": "Ut1fWU6XkqkMayHGnJZ",
"goal": "engagement",
"attachTo": { "campaignId": "120210000000000001", "adSetId": "120210000000000002" },
"platformOptions": { "facebook": { "adName": "November boost" } }
}
- Die Kampagne oder Anzeigengruppe muss sich in dem durch
accountIdangegebenen Werbekonto befinden und darf nicht zu den Boosts eines anderen Benutzers gehören. Andernfalls gibt die Anfrage einen400zurück. Ein Facebook-Boost kann sich außerdem nicht an eine Kampagne anhängen, die ein Instagram-Boost erstellt hat, und umgekehrt. attachTokann nicht mitbudget.level: "campaign",specialAdCategoriesoderadSetBudgetSharingEnabledkombiniert werden, da diese für eine neue Kampagne gesetzt werden. Wenn Sie sie senden, wirdcode: 101zurückgegeben.- Das Pausieren oder Aktivieren des Boosts ändert nur, was der Boost erstellt hat: die Anzeige und die Anzeigengruppe, wenn der Boost sie erstellt hat. Die Kampagne oder Anzeigengruppe, die Sie in
attachToangegeben haben, behält ihren eigenen Status. Die Anzeige läuft nur, solange die übergeordnete Kampagne und Anzeigengruppe aktiv sind. Das gilt auch, wenn Ayrshare Ihre Anzeigen pausiert, zum Beispiel wenn ein Profil gelöscht wird. - Wenn der Boost fehlschlägt, wird die in
attachToangegebene Kampagne oder Anzeigengruppe nie gelöscht. - Wenn die Anzeigengruppe, an die Sie anhängen, in einer Kampagne liegt, die das Budget hält (ein Kampagnenbudget), meldet der Verlauf den Boost wie jede Anzeige mit Kampagnenbudget:
budgetDailyzeigt das gesamte Kampagnenbudget, nicht den Anteil des Boosts, und sobald ein Laufzeit-Kampagnenbudget ausgegeben ist, zeigt jede Anzeige, die Ayrshare in dieser Kampagne verfolgt, nach der nächsten nächtlichen AktualisierungdeliveryStatus: "COMPLETED", auch eine Anzeige, die geplant ist oder sich in Prüfung befindet. Eine abgelehnte Anzeige bleibtREJECTED.
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"
}