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
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.
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
}
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.
- Les chiffres sont lus chez Google au moment de l’appel, et non depuis une copie nocturne.
- Tous les montants sont dans la devise du compte publicitaire, renvoyée dans
currencysur chaque ligne. - Google omet les jours sans activité : une période peut donc renvoyer moins de lignes qu’elle ne compte de jours.
- 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.
- Pour une campagne Performance Max, utilisez
level=campaignavec l’ID de la campagne. Une campagne Performance Max n’a pas d’annonces propres :level=adne renvoie donc aucune ligne.
Paramètres d’en-tête
Paramètres de requête
string
requis
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).string
requis
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.
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.string
Indicateurs à renvoyer, séparés par des virgules. Omettez-le pour les obtenir tous. Consultez Indicateurs.
string
défaut:"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.string
défaut:"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 |
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
}