> ## 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.

# Recomendaciones DSA

> Obtener recomendaciones de DSA de Facebook

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="/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="/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="/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} />

Obtén recomendaciones de la Ley de Servicios Digitales (DSA) para tu cuenta publicitaria de Facebook.

Como parte de los requisitos establecidos por la Ley de Servicios Digitales (DSA) de la Unión Europea (UE), [Facebook exige que la segmentación de anuncios](https://www.facebook.com/business/help/605021638170961) hacia cualquier parte de la UE proporcione valores de cadena que definan al beneficiario y al pagador del anuncio que se está creando.

Este endpoint proporciona una lista de beneficiarios y pagadores DSA recomendados que pueden usarse al impulsar publicaciones.
Estos campos pueden usarse en [`dsaBeneficiary`](/apis/ads/facebook/boost-post#param-dsa-beneficiary) y [`dsaPayor`](/apis/ads/facebook/boost-post#param-dsa-payor).

<ul className="custom-bullets">
  <li>
    Devuelve una lista de cadenas (máximo 25) que Facebook ha identificado como probables
    beneficiarios/pagadores, según la actividad reciente de la cuenta publicitaria.
  </li>

  <li>
    Estas recomendaciones pueden usarse como valores para los parámetros `dsaBeneficiary` y `dsaPayor`
    en el endpoint [Impulsar publicación](/apis/ads/facebook/boost-post).
  </li>

  <li>
    Tanto `dsaBeneficiary` como `dsaPayor` deben establecerse juntos si se proporciona alguno al impulsar
    publicaciones.
  </li>
</ul>

## Parámetros del encabezado

<HeaderAPI />

## Parámetros de consulta

<ParamField query="accountId" type="string" required>
  El ID de la cuenta publicitaria de Facebook para la cual obtener las recomendaciones DSA. El ID de la cuenta puede recuperarse
  desde el [endpoint de cuentas publicitarias](/apis/ads/facebook/get-ad-accounts).
</ParamField>

<RequestExample>
  ```bash cURL theme={"system"}
  curl \
  -H "Authorization: Bearer API_KEY" \
  -X GET https://api.ayrshare.com/api/ads/facebook/dsaRecommendations?accountId=1234567890
  ```

  ```javascript JavaScript theme={"system"}
  const API_KEY = "API_KEY";

  fetch("https://api.ayrshare.com/api/ads/facebook/dsaRecommendations?accountId=1234567890", {
        method: "GET",
        headers: {
          "Authorization": `Bearer ${API_KEY}`
        }
      })
        .then((res) => res.json())
        .then((json) => console.log(json))
        .catch(console.error);
  ```

  ```python Python theme={"system"}
  import requests

  headers = {'Authorization': 'Bearer API_KEY'}

  r = requests.get('https://api.ayrshare.com/api/ads/facebook/dsaRecommendations?accountId=1234567890', headers=headers)

  print(r.json())
  ```

  ```php PHP theme={"system"}
  <?php
  $curl = curl_init();

  curl_setopt_array($curl, [
    CURLOPT_URL => "https://api.ayrshare.com/api/ads/facebook/dsaRecommendations?accountId=1234567890",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
      "Authorization: Bearer API_KEY"
    ],
  ]);

  $response = curl_exec($curl);
  curl_close($curl);

  echo $response;
  ?>
  ```

  ```csharp C# theme={"system"}
  using System;
  using System.Net.Http;
  using System.Threading.Tasks;

  class Program
  {
      static async Task Main()
      {
          var client = new HttpClient();
          client.DefaultRequestHeaders.Add("Authorization", "Bearer API_KEY");

          var response = await client.GetAsync("https://api.ayrshare.com/api/ads/facebook/dsaRecommendations?accountId=1234567890");
          var content = await response.Content.ReadAsStringAsync();

          Console.WriteLine(content);
      }
  }
  ```

  ```go Go theme={"system"}
  package main

  import (
      "fmt"
      "io/ioutil"
      "net/http"
  )

  func main() {
      client := &http.Client{}
      req, _ := http.NewRequest("GET", "https://api.ayrshare.com/api/ads/facebook/dsaRecommendations?accountId=1234567890", nil)
      req.Header.Add("Authorization", "Bearer API_KEY")

      resp, _ := client.Do(req)
      body, _ := ioutil.ReadAll(resp.Body)

      fmt.Println(string(body))
  }
  ```

  ```java Java theme={"system"}
  import java.net.URI;
  import java.net.http.HttpClient;
  import java.net.http.HttpRequest;
  import java.net.http.HttpResponse;

  public class GetDsaRecommendations {
      public static void main(String[] args) throws Exception {
          HttpClient client = HttpClient.newHttpClient();
          HttpRequest request = HttpRequest.newBuilder()
                  .uri(URI.create("https://api.ayrshare.com/api/ads/facebook/dsaRecommendations?accountId=1234567890"))
                  .header("Authorization", "Bearer API_KEY")
                  .GET()
                  .build();

          HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
          System.out.println(response.body());
      }
  }
  ```

  ```ruby Ruby theme={"system"}
  require 'net/http'
  require 'json'

  uri = URI('https://api.ayrshare.com/api/ads/facebook/dsaRecommendations?accountId=1234567890')
  req = Net::HTTP::Get.new(uri)
  req['Authorization'] = 'Bearer API_KEY'

  res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http|
    http.request(req)
  }

  puts res.body
  ```
</RequestExample>

<ResponseExample>
  ```json 200: Éxito theme={"system"}
  {
      "status": "success",
      "dsaRecommendations": [
          "Beneficiary 1",
          "Beneficiary 2",
          "Beneficiary 3"
      ],
      "count": 1
  }
  ```

  ```json 413: Error de recomendaciones DSA theme={"system"}
  {
    "action": "ads",
    "status": "error",
    "code": 413,
    "message": "There was an error getting the DSA recommendations. Please try again."
  }
  ```
</ResponseExample>
