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

# Obtenir une campagne

> Lisez le statut et le budget quotidien d'une campagne Google Ads, ainsi que l'examen par Google de chacune de ses annonces ou de chacun de ses assets.

Obtenez une campagne Google Ads que vous avez créée via Ayrshare : son nom, son statut, son budget quotidien et l'examen par Google de chacune de ses annonces.

## Paramètres d'en-tête

**Authorization** `string` *required*

[API Key](https://www.ayrshare.com/docs/apis/overview.md#authorization) of the Primary Profile.

Format: `Authorization: Bearer API_KEY`
**Profile-Key** `string`

[Profile Key](https://www.ayrshare.com/docs/apis/overview.md#profile-key-format) of a User Profile.

Format: `Profile-Key: PROFILE_KEY`

## Paramètres de chemin

**id** `string` *required*

Le `campaignId` renvoyé lors de la création de la campagne.

## Réponse

| Champ | Contenu |
| - | - |
| `campaignId` | L'ID de la campagne |
| `name` | Le nom de la campagne |
| `campaignStatus` | `active` ou `paused` |
| `platformStatus` | Le statut propre à Google : `ENABLED`, `PAUSED`, ou `REMOVED` pour une campagne supprimée dans Google Ads. Une campagne supprimée conserve le dernier `campaignStatus` que vous avez défini via Ayrshare |
| `budget` | Le budget quotidien : `amount`, `currency` (la devise du compte publicitaire) et `type` (`daily`) |
| `ads` | L'examen par Google de chaque annonce (Réseau de Recherche) ou de chaque asset (Performance Max). Consultez [Examen des annonces](#ad-review) |

## Examen des annonces

Google examine chaque nouvelle annonce au regard de ses règles publicitaires, généralement en un jour ouvré. Chaque ligne de `ads` contient :

| Champ | Contenu |
| - | - |
| `adId` | L'ID de l'annonce, tel que renvoyé par la création |
| `approvalStatus` | La décision de Google : `APPROVED`, `APPROVED_LIMITED` (diffusée avec des limites, par exemple pas dans certains pays), `AREA_OF_INTEREST_ONLY` ou `DISAPPROVED`. Tant que Google n'a pas décidé, il contient une autre valeur, comme `UNKNOWN` ou `UNSPECIFIED` |
| `reviewStatus` | L'état d'avancement de l'examen, par exemple `REVIEW_IN_PROGRESS` ou `REVIEWED` |
| `policyTopics` | Les règles à l'origine d'une limite ou d'un refus : `[{ "topic": "ALCOHOL", "type": "PROHIBITED" }]` |

Une annonce refusée n'est pas diffusée. Modifiez-la dans Google Ads, ou créez une nouvelle campagne avec un texte conforme. `ads` est omis lorsque l'examen de Google n'a pas pu être lu à ce moment-là, ou a pris plus de quelques secondes ; relisez la campagne plus tard.

Chaque nuit, Ayrshare vérifie aussi chaque examen et envoie un webhook `ads` avec `type: "reviewChanged"` lorsque la décision de Google change. Consultez [Action Ads](https://www.ayrshare.com/docs/apis/webhooks/actions.md#ads-action).

## Examen des assets

Google examine séparément chaque asset d'une campagne Performance Max. `ads` contient une ligne par asset, avec les mêmes champs qu'un [examen d'annonce](#ad-review), plus :

| Champ | Contenu |
| - | - |
| `adId` | La clé de l'asset dans cette campagne : `asset:<assetGroupId>~<assetId>~<fieldType>`, ou `asset:<campaignId>~<assetId>~<fieldType>` pour un asset de marque |
| `assetId` | L'ID Google de l'asset |
| `fieldType` | L'endroit où il est utilisé, par exemple `HEADLINE`, `MARKETING_IMAGE`, `SQUARE_MARKETING_IMAGE`, `BUSINESS_NAME` ou `LOGO` |
| `primaryStatus` | S'il peut être diffusé, par exemple `ELIGIBLE` ou `NOT_ELIGIBLE` |

Le nom d'entreprise, les logos et les logos au format paysage sont des assets de marque, associés à la campagne plutôt qu'au groupe d'assets. Ils ont aussi une ligne ici, après les lignes du groupe d'assets, avec l'ID de la campagne comme clé : `asset:<campaignId>~<assetId>~<fieldType>`, où `fieldType` vaut `BUSINESS_NAME`, `LOGO` ou `LANDSCAPE_LOGO`.

## Erreurs

| Code | Quand |
| - | - |
| `400` | La campagne ne vous appartient pas, n'existe pas ou ne se trouve plus dans le compte Google Ads. Également lorsque l'utilisateur Google que vous avez associé ne peut pas accéder au compte publicitaire, ou que l'accès à Google Ads a été révoqué. |
| `370` | Google n'a pas pu traiter la requête. Réessayez. |

```bash cURL theme={"system"}
curl \
-H "Authorization: Bearer API_KEY" \
-X GET "https://api.ayrshare.com/api/ads/google/campaigns/21534567890"
```

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

fetch("https://api.ayrshare.com/api/ads/google/campaigns/21534567890", {
  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/google/campaigns/21534567890", 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/google/campaigns/21534567890",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer API_KEY"
    ]
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
    echo "cURL Error: " . $err;
} else {
    echo $response;
}
?>
```

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

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

        var response = await client.GetAsync("https://api.ayrshare.com/api/ads/google/campaigns/21534567890");
        var content = await response.Content.ReadAsStringAsync();

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

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

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

func main() {
    req, _ := http.NewRequest("GET", "https://api.ayrshare.com/api/ads/google/campaigns/21534567890", nil)
    req.Header.Add("Authorization", "Bearer API_KEY")

    resp, err := http.DefaultClient.Do(req)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }
    defer resp.Body.Close()

    body, _ := io.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 GetCampaign {
    public static void main(String[] args) throws Exception {
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://api.ayrshare.com/api/ads/google/campaigns/21534567890"))
            .header("Authorization", "Bearer API_KEY")
            .GET()
            .build();

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

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

uri = URI.parse('https://api.ayrshare.com/api/ads/google/campaigns/21534567890')

request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer API_KEY'

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end

puts response.body
```

```json 200: Search Campaign theme={"system"}
{
  "status": "success",
  "platform": "google",
  "campaignId": "21534567890",
  "name": "Fall sale",
  "campaignStatus": "active",
  "platformStatus": "ENABLED",
  "budget": { "amount": 25, "currency": "USD", "type": "daily" },
  "ads": [
    {
      "adId": "71234567890",
      "approvalStatus": "APPROVED_LIMITED",
      "reviewStatus": "REVIEWED",
      "policyTopics": [{ "topic": "ALCOHOL", "type": "LIMITED" }]
    }
  ]
}
```

```json 200: Performance Max Campaign theme={"system"}
{
  "status": "success",
  "platform": "google",
  "campaignId": "21534567891",
  "name": "Fall sale PMax",
  "campaignStatus": "paused",
  "platformStatus": "PAUSED",
  "budget": { "amount": 40, "currency": "USD", "type": "daily" },
  "ads": [
    {
      "adId": "asset:6512345678~31234567890~HEADLINE",
      "assetId": "31234567890",
      "fieldType": "HEADLINE",
      "primaryStatus": "ELIGIBLE",
      "approvalStatus": "APPROVED",
      "reviewStatus": "REVIEWED",
      "policyTopics": []
    }
  ]
}
```

```json 400: Not Found theme={"system"}
{
  "action": "ads",
  "status": "error",
  "code": 400,
  "message": "Campaign not found or you are not authorized to access it."
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.