> ## Documentation Index
> Fetch the complete documentation index at: https://www.ayrshare.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Impulsionar publicação

> Impulsione uma publicação enviando-a para a plataforma de anúncios do Instagram

export const PlansAvailable = ({plans = [], maxPackRequired}) => {
  let displayPlans = plans;
  if (plans && plans.length === 1) {
    const lowerCasePlan = plans[0].toLowerCase();
    if (lowerCasePlan === "business") {
      displayPlans = ["Launch", "Business", "Enterprise"];
    } else if (lowerCasePlan === "premium") {
      displayPlans = ["Premium", "Launch", "Business", "Enterprise"];
    }
  }
  return <Note>
Available on {displayPlans.length === 1 ? "the " : ""}
{displayPlans.join(", ").replace(/\b\w/g, l => l.toUpperCase())}{" "}
{displayPlans.length > 1 ? "plans" : "plan"}.

{maxPackRequired && <span onClick={() => window.open('https://www.ayrshare.com/docs/additional/maxpack', '_self')} className="flex items-center mt-2 cursor-pointer">
 <span className="px-1.5 py-0.5 rounded text-sm" style={{
    backgroundColor: '#C264B6',
    color: 'white',
    fontSize: '12px'
  }}>
   Max Pack required
 </span>
</span>}
</Note>;
};

export const HeaderAPI = ({noProfileKey, profileKeyRequired}) => <>
    <ParamField header="Authorization" type="string" required>
      <a href="/docs/apis/overview#authorization">API Key</a> of the Primary Profile.
      <br />
      <br />
      Format: <code>Authorization: Bearer API_KEY</code>
    </ParamField>
    {!noProfileKey && (profileKeyRequired ? <ParamField header="Profile-Key" type="string" required>
          <a href="/docs/apis/overview#profile-key-format">Profile Key</a> of a User Profile.
          <br />
          <br />
          Format: <code>Profile-Key: PROFILE_KEY</code>
        </ParamField> : <ParamField header="Profile-Key" type="string">
          <a href="/docs/apis/overview#profile-key-format">Profile Key</a> of a User Profile.
          <br />
          <br />
          Format: <code>Profile-Key: PROFILE_KEY</code>
        </ParamField>)}
  </>;

<PlansAvailable plans={["premium"]} maxPackRequired={false} />

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.

<ul className="custom-bullets">
  <li>Os valores de orçamento e lance devem ser especificados em USD com até duas casas decimais.</li>
  <li>O anúncio deve ser veiculado por pelo menos 30 horas para atender ao requisito do Instagram.</li>

  <li>
    Você pode usar o [endpoint de interesses](/docs/apis/ads/instagram/get-ad-interests) para encontrar IDs de interesses
    para segmentação.
  </li>

  <li>O Instagram pode levar até 24 horas para revisar e aprovar publicações impulsionadas.</li>

  <li>
    Se estiver usando `socialPostId` diretamente (em vez do `postId` da Ayrshare), certifique-se de que seja um ID de publicação
    válido do Instagram.
  </li>
</ul>

### Objetivos do anúncio

Cada anúncio deve ter um objetivo. O objetivo determina como o anúncio será otimizado para exibição.

<ul className="custom-bullets">
  <li>
    `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.
  </li>

  <li>
    `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.
  </li>

  <li>
    `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.
  </li>

  <li>
    `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.
  </li>
</ul>

<Note>
  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`.
</Note>

O seletor `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

<HeaderAPI />

## Parâmetros do corpo

<ParamField body="idempotencyKey" type="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.
</ParamField>

<ParamField body="adSetBudgetSharingEnabled" type="boolean" default={false}>
  Permite que a Meta compartilhe orçamento entre conjuntos de anúncios da campanha.
</ParamField>

<ParamField body="accountId" type="string" required>
  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](/docs/apis/ads/instagram/get-ad-accounts).
</ParamField>

<ParamField body="adName" type="string" required>
  Nome do seu anúncio (aparece no Gerenciador de Anúncios do Instagram) com o formato `{adName} - {postId or socialPostId} - {current date}`.
</ParamField>

<ParamField body="bidAmount" type="number" required>
  Valor máximo do lance em USD, como um valor positivo com até duas casas decimais.
</ParamField>

<ParamField body="budget" type="number" required>
  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.
</ParamField>

<ParamField body="socialPostId" type="string">
  O [ID da publicação social do Instagram](/docs/apis/overview#social-post-id) 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](/docs/apis/history/history-platform), não da Ayrshare. Obrigatório se `postId` não estiver definido.
</ParamField>

<ParamField body="goal" type="string" default="engagement">
  O objetivo do anúncio. Valores: `engagement`, `interactions`, `awareness_views` e
  `awareness_audience`. Consulte os [detalhes dos objetivos de anúncio](/docs/apis/ads/instagram/boost-post#ad-goals) acima para
  mais informações.
</ParamField>

<ParamField body="locations" type="object" default={{ countries: ["US"] }}>
  Países de segmentação com `{"countries": ["US", "CA"]}` usando [códigos de países](/docs/iso-codes/country). Você também pode fornecer arrays de `regions` e `cities`; consulte [regiões](/docs/apis/ads/instagram/get-ad-regions) e [cidades](/docs/apis/ads/instagram/get-ad-cities).
</ParamField>

<ParamField body="postId" type="string">
  O [ID da publicação da Ayrshare](/docs/apis/overview#ayrshare-post-id) da publicação a ser impulsionada. Obrigatório se
  `socialPostId` não estiver definido.
</ParamField>

<ParamField body="status" type="string" default="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](/docs/apis/ads/instagram/put-ad-update).
</ParamField>

<ParamField body="tracking" type="object">
  Acompanhe o anúncio usando um Meta Pixel.

  <Expandable title="child attributes">
    <ParamField body="pixelId" type="number" required>
      O ID do Meta Pixel para rastrear o anúncio.

      ```json theme={"system"}
      {
       "pixelId": 1234567890
      }
      ```
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="urlTags" type="array">
  Adicione tags UTM à URL do anúncio.

  ```json theme={"system"}
  {
    "urlTags": ["utm_source=ayrshare", "utm_medium=social", "utm_campaign=ayrshare-social"]
  }
  ```

  Por exemplo, se a URL de link for `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`.
</ParamField>

<ParamField body="specialAdCategories" type="array">
  A Meta exige que anunciantes em [categorias especiais de anúncios](https://www.facebook.com/business/help/298000447747885?helpref=faq_content) 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:

  <ul className="custom-bullets">
    <li>
      `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.
    </li>

    <li>
      `financial_product_services`: Anúncios que promovem ou vinculam diretamente a uma oferta de produtos e
      serviços financeiros, incluindo crédito.
    </li>

    <li>
      `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.
    </li>

    <li>
      `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.
    </li>
  </ul>

  <Warning>
    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.
  </Warning>
</ParamField>

<ParamField body="dsaBeneficiary" type="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](/docs/apis/ads/instagram/get-dsa-recommendations) para obter sugestões.
</ParamField>

<ParamField body="dsaPayor" type="string">
  A pessoa ou organização que paga pelo anúncio. Deve ser definido em conjunto com `dsaBeneficiary`.
</ParamField>

<ParamField body="endDate" type="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`.
</ParamField>

<ParamField body="excludedLocations" type="object">
  Exclua localizações usando a mesma estrutura de `countries`, `regions` e `cities` de `locations`.
</ParamField>

<ParamField body="genders" type="string" default="all">
  O gênero da audiência. Valores: `all`, `male`, `female`.
</ParamField>

<ParamField body="interests" type="array">
  Os interesses de segmentação do anúncio como um array de [IDs de
  interesse](/docs/apis/ads/instagram/get-ad-interests) do Instagram.
</ParamField>

<ParamField body="maxAge" type="number" default={65}>
  Idade máxima para segmentação do anúncio (padrão: 65).
</ParamField>

<ParamField body="minAge" type="number" default={18}>
  Idade mínima para segmentação do anúncio (padrão: 18).
</ParamField>

<ParamField body="startDate" type="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.
</ParamField>

Substitua os IDs de exemplo pelos seus próprios. Defina `startDate` e `endDate` conforme o agendamento pretendido; as datas de exemplo são ilustrativas.

<RequestExample>
  ```bash cURL theme={"system"}
  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]
    }'
  ```

  ```javascript JavaScript theme={"system"}
  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);
  ```

  ```python Python theme={"system"}
  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 PHP theme={"system"}
  <?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);
  ```

  ```csharp C# theme={"system"}
  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);
      }
  }
  ```

  ```go Go theme={"system"}
  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))
  }
  ```

  ```java Java theme={"system"}
  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();
          }
      }
  }
  ```

  ```ruby Ruby theme={"system"}
  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
  ```
</RequestExample>

<ResponseExample>
  ```json 200: Post Boosted theme={"system"}
  {
      "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"
  }
  ```

  ```json 400: Invalid Account ID theme={"system"}
  {
    "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."
  }
  ```

  ```json 400: Missing Required Parameters theme={"system"}
  {
    "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"
  }
  ```
</ResponseExample>
