Exporter manuellement des rapports Google Ads chaque semaine, les retravailler dans Excel, les envoyer aux clients — c’est une perte de temps considérable. Avec Google Ads API, vous pouvez automatiser l’intégralité du pipeline de reporting : extraction, transformation et diffusion. Ce guide vous montre comment.
Pourquoi automatiser ses rapports via l’API ?
- Agrégation multi-comptes : comparer des dizaines de comptes en une seule vue
- Métriques personnalisées : calculer des KPIs métier (coût par lead qualifié, ROAS par segment)
- Fréquence flexible : rapports horaires, journaliers, hebdomadaires
- Intégration BI : alimenter directement BigQuery, Looker Studio, Power BI
GAQL : le langage de requête Google Ads
SELECT
campaign.name, metrics.impressions, metrics.clicks, metrics.cost_micros
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
AND campaign.status = 'ENABLED'
ORDER BY metrics.cost_micros DESC
Pipeline de reporting automatisé : architecture recommandée
1. Extraction (Google Ads API → Python)
from google.ads.googleads.client import GoogleAdsClient
def get_campaign_report(client, customer_id):
ga_service = client.get_service("GoogleAdsService")
query = """
SELECT campaign.name, metrics.impressions, metrics.clicks,
metrics.cost_micros, metrics.conversions, segments.date
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
"""
stream = ga_service.search_stream(customer_id=customer_id, query=query)
results = []
for batch in stream:
for row in batch.results:
results.append({
'campaign': row.campaign.name,
'impressions': row.metrics.impressions,
'clicks': row.metrics.clicks,
'cost': row.metrics.cost_micros / 1_000_000,
'conversions': row.metrics.conversions,
'date': row.segments.date
})
return results
2. Stockage (BigQuery)
from google.cloud import bigquery
def export_to_bigquery(data, table_id):
client = bigquery.Client()
table = client.get_table(table_id)
errors = client.insert_rows_json(table, data)
if not errors:
print(f"{len(data)} lignes insérées dans {table_id}")
3. Transformation (pandas)
def calculate_kpis(df):
df['ctr'] = df['clicks'] / df['impressions'] * 100
df['cpc'] = df['cost'] / df['clicks']
df['cpa'] = df['cost'] / df['conversions'].replace(0, float('nan'))
df['roas'] = df['revenue'] / df['cost']
return df
4. Visualisation (Looker Studio / Power BI)
Connectez BigQuery directement à Looker Studio pour des dashboards actualisés automatiquement.
Rapports multi-comptes via MCC
def get_all_accounts_performance(client, manager_customer_id):
customer_service = client.get_service("CustomerService")
accessible_customers = customer_service.list_accessible_customers()
all_results = []
for customer_resource in accessible_customers.resource_names:
customer_id = customer_resource.split('/')[-1]
try:
results = get_campaign_report(client, customer_id)
for r in results:
r['account_id'] = customer_id
all_results.extend(results)
except Exception as e:
print(f"Erreur compte {customer_id}: {e}")
return all_results
Planifier avec Cloud Scheduler
# Cloud Scheduler — tous les jours à 6h (heure de Bruxelles)
# gcloud scheduler jobs create http daily-ads-report \
# --schedule="0 6 * * *" \
# --uri="https://europe-west1-[PROJECT].cloudfunctions.net/google-ads-reporter" \
# --time-zone="Europe/Brussels"
FAQ — Automatisation des rapports Google Ads
Quelle fréquence maximale pour les rapports automatisés ?
Les données Google Ads ont un délai de traitement de 3 heures minimum. Un rapport toutes les 6 heures est généralement suffisant.
Looker Studio vs Power BI ?
Looker Studio est recommandé pour sa connexion native à Google Ads et BigQuery. Power BI est préférable dans l’écosystème Microsoft.
Pour maîtriser l’ensemble de l’écosystème, consultez notre guide complet Google Ads API v24. Avant de construire vos rapports, maîtrisez les quotas et limites de l’API. Si vous débutez, suivez notre tutoriel Google Ads API avec Python. Et si vous hésitez entre Scripts et API, lisez notre comparatif Google Ads Scripts vs API.

