Lecture
Lecture
Les routes GET exigent le droit read. L'hôte ci-dessous est celui à utiliser. La clé des exemples est un placeholder.
https://tyfrhxfejrawgdlhryfu.supabase.co/functions/v1/advertiser-api
Les listes répondent :
{
"data": [],
"next_cursor": null,
"has_more": false
}
limit va de 1 à 100 et vaut 50 par défaut. Renvoyez next_cursor dans cursor. Ne construisez pas le curseur.
Il n'y a pas de route /ad-sets ni de route CSV. Créer une campagne crée son ensemble d'annonces. Les enchères, budgets, emplacements, pays et piles techniques sont des champs de la campagne. Chaque annonce inclut ad_set_id. Les stats quotidiennes sont du JSON via GET /campaigns/{id}/stats. L'export CSV d'Ads Manager est calculé dans le navigateur et n'est pas un endpoint d'API.
Campagnes
curl 'https://tyfrhxfejrawgdlhryfu.supabase.co/functions/v1/advertiser-api/campaigns?limit=50' \
-H 'Authorization: Bearer idl_adv_xxx'
| Paramètre | Sens |
|---|---|
limit | Taille de page, 1–100, défaut 50 |
cursor | next_cursor de la page précédente |
include_archived | true inclut les campagnes avec archived_at. Défaut false |
curl 'https://tyfrhxfejrawgdlhryfu.supabase.co/functions/v1/advertiser-api/campaigns/CAMPAIGN_UUID' \
-H 'Authorization: Bearer idl_adv_xxx'
GET /campaigns/{id} renvoie { "data": { ... } }. L'id doit être un UUID. Une campagne hors de cette organisation est 404.
status vaut draft, active, paused ou completed. created_via vaut adsmanager ou api. La réponse inclut aussi l'enchère du premier ensemble d'annonces, le modèle de facturation (cpm ou cpc), les emplacements, les pays et la pile technique. countries: null signifie monde entier.
Annonces
GET /ads et GET /creatives sont la même liste. GET /ads/{id} et GET /creatives/{id} sont la même annonce.
curl 'https://tyfrhxfejrawgdlhryfu.supabase.co/functions/v1/advertiser-api/ads?campaign_id=CAMPAIGN_UUID' \
-H 'Authorization: Bearer idl_adv_xxx'
| Paramètre | Sens |
|---|---|
campaign_id | Annonces de cette campagne seulement. Campagne inconnue : 404 |
limit, cursor | Même pagination que les campagnes |
is_approved vaut null tant que l'annonce est en revue, true si elle est approuvée, false si elle est refusée. is_active reste false tant qu'elle ne peut pas être diffusée. rejection_reason est renseigné en cas de refus.
Stats
Une ligne par jour UTC, bornes incluses. La plage par défaut est les 30 derniers jours jusqu'à aujourd'hui. Elle ne peut pas dépasser 366 jours.
curl 'https://tyfrhxfejrawgdlhryfu.supabase.co/functions/v1/advertiser-api/campaigns/CAMPAIGN_UUID/stats?from=2026-10-01&to=2026-11-01' \
-H 'Authorization: Bearer idl_adv_xxx'
{
"data": {
"campaign_id": "CAMPAIGN_UUID",
"from": "2026-10-01",
"to": "2026-11-01",
"days": [
{
"day": "2026-10-01",
"impressions": 0,
"clicks": 0,
"spend_cents": 0,
"conversions": 0
}
]
}
}
Les impressions, les clics et la dépense comptent les impressions facturées (paid_amount_cents). spend_cents est en centimes de la devise du portefeuille et la ligne n'a pas de champ devise. Les conversions suivent conversion_event et conversion_window_days de la campagne (7 jours si le champ est vide). Une campagne inconnue renvoie 404. Une campagne connue renvoie une ligne par jour de la plage, y compris les zéros.
from et to sont au format YYYY-MM-DD. Un from après to, ou une plage de plus de 366 jours, renvoie 400.
Portefeuille
curl 'https://tyfrhxfejrawgdlhryfu.supabase.co/functions/v1/advertiser-api/wallet' \
-H 'Authorization: Bearer idl_adv_xxx'
{
"data": {
"organization_id": "ORG_UUID",
"balance_cents": 10000,
"currency": "EUR"
}
}
balance_cents est en centimes de currency. Sur cette plateforme, c'est EUR, sauf si la ligne du portefeuille stocke un autre code à trois lettres.
curl 'https://tyfrhxfejrawgdlhryfu.supabase.co/functions/v1/advertiser-api/wallet/transactions?limit=50' \
-H 'Authorization: Bearer idl_adv_xxx'
Les dépôts sont des amount_cents positifs. Les dépenses sont négatives. type vaut deposit, campaign_spend, refund ou adjustment. Les références du prestataire de paiement ne sont pas renvoyées. Les transactions n'incluent pas de champ devise.