curl -X POST https://api.ayrshare.com/api/ads/instagram/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]
}'
const API_KEY = "API_KEY";
fetch("https://api.ayrshare.com/api/ads/instagram/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/instagram/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/instagram/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/instagram/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/instagram/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/instagram/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);
payload.put("locations", Map.of("countries", Arrays.asList("US")));
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/instagram/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",
"socialPostId": "1234567890",
"igPostId": "1234567890",
"platform": "instagram",
"startDate": "2026-03-26T22:30: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: accountId"
}
Instagram Ads
Impulsionar publicação
Impulsione uma publicação enviando-a para a plataforma de anúncios do Instagram
POST
/
ads
/
instagram
/
boost
curl -X POST https://api.ayrshare.com/api/ads/instagram/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]
}'
const API_KEY = "API_KEY";
fetch("https://api.ayrshare.com/api/ads/instagram/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/instagram/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/instagram/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/instagram/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/instagram/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/instagram/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);
payload.put("locations", Map.of("countries", Arrays.asList("US")));
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/instagram/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",
"socialPostId": "1234567890",
"igPostId": "1234567890",
"platform": "instagram",
"startDate": "2026-03-26T22:30: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: accountId"
}
Impulsione uma publicação existente do Instagram para criar um anúncio.
Este endpoint permite converter suas publicações orgânicas em anúncios pagos com parâmetros personalizados de segmentação, orçamento e agendamento.
O seletor
Substitua os IDs de exemplo pelos seus próprios. Defina
- Os valores de orçamento e lance devem ser especificados em USD com até duas casas decimais.
- O anúncio deve ser veiculado por pelo menos 30 horas para atender ao requisito do Instagram.
- Você pode usar o endpoint de interesses para encontrar IDs de interesses para segmentação.
- O Instagram pode levar até 24 horas para revisar e aprovar publicações impulsionadas.
- Se estiver usando
socialPostIddiretamente (em vez dopostIdda Ayrshare), certifique-se de que seja um ID de publicação válido do Instagram. - Se um impulsionamento falhar depois que o Facebook tiver criado a campanha (na etapa do criativo, do conjunto de anúncios ou do anúncio), tentamos excluir essa campanha. Se a exclusão também falhar, a campanha vazia permanece na sua conta de anúncios. Você pode encontrá-la e excluí-la no Gerenciador de Anúncios.
Objetivos do anúncio
Cada anúncio deve ter um objetivo. O objetivo determina como o anúncio será otimizado para exibição.engagement: Este objetivo busca aumentar o engajamento, garantindo ao mesmo tempo que o anúncio alcance o maior número possível de usuários únicos. Equilibra a visibilidade com o engajamento, exibindo o anúncio para o maior número possível de pessoas diferentes que possam interagir com ele.interactions: Projetado para impulsionar interações, como curtidas, comentários e compartilhamentos, no anúncio. O Instagram prioriza exibir o anúncio para usuários com maior probabilidade de interagir com ele.awareness_views: Foca em aumentar o reconhecimento da marca maximizando o número de vezes que o anúncio é exibido. Prioriza mostrar o anúncio o maior número de vezes possível dentro do orçamento, independentemente do alcance único.awareness_audience: Visa aumentar o reconhecimento da marca maximizando o número de pessoas únicas que veem o anúncio. Garante que o anúncio alcance o maior número possível de usuários diferentes e maximiza o tamanho da audiência única em vez de exibi-lo várias vezes para a mesma audiência.
Os anúncios do Instagram exigem uma conta Instagram Business conectada por meio do Facebook, uma Página do Facebook associada e a permissão
ads_management. Reconecte por meio do Facebook para conceder essa permissão. Contas conectadas com Instagram Login não podem usar esses endpoints de anúncios. O ID da mídia e o ID da conta do Instagram são resolvidos a partir da sua conta vinculada; não envie instagram_user_id.socialPostId também aceita o alias específico do Instagram igPostId. fbPostId se aplica apenas ao Facebook. Respostas bem-sucedidas incluem platform: "instagram", socialPostId e igPostId.
Parâmetros de cabeçalho
Parâmetros do corpo
string
Uma chave única e não vazia para esta solicitação de impulsionamento. Repita o mesmo payload com a mesma chave para evitar a criação de um anúncio duplicado. Reutilizar a chave com um payload ou plataforma diferente retorna HTTP 409. Uma solicitação ainda em andamento também retorna 409; uma reserva indisponível retorna 503 sem criar um anúncio.
boolean
padrão:false
Permite que a Meta compartilhe orçamento entre conjuntos de anúncios da campanha.
string
obrigatório
O ID da conta de anúncios do Instagram na qual impulsionar a publicação. O ID da conta pode ser obtido no
endpoint de contas de anúncios.
string
obrigatório
Nome do seu anúncio (aparece no Gerenciador de Anúncios do Instagram) com o formato
{adName} - {postId or socialPostId} - {current date}.number
obrigatório
Valor máximo do lance em USD, como um valor positivo com até duas casas decimais.
number
obrigatório
Orçamento diário em USD. Use um valor positivo com até duas casas decimais. A Meta pode impor mínimos adicionais para sua conta e objetivo.
string
O ID da publicação social do Instagram da publicação a ser impulsionada, que permite
criar um anúncio a partir de uma publicação criada diretamente no Instagram. Este é o ID da publicação no
Instagram, não da Ayrshare. Obrigatório se
postId não estiver definido.string
padrão:"engagement"
O objetivo do anúncio. Valores:
engagement, interactions, awareness_views e
awareness_audience. Consulte os detalhes dos objetivos de anúncio acima para
mais informações.object
Países de segmentação com
{"countries": ["US", "CA"]} usando códigos de países. Você também pode fornecer arrays de regions e cities; consulte regiões e cidades. Um objeto que não indica nenhum país, região ou cidade, como {}, é recusado com o código 101; omita locations para segmentar os EUA.string
O ID da publicação da Ayrshare da publicação a ser impulsionada. Obrigatório se
socialPostId não estiver definido.string
padrão:"active"
O status do anúncio. Valores:
active e paused.Você pode alterar o status do anúncio posteriormente usando o endpoint de atualização de anúncio.object
Acompanhe o anúncio usando um Meta Pixel.
Mostrar child attributes
Mostrar child attributes
number
obrigatório
O ID do Meta Pixel para rastrear o anúncio.
{
"pixelId": 1234567890
}
array
Adicione tags UTM à URL do anúncio.Por exemplo, se a URL de link for
{
"urlTags": ["utm_source=ayrshare", "utm_medium=social", "utm_campaign=ayrshare-social"]
}
https://www.mysite.com/my-post e as tags de URL adicionadas forem:utm_source=ayrshare, utm_medium=social e utm_campaign=ayrshare-social.A URL do anúncio será:
https://www.mysite.com/my-post?utm_source=ayrshare&utm_medium=social&utm_campaign=ayrshare-social.array
A Meta exige que anunciantes em categorias especiais de anúncios identifiquem por conta própria a categoria de sua campanha.Se sua empresa está em uma dessas categorias, você deve selecionar a categoria apropriada ao impulsionar sua publicação.Os seguintes valores são suportados:
housing: Anúncios que promovem ou vinculam diretamente a uma oportunidade de moradia ou serviço relacionado, incluindo, mas não se limitando a, anúncios de venda ou aluguel de uma casa ou apartamento, seguro residencial, seguro hipotecário, empréstimos hipotecários, reparos habitacionais e serviços de home equity ou avaliação.financial_product_services: Anúncios que promovem ou vinculam diretamente a uma oferta de produtos e serviços financeiros, incluindo crédito.employment: Anúncios que promovem ou vinculam diretamente a uma oportunidade de emprego, incluindo, mas não se limitando a, vagas de tempo parcial ou integral, estágios ou programas de certificação profissional. Anúncios relacionados que se enquadram nesta categoria incluem promoções de bolsas de emprego ou feiras, serviços de agregação ou anúncios que detalham benefícios que uma empresa possa oferecer, independentemente de uma oferta de emprego específica.issues_elections_politics: Anúncios feitos por, em nome de, ou sobre um candidato a cargo público, uma figura política, um partido político ou que defendam o resultado de uma eleição para cargo público. Também inclui anúncios sobre qualquer eleição, referendo ou iniciativa de votação, incluindo campanhas eleitorais do tipo “Vá votar”. Anúncios regulamentados como publicidade política ou sobre questões sociais em qualquer lugar onde o anúncio esteja sendo veiculado. Se selecionar issues, elections ou politics, você deve selecionar o país onde deseja veicular esses anúncios. É necessário estar autorizado a veicular anúncios sobre questões sociais, eleições ou política no país especificado.
locations: os países que você listar, mais o país de cada região e cidade. Assim, um impulsionamento housing que segmenta uma cidade do Reino Unido é configurado para o Reino Unido, sem nada extra na sua solicitação. Sem locations, o anúncio é veiculado nos EUA e a campanha é configurada para os EUA.A Meta também define um raio mínimo ao redor de cada cidade para essas categorias. Uma cidade do Reino Unido com raio de 17 quilômetros foi rejeitada com #2909039, que exige pelo menos 25 quilômetros (15 milhas), então use 25 quilômetros ou mais.A Meta exige que os anunciantes identifiquem corretamente a categoria de sua campanha.
A Meta utiliza revisores humanos e aprendizado de máquina para identificar esses tipos de anúncios.
Se você nos enviar uma
specialAdCategories incorreta, existe o risco de que seus anúncios sejam pausados até que a campanha seja ajustada.string
A pessoa ou organização que se beneficia do anúncio. Deve ser definido em conjunto com
dsaPayor. Use o endpoint de recomendações do DSA para obter sugestões.string
A pessoa ou organização que paga pelo anúncio. Deve ser definido em conjunto com
dsaBeneficiary.string
Data e hora de término no formato ISO 8601 (deve ser pelo menos 30 horas após o início), por exemplo
2025-03-01T00:00:00Z.Se não for definida, o anúncio será veiculado indefinidamente e terá data de término ongoing.object
Exclua localizações usando a mesma estrutura de
countries, regions e cities de locations.string
padrão:"all"
O gênero da audiência. Valores:
all, male, female.array
Os interesses de segmentação do anúncio como um array de IDs de
interesse do Instagram.
number
padrão:65
Idade máxima para segmentação do anúncio (padrão: 65).
number
padrão:18
Idade mínima para segmentação do anúncio (padrão: 18).
string
Data e hora de início no formato ISO 8601, por exemplo
2025-03-01T00:00:00Z.Se não for definida, o anúncio começará imediatamente.startDate e endDate conforme o agendamento pretendido; as datas de exemplo são ilustrativas.
Orçamentos de campanha
Para manter o orçamento na campanha em vez de no conjunto de anúncios, enviebudget.level: "campaign" no formato aninhado. Assim, o conjunto de anúncios não tem orçamento próprio. Funciona com orçamentos diários e vitalícios.
{
"accountId": "123456789",
"postId": "Ut1fWU6XkqkMayHGnJZ",
"goal": "engagement",
"budget": { "amount": 50, "type": "lifetime", "level": "campaign" },
"schedule": { "start": "2026-11-01T00:00:00Z", "end": "2026-11-08T00:00:00Z" },
"platformOptions": { "instagram": { "adName": "November boost", "bidAmount": 2 } }
}
budget.level:adSet(o padrão) oucampaign. Um orçamento de campanha não pode ser combinado comadSetBudgetSharingEnabled. Se você enviar os dois, a solicitação é rejeitada com um400ecode: 101.- A resposta inclui
budgetLevel: "campaign"para um orçamento de campanha. Um orçamento de conjunto de anúncios não retornabudgetLevel, então trate a ausência do campo comoadSet. - No Histórico,
budgetDailymostra o orçamento diário da campanha para um anúncio com orçamento diário de campanha. Se vários anúncios compartilham um mesmo orçamento de campanha, cada um mostra todo o orçamento da campanha, e não a sua parcela. O Histórico não mostra orçamentos vitalícios, seja na campanha ou no conjunto de anúncios. Quando um orçamento vitalício de campanha é gasto, todo anúncio nessa campanha mostradeliveryStatus: "COMPLETED"após a próxima atualização noturna, inclusive um anúncio agendado ou em análise. Um anúncio rejeitado continuaREJECTED.
Impulsionar em uma campanha ou conjunto de anúncios existente
Por padrão, cada impulsionamento cria sua própria campanha, seu próprio conjunto de anúncios e seu próprio anúncio. Para adicionar o impulsionamento a uma campanha ou a um conjunto de anúncios que você já executa na Meta, envie o formato aninhado comattachTo.
attachTo.campaignId: o impulsionamento cria um novo conjunto de anúncios e um novo anúncio dentro dessa campanha. Enviebudget,targetingebidAmountnormalmente: eles se aplicam ao novo conjunto de anúncios.attachTo.adSetId: o impulsionamento cria apenas o anúncio, dentro desse conjunto de anúncios. Envie tambémattachTo.campaignId, a campanha à qual o conjunto de anúncios pertence. Omitabudget,targetingeplatformOptions.instagram.bidAmount: o conjunto de anúncios mantém os seus próprios. Enviar qualquer um deles retorna um400comcode: 101.
{
"accountId": "123456789",
"postId": "Ut1fWU6XkqkMayHGnJZ",
"goal": "engagement",
"attachTo": { "campaignId": "120210000000000001", "adSetId": "120210000000000002" },
"platformOptions": { "instagram": { "adName": "November boost" } }
}
- A campanha ou o conjunto de anúncios deve estar na conta de anúncios indicada por
accountIde não pode pertencer aos impulsionamentos de outro usuário. Caso contrário, a solicitação retorna um400. Um impulsionamento do Instagram também não pode ser anexado a uma campanha criada por um impulsionamento do Facebook, e vice-versa. attachTonão pode ser combinado combudget.level: "campaign",specialAdCategoriesouadSetBudgetSharingEnabled, que são definidos em uma nova campanha. Enviá-los retornacode: 101.- Pausar ou ativar o impulsionamento altera apenas o que o impulsionamento criou: o anúncio, e o conjunto de anúncios quando o impulsionamento o criou. A campanha ou o conjunto de anúncios que você indicou em
attachTomantém o próprio status. O anúncio só é veiculado enquanto a campanha e o conjunto de anúncios acima dele estiverem ativos. Isso também vale quando a Ayrshare pausa seus anúncios, por exemplo, quando um perfil é excluído. - Se o impulsionamento falhar, a campanha ou o conjunto de anúncios indicado em
attachTonunca é excluído. - Se o conjunto de anúncios ao qual você anexa estiver em uma campanha que detém o orçamento (um orçamento de campanha), o Histórico informa o impulsionamento como qualquer anúncio com orçamento de campanha:
budgetDailymostra todo o orçamento da campanha, e não a parcela do impulsionamento, e, quando um orçamento vitalício de campanha é gasto, todo anúncio que a Ayrshare acompanha nessa campanha mostradeliveryStatus: "COMPLETED"após a próxima atualização noturna, inclusive um anúncio agendado ou em análise. Um anúncio rejeitado continuaREJECTED.
curl -X POST https://api.ayrshare.com/api/ads/instagram/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]
}'
const API_KEY = "API_KEY";
fetch("https://api.ayrshare.com/api/ads/instagram/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/instagram/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/instagram/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/instagram/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/instagram/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/instagram/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);
payload.put("locations", Map.of("countries", Arrays.asList("US")));
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/instagram/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",
"socialPostId": "1234567890",
"igPostId": "1234567890",
"platform": "instagram",
"startDate": "2026-03-26T22:30: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: accountId"
}