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"
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);
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
$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;
}
?>
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);
}
}
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))
}
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());
}
}
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
{
"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
}
Google Ads
Insights
Rufen Sie tägliche Live-Kennzahlen von Google Ads zu Ihren Kampagnen, Anzeigengruppen oder Anzeigen ab, mit Klicks, Kosten, Conversions und Conversion-Wert.
GET
/
ads
/
google
/
insights
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"
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);
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
$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;
}
?>
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);
}
}
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))
}
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());
}
}
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
{
"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
}
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.
- Die Zahlen werden beim Aufruf von Google gelesen, nicht aus einer nächtlichen Kopie.
- Alle Geldbeträge sind in der Währung des Werbekontos angegeben, die in jeder Zeile in
currencyzurückgegeben wird. - Google lässt Tage ohne Aktivität weg, daher kann ein Zeitraum weniger Zeilen zurückgeben, als er Tage hat.
- 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.
- Verwenden Sie für eine Performance Max-Kampagne
level=campaignmit der Kampagnen-ID. Eine Performance Max-Kampagne hat keine eigenen Anzeigen, daher gibtlevel=adkeine Zeilen zurück.
Header-Parameter
Query-Parameter
string
erforderlich
Worauf sich jede Zeile bezieht:
campaign (die campaignId aus der Erstellung), adSet (die adGroupId aus der Erstellung) oder ad (die adId aus der Erstellung).string
erforderlich
Kommagetrennte Kampagnen-, Anzeigengruppen- oder Anzeigen-IDs, bis zu 50. Sie müssen alle zu einem Werbekonto gehören.
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.string
Kommagetrennte Kennzahlen, die zurückgegeben werden sollen. Lassen Sie den Parameter weg, um alle zu erhalten. Siehe Kennzahlen.
string
Standard:"vor 30 Tagen"
Erster Tag im Format
YYYY-MM-DD. Google speichert Tageswerte 37 Monate lang; ein älteres startDate gibt code: 101 zurück.string
Standard:"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 istnextCursor 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 |
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"
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);
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
$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;
}
?>
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);
}
}
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))
}
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());
}
}
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
{
"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
}