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

> Rufen Sie tägliche Live-Kennzahlen von Google Ads zu Ihren Kampagnen, Anzeigengruppen oder Anzeigen ab, mit Klicks, Kosten, Conversions und Conversion-Wert.

Rufen Sie die Live-Performance von Google Ads ab, eine Zeile pro Tag, für die Kampagnen, Anzeigengruppen oder Anzeigen, die Sie über Ayrshare erstellt haben.

<ul>
  <li>Die Zahlen werden beim Aufruf von Google gelesen, nicht aus einer nächtlichen Kopie.</li>
  <li>Alle Geldbeträge sind in der Währung des Werbekontos angegeben, die in jeder Zeile in `currency` zurückgegeben wird.</li>
  <li>Google lässt Tage ohne Aktivität weg, daher kann ein Zeitraum weniger Zeilen zurückgeben, als er Tage hat.</li>
  <li>Google passt die Kosten und Conversions eines Tages noch einige Tage nach seinem Ende an, daher können sich die letzten Tage zwischen zwei Abfragen ändern.</li>
  <li>Verwenden Sie für eine Performance Max-Kampagne `level=campaign` mit der Kampagnen-ID. Eine Performance Max-Kampagne hat keine eigenen Anzeigen, daher gibt `level=ad` keine Zeilen zurück.</li>
</ul>

## Header-Parameter

**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`

## Query-Parameter

**level** `string` *required*

Worauf sich jede Zeile bezieht: `campaign` (die `campaignId` aus der Erstellung), `adSet` (die `adGroupId` aus der Erstellung) oder `ad` (die `adId` aus der Erstellung).

**ids** `string` *required*

Kommagetrennte Kampagnen-, Anzeigengruppen- oder Anzeigen-IDs, bis zu 50. Sie müssen alle zu einem Werbekonto gehören.

**accountId** `string`

Die 10-stellige Google Ads-Kundennummer, mit oder ohne Bindestriche (`123-456-7890`).

Berichte zu Anzeigen und Anzeigengruppen lesen das Werbekonto, das Sie hier angeben. Ohne diese Angabe durchsucht ein Anzeigenbericht alle Werbekonten, die Ihre Google Ads-Verknüpfung erreicht, bis zu 25, und ein Anzeigengruppenbericht funktioniert nur, wenn Ihre Verknüpfung genau ein Werbekonto erreicht. Geben Sie das Konto an, wenn Ihre Verknüpfung mehr als 25 Werbekonten erreicht, oder bei einem Anzeigengruppenbericht mehr als eines. Andernfalls gibt die Anfrage `code: 101` zurück.

**metrics** `string`

Kommagetrennte Kennzahlen, die zurückgegeben werden sollen. Lassen Sie den Parameter weg, um alle zu erhalten. Siehe [Kennzahlen](#metrics).

**startDate** `string` (default: vor 30 Tagen)

Erster Tag im Format `YYYY-MM-DD`. Google speichert Tageswerte 37 Monate lang; ein älteres `startDate` gibt `code: 101` zurück.

**endDate** `string` (default: heute)

Letzter Tag im Format `YYYY-MM-DD`.

## Kennzahlen

| Kennzahl | Typ | Bedeutung |
| - | - | - |
| `spend` | number | Ausgegebener Betrag |
| `impressions` | number | Wie oft die Anzeige ausgespielt wurde |
| `clicks` | number | Klicks |
| `cpm` | number oder `null` | Kosten pro 1.000 Impressionen. `null` an einem Tag ohne Impressionen |
| `cpc` | number oder `null` | Kosten pro Klick. `null` an einem Tag ohne Klicks |
| `ctr` | number oder `null` | Klickrate in Prozent. `null` an einem Tag ohne Impressionen |
| `actions` | number | Die Conversions von Google, die auch Bruchzahlen sein können |
| `conversionValue` | number | Der Wert dieser Conversions |

`actions` und `conversionValue` bleiben `0`, bis in Ihrem Google Ads-Konto Conversion-Tracking eingerichtet ist. `reach` ist nicht verfügbar, da Google für die Suche keine eindeutige Reichweite meldet, und `breakdowns` sind bei Google nicht verfügbar. Eine Anfrage nach einem der beiden gibt `code: 101` zurück.

## Paginierung

Alle Zeilen werden in einer Antwort zurückgegeben, daher ist `nextCursor` immer `null`.

## Fehler

| Code | Wann |
| - | - |
| `101` | Ein Parameter fehlt oder ist falsch, eine Kennzahl oder Aufschlüsselung wird nicht unterstützt, `startDate` liegt mehr als 37 Monate zurück, mehr als 50 IDs werden gesendet, die IDs gehören zu mehr als einem Werbekonto oder `accountId` ist erforderlich und fehlt |
| `400` | Eine Kampagne, Anzeigengruppe oder Anzeige gehört nicht Ihnen, oder `accountId` ist nicht das Werbekonto, das Ayrshare für die gesendeten IDs gespeichert hat |
| `370` | Google konnte die Insights nicht zurückgeben. Versuchen Sie es erneut |

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