Il n’y a pas besoin d’un connecteur payant pour afficher vos données Facebook/Meta Ads dans Looker Studio. Un script Google Apps Script gratuit peut interroger l’API Marketing de Meta chaque matin, écrire les résultats dans une Google Sheet, et Looker Studio se branche sur cette Sheet. C’est le montage que nous utilisons pour les tableaux de bord quotidiens de nos clients — le voici pas à pas, code compris.
Cet article est la mise à jour 2026 de notre guide d’origine : le principe n’a pas changé, la version de l’API et quelques champs, si.
Le principe en une image
API Meta Marketing → Google Apps Script (déclenché chaque matin) → Google Sheet → Looker Studio
Coût : zéro. Maintenance : mettre à jour la version d’API environ une fois par an et renouveler le jeton. En échange, vous êtes propriétaire du pipeline — pas d’abonnement mensuel à un connecteur tiers pour afficher trois courbes.
Étape 1 — Obtenir un jeton d’accès durable
- Dans le Business Manager, créez un utilisateur système (Paramètres business → Utilisateurs → Utilisateurs système).
- Attribuez-lui l’accès au compte publicitaire concerné (lecture suffit :
ads_read).
- Générez un jeton d’utilisateur système — il n’expire pas comme un jeton personnel, c’est tout l’intérêt.
- Notez l’identifiant du compte publicitaire au format
act_XXXXXXXXX.
Le jeton donne accès en lecture à vos données publicitaires : traitez-le comme un mot de passe. Il ira dans les propriétés du script, jamais en clair dans le code partagé.
Étape 2 — La Google Sheet et le script
Créez une Google Sheet avec un onglet data, puis ouvrez Extensions → Apps Script et collez :
// Propriétés du script (Paramètres du projet → Propriétés du script) :
// META_TOKEN = votre jeton utilisateur système
// ACCOUNT_ID = act_XXXXXXXXX
const API_VERSION = 'v26.0'; // vérifiez la version courante de l'API Marketing
function fetchMetaInsights() {
const props = PropertiesService.getScriptProperties();
const token = props.getProperty('META_TOKEN');
const account = props.getProperty('ACCOUNT_ID');
const sheet = SpreadsheetApp.getActive().getSheetByName('data');
const fields = 'date_start,campaign_name,spend,impressions,clicks,actions,action_values';
let url = 'https://graph.facebook.com/' + API_VERSION + '/' + account +
'/insights?level=campaign&time_increment=1&date_preset=yesterday' +
'&fields=' + fields + '&access_token=' + token;
const rows = [];
while (url) {
const res = JSON.parse(UrlFetchApp.fetch(url).getContentText());
(res.data || []).forEach(function (d) {
rows.push([
d.date_start,
d.campaign_name,
Number(d.spend || 0),
Number(d.impressions || 0),
Number(d.clicks || 0),
pickAction(d.actions, 'purchase'),
pickAction(d.action_values, 'purchase')
]);
});
url = res.paging && res.paging.next ? res.paging.next : null;
}
if (sheet.getLastRow() === 0) {
sheet.appendRow(['date', 'campagne', 'depense', 'impressions', 'clics', 'achats', 'valeur_achats']);
}
if (rows.length) {
sheet.getRange(sheet.getLastRow() + 1, 1, rows.length, rows[0].length).setValues(rows);
}
}
function pickAction(list, type) {
if (!list) return 0;
const hit = list.find(function (a) { return a.action_type === type; });
return hit ? Number(hit.value) : 0;
}
Renseignez META_TOKEN et ACCOUNT_ID dans les propriétés du script, exécutez une première fois fetchMetaInsights (autorisez le script), et vérifiez que la veille s’écrit dans l’onglet data.
Étape 3 — Le déclencheur quotidien
Dans Apps Script : Déclencheurs → Ajouter un déclencheur → fonction fetchMetaInsights, événement « déclencheur horaire », chaque jour entre 6 h et 7 h. Chaque matin, la journée de la veille s’ajoute à la Sheet. Pour charger l’historique une fois, remplacez temporairement date_preset=yesterday par time_range={'since':'2026-01-01','until':'2026-10-28'}.
Étape 4 — Brancher Looker Studio
Dans Looker Studio : Créer → Source de données → Google Sheets, choisissez la Sheet et l’onglet data. Créez ensuite deux champs calculés :
CPC = depense / clics
ROAS = valeur_achats / depense
Et gardez en tête ce que ce ROAS est : celui attribué par Meta, avec ses limites — nous avons écrit pourquoi il ne doit pas piloter seul votre budget.
Les limites honnêtes de ce montage
| Limite |
Impact |
Parade |
| Version d’API dépréciée (~ 1 fois/an) |
Le script s’arrête |
Mettre à jour API_VERSION ; l’erreur est explicite |
| Les chiffres Meta se réajustent 24-48 h après |
Léger écart sur la veille |
Re-charger les 3 derniers jours au lieu de la seule veille |
| Quotas Apps Script |
Négligeable à l’échelle d’un compte |
Un seul run/jour suffit largement |
| Pas de breakdowns complexes (âge × placement × créa) |
Analyse fine limitée |
Ce pipeline sert le reporting quotidien, pas l’exploration ad hoc |
Ce montage alimente une partie des tableaux de bord que nous livrons avec le pilotage des campagnes — automatiques, mis à jour chaque matin, et sans licence de connecteur à payer.
Questions fréquentes
Est-ce vraiment gratuit ?
Oui : API Meta, Apps Script, Google Sheets et Looker Studio sont gratuits pour cet usage. Le seul coût est la demi-heure d’installation et une intervention par an pour la version d’API.
Puis-je ajouter Google Ads dans le même tableau de bord ?
Oui — Looker Studio a un connecteur Google Ads natif et gratuit. C’est d’ailleurs le montage complet type : Meta via la Sheet, Google Ads en direct, et les deux sources réunies dans un même rapport.
Que faire si le script renvoie une erreur de permission ?
Vérifiez que l’utilisateur système a bien accès au compte publicitaire (pas seulement au Business Manager) et que le jeton inclut ads_read. C’est la cause de 90 % des échecs au premier lancement.