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

# Insights

> Obtenez en direct les métriques quotidiennes Google Ads de vos campagnes, groupes d'annonces ou annonces, avec clics, coût, conversions et valeur de conversion.

Obtenez en direct les performances Google Ads, une ligne par jour, pour les campagnes, groupes d'annonces ou annonces que vous avez créés via Ayrshare.

<ul>
  <li>Les chiffres sont lus chez Google au moment de l'appel, et non depuis une copie nocturne.</li>
  <li>Tous les montants sont dans la devise du compte publicitaire, renvoyée dans `currency` sur chaque ligne.</li>
  <li>Google omet les jours sans activité : une période peut donc renvoyer moins de lignes qu'elle ne compte de jours.</li>
  <li>Google ajuste le coût et les conversions d'une journée pendant quelques jours après sa fin : les jours récents peuvent donc changer d'une lecture à l'autre.</li>
  <li>Pour une campagne Performance Max, utilisez `level=campaign` avec l'ID de la campagne. Une campagne Performance Max n'a pas d'annonces propres : `level=ad` ne renvoie donc aucune ligne.</li>
</ul>

## 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 requête

**level** `string` *required*

Ce sur quoi porte chaque ligne : `campaign` (le `campaignId` renvoyé par la création), `adSet` (l'`adGroupId` renvoyé par la création) ou `ad` (l'`adId` renvoyé par la création).

**ids** `string` *required*

ID de campagnes, de groupes d'annonces ou d'annonces séparés par des virgules, jusqu'à 50. Ils doivent tous appartenir au même compte publicitaire.

**accountId** `string`

L'ID client Google Ads à 10 chiffres, avec ou sans tirets (`123-456-7890`).

Les rapports par annonce et par groupe d'annonces lisent le compte publicitaire que vous indiquez ici. Sans lui, un rapport par annonce recherche dans tous les comptes publicitaires que votre association Google Ads atteint, jusqu'à 25, et un rapport par groupe d'annonces ne fonctionne que si votre association atteint un seul compte publicitaire. Indiquez le compte lorsque votre association atteint plus de 25 comptes publicitaires, ou plus d'un pour un rapport par groupe d'annonces. Sinon, la requête renvoie `code: 101`.

**metrics** `string`

Indicateurs à renvoyer, séparés par des virgules. Omettez-le pour les obtenir tous. Consultez [Indicateurs](#metrics).

**startDate** `string` (default: il y a 30 jours)

Premier jour, au format `YYYY-MM-DD`. Google conserve les chiffres quotidiens pendant 37 mois ; une `startDate` plus ancienne renvoie `code: 101`.

**endDate** `string` (default: aujourd'hui)

Dernier jour, au format `YYYY-MM-DD`.

## Indicateurs

| Indicateur | Type | Signification |
| - | - | - |
| `spend` | nombre | Montant dépensé |
| `impressions` | nombre | Nombre de fois où l'annonce a été affichée |
| `clicks` | nombre | Clics |
| `cpm` | nombre ou `null` | Coût pour 1 000 impressions. `null` un jour sans impression |
| `cpc` | nombre ou `null` | Coût par clic. `null` un jour sans clic |
| `ctr` | nombre ou `null` | Taux de clics, en pourcentage. `null` un jour sans impression |
| `actions` | nombre | Les conversions Google, qui peuvent être fractionnaires |
| `conversionValue` | nombre | La valeur de ces conversions |

`actions` et `conversionValue` restent à `0` tant que le suivi des conversions n'est pas configuré dans votre compte Google Ads. `reach` n'est pas disponible, car Google ne fournit pas de couverture unique pour le Réseau de Recherche, et les `breakdowns` ne sont pas disponibles sur Google. Demander l'un ou l'autre renvoie `code: 101`.

## Pagination

Toutes les lignes sont renvoyées dans une seule réponse : `nextCursor` vaut donc toujours `null`.

## Erreurs

| Code | Quand |
| - | - |
| `101` | Un paramètre est manquant ou incorrect, un indicateur ou une ventilation n'est pas pris en charge, `startDate` remonte à plus de 37 mois, plus de 50 ID sont envoyés, les ID appartiennent à plusieurs comptes publicitaires, ou `accountId` est requis et absent |
| `400` | Une campagne, un groupe d'annonces ou une annonce ne vous appartient pas, ou `accountId` n'est pas le compte publicitaire enregistré par Ayrshare pour les ID envoyés |
| `370` | Google n'a pas pu renvoyer les insights. Réessayez |

```bash cURL theme={"system"}
curl \
-H "Authorization: Bearer API_KEY" \
-X GET "https://api.ayrshare.com/api/ads/google/insights?level=campaign&ids=21534567890&startDate=2026-10-01&endDate=2026-10-07"
```

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

fetch("https://api.ayrshare.com/api/ads/google/insights?level=campaign&ids=21534567890&startDate=2026-10-01&endDate=2026-10-07", {
  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/insights?level=campaign&ids=21534567890&startDate=2026-10-01&endDate=2026-10-07", 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/insights?level=campaign&ids=21534567890&startDate=2026-10-01&endDate=2026-10-07",
    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/insights?level=campaign&ids=21534567890&startDate=2026-10-01&endDate=2026-10-07");
        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/insights?level=campaign&ids=21534567890&startDate=2026-10-01&endDate=2026-10-07", 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 GetAdInsights {
    public static void main(String[] args) throws Exception {
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://api.ayrshare.com/api/ads/google/insights?level=campaign&ids=21534567890&startDate=2026-10-01&endDate=2026-10-07"))
            .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/insights?level=campaign&ids=21534567890&startDate=2026-10-01&endDate=2026-10-07')

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: Success theme={"system"}
{
  "status": "success",
  "platform": "google",
  "level": "campaign",
  "startDate": "2026-10-01",
  "endDate": "2026-10-07",
  "insights": [
    {
      "date": "2026-10-01",
      "level": "campaign",
      "id": "21534567890",
      "currency": "USD",
      "spend": 12.48,
      "impressions": 1830,
      "clicks": 41,
      "cpm": 6.82,
      "cpc": 0.3,
      "ctr": 2.2404,
      "actions": 3.5,
      "conversionValue": 140
    }
  ],
  "count": 1,
  "nextCursor": null
}
```


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