[{"data":1,"prerenderedAt":796},["ShallowReactive",2],{"navigation_docs_fr":3,"-fr-advertiser-api-mcp":131,"-fr-advertiser-api-mcp-surround":791},[4,18,47,60,69,102,127],{"title":5,"path":6,"stem":7,"children":8,"page":17},"Getting Started","\u002Ffr\u002Fgetting-started","fr\u002F1.getting-started",[9,13],{"title":10,"path":11,"stem":12},"Installation","\u002Ffr\u002Fgetting-started\u002Finstallation","fr\u002F1.getting-started\u002F1.installation",{"title":14,"path":15,"stem":16},"Configuration","\u002Ffr\u002Fgetting-started\u002Fconfiguration","fr\u002F1.getting-started\u002F2.configuration",false,{"title":19,"path":20,"stem":21,"children":22,"page":17},"Features","\u002Ffr\u002Ffeatures","fr\u002F2.features",[23,27,31,35,39,43],{"title":24,"path":25,"stem":26},"Suivi des Pages Vues","\u002Ffr\u002Ffeatures\u002Fpageview-tracking","fr\u002F2.features\u002F1.pageview-tracking",{"title":28,"path":29,"stem":30},"Suivi des Conversions","\u002Ffr\u002Ffeatures\u002Fconversion-tracking","fr\u002F2.features\u002F2.conversion-tracking",{"title":32,"path":33,"stem":34},"Support SPA","\u002Ffr\u002Ffeatures\u002Fspa-support","fr\u002F2.features\u002F3.spa-support",{"title":36,"path":37,"stem":38},"React & Next.js","\u002Ffr\u002Ffeatures\u002Freact-integration","fr\u002F2.features\u002F4.react-integration",{"title":40,"path":41,"stem":42},"Vue & Nuxt","\u002Ffr\u002Ffeatures\u002Fvue-integration","fr\u002F2.features\u002F5.vue-integration",{"title":44,"path":45,"stem":46},"Google Tag Manager","\u002Ffr\u002Ffeatures\u002Fgtm-integration","fr\u002F2.features\u002F6.gtm-integration",{"title":48,"path":49,"stem":50,"children":51,"page":17},"Api","\u002Ffr\u002Fapi","fr\u002F3.api",[52,56],{"title":53,"path":54,"stem":55},"Référence API","\u002Ffr\u002Fapi\u002Freference","fr\u002F3.api\u002F1.reference",{"title":57,"path":58,"stem":59},"Référence des Événements","\u002Ffr\u002Fapi\u002Fevents-reference","fr\u002F3.api\u002F2.events-reference",{"title":61,"path":62,"stem":63,"children":64,"page":17},"Privacy","\u002Ffr\u002Fprivacy","fr\u002F4.privacy",[65],{"title":66,"path":67,"stem":68},"Collecte de Données & Vie Privée","\u002Ffr\u002Fprivacy\u002Fdata-collection","fr\u002F4.privacy\u002F1.data-collection",{"title":70,"path":71,"stem":72,"children":73,"page":17},"Chat SDK","\u002Ffr\u002Fchat-sdk","fr\u002F5.chat-sdk",[74,78,82,86,90,94,98],{"title":75,"path":76,"stem":77},"Chat SDK - Démarrage","\u002Ffr\u002Fchat-sdk\u002Fgetting-started","fr\u002F5.chat-sdk\u002F1.getting-started",{"title":79,"path":80,"stem":81},"Intégration Vue hors chat","\u002Ffr\u002Fchat-sdk\u002Fvue-non-chat","fr\u002F5.chat-sdk\u002F2.vue-non-chat",{"title":83,"path":84,"stem":85},"Intégration React","\u002Ffr\u002Fchat-sdk\u002Freact-integration","fr\u002F5.chat-sdk\u002F3.react-integration",{"title":87,"path":88,"stem":89},"Middleware AI SDK","\u002Ffr\u002Fchat-sdk\u002Fai-sdk-middleware","fr\u002F5.chat-sdk\u002F4.ai-sdk-middleware",{"title":91,"path":92,"stem":93},"Formats d'annonces","\u002Ffr\u002Fchat-sdk\u002Fad-formats","fr\u002F5.chat-sdk\u002F5.ad-formats",{"title":95,"path":96,"stem":97},"Tracking et attribution","\u002Ffr\u002Fchat-sdk\u002Ftracking-and-attribution","fr\u002F5.chat-sdk\u002F6.tracking-and-attribution",{"title":99,"path":100,"stem":101},"Dépannage","\u002Ffr\u002Fchat-sdk\u002Ftroubleshooting","fr\u002F5.chat-sdk\u002F7.troubleshooting",{"title":103,"path":104,"stem":105,"children":106,"page":17},"API annonceurs","\u002Ffr\u002Fadvertiser-api","fr\u002F6.advertiser-api",[107,111,115,119,123],{"title":108,"path":109,"stem":110},"Vue d'ensemble","\u002Ffr\u002Fadvertiser-api\u002Foverview","fr\u002F6.advertiser-api\u002F1.overview",{"title":112,"path":113,"stem":114},"Lecture","\u002Ffr\u002Fadvertiser-api\u002Fread","fr\u002F6.advertiser-api\u002F2.read",{"title":116,"path":117,"stem":118},"Écriture","\u002Ffr\u002Fadvertiser-api\u002Fwrite","fr\u002F6.advertiser-api\u002F3.write",{"title":120,"path":121,"stem":122},"API conversions","\u002Ffr\u002Fadvertiser-api\u002Fconversions","fr\u002F6.advertiser-api\u002F4.conversions",{"title":124,"path":125,"stem":126},"Serveur MCP","\u002Ffr\u002Fadvertiser-api\u002Fmcp","fr\u002F6.advertiser-api\u002F5.mcp",{"title":128,"path":129,"stem":130},"Commencer ici","\u002Ffr\u002Fstart-here","fr\u002Fstart-here",{"id":132,"title":124,"body":133,"description":784,"extension":785,"links":786,"meta":787,"navigation":788,"path":125,"seo":789,"stem":126,"__hash__":790},"docs_fr\u002Ffr\u002F6.advertiser-api\u002F5.mcp.md",{"type":134,"value":135,"toc":778},"minimark",[136,140,148,158,161,167,173,202,227,232,448,459,466,473,477,483,639,643,650,745,749,754,760,774],[137,138,124],"h1",{"id":139},"serveur-mcp",[141,142,143,147],"p",{},[144,145,146],"code",{},"advertiser-mcp"," est un serveur MCP distant en Streamable HTTP. Les appels d'outils passent par l'API annonceurs : droits, limite de débit, isolation par organisation, modération et validation de la première campagne sont les mêmes règles.",[149,150,156],"pre",{"className":151,"code":153,"language":154,"meta":155},[152],"language-text","https:\u002F\u002Ftyfrhxfejrawgdlhryfu.supabase.co\u002Ffunctions\u002Fv1\u002Fadvertiser-mcp\n","text","",[144,157,153],{"__ignoreMap":155},[141,159,160],{},"Envoyez la clé annonceur à chaque requête :",[149,162,165],{"className":163,"code":164,"language":154,"meta":155},[152],"Authorization: Bearer idl_adv_xxx\n",[144,166,164],{"__ignoreMap":155},[141,168,169,172],{},[144,170,171],{},"x-api-key: idl_adv_xxx"," est aussi accepté. N'envoyez pas un JWT Supabase.",[141,174,175,176,179,180,183,184,187,188,191,192,194,195,197,198,201],{},"Le serveur s'appelle ",[144,177,178],{},"idlen-advertiser",", version ",[144,181,182],{},"1.0.0",". Les outils de lecture exigent ",[144,185,186],{},"read",". Les outils d'écriture exigent ",[144,189,190],{},"write",". ",[144,193,190],{}," n'inclut pas ",[144,196,186],{},". La limite est de 120 requêtes par minute et par clé. Le client envoie ",[144,199,200],{},"Accept: application\u002Fjson, text\u002Fevent-stream",".",[141,203,204,205,208,209,212,213,208,216,219,220,223,224,201],{},"Une clé absente ou inconnue renvoie ",[144,206,207],{},"401"," avec ",[144,210,211],{},"{ \"error\": { \"code\": \"unauthorized\", \"message\": \"...\" } }",". Au-delà de la limite, la réponse est ",[144,214,215],{},"429",[144,217,218],{},"rate_limited",", ",[144,221,222],{},"Retry-After"," et les en-têtes ",[144,225,226],{},"X-RateLimit-*",[228,229,231],"h2",{"id":230},"outils","Outils",[233,234,235,248],"table",{},[236,237,238],"thead",{},[239,240,241,245],"tr",{},[242,243,244],"th",{},"Outil",[242,246,247],{},"Rôle",[249,250,251,266,276,298,312,333,343,363,381,394,404,414,428,438],"tbody",{},[239,252,253,259],{},[254,255,256],"td",{},[144,257,258],{},"list_campaigns",[254,260,261,262,265],{},"Liste les campagnes de cette organisation, les plus récentes d'abord. Les campagnes archivées sont omises sauf si ",[144,263,264],{},"include_archived"," vaut true.",[239,267,268,273],{},[254,269,270],{},[144,271,272],{},"get_campaign",[254,274,275],{},"Lit une campagne de cette organisation. Une campagne d'une autre organisation est introuvable.",[239,277,278,283],{},[254,279,280],{},[144,281,282],{},"get_campaign_stats",[254,284,285,286,289,290,293,294,297],{},"Impressions, clics, dépense en centimes d'euro et conversions par jour. ",[144,287,288],{},"from"," et ",[144,291,292],{},"to"," sont des dates UTC ",[144,295,296],{},"YYYY-MM-DD",". Défaut : 30 derniers jours. La plage ne peut pas dépasser 366 jours.",[239,299,300,305],{},[254,301,302],{},[144,303,304],{},"create_campaign",[254,306,307,308,311],{},"Crée une campagne et son ensemble d'annonces. Le statut par défaut est ",[144,309,310],{},"draft",". Les montants sont en centimes d'euro.",[239,313,314,319],{},[254,315,316],{},[144,317,318],{},"update_campaign",[254,320,321,322,325,326,329,330,201],{},"Met à jour une campagne. Les champs omis ne changent pas. ",[144,323,324],{},"status"," à ",[144,327,328],{},"active"," suit les mêmes règles que ",[144,331,332],{},"resume_campaign",[239,334,335,340],{},[254,336,337],{},[144,338,339],{},"pause_campaign",[254,341,342],{},"Met en pause une campagne et ses ensembles d'annonces.",[239,344,345,349],{},[254,346,347],{},[144,348,332],{},[254,350,351,352,355,356,359,360,201],{},"Active une campagne. La première campagne API est refusée. Un solde nul renvoie ",[144,353,354],{},"insufficient_balance",". Sans annonce approuvée : ",[144,357,358],{},"ads_pending_moderation"," ou ",[144,361,362],{},"ad_required",[239,364,365,370],{},[254,366,367],{},[144,368,369],{},"list_ads",[254,371,372,373,376,377,380],{},"Liste les annonces, les plus récentes d'abord. ",[144,374,375],{},"campaign_id"," optionnel. ",[144,378,379],{},"is_approved"," null ou false : l'annonce n'est pas diffusée.",[239,382,383,388],{},[254,384,385],{},[144,386,387],{},"create_ad",[254,389,390,391,201],{},"Crée une annonce sur une campagne. Titre 1 à 60 caractères, texte 150 au plus, lien en ",[144,392,393],{},"https:\u002F\u002F",[239,395,396,401],{},[254,397,398],{},[144,399,400],{},"create_ad_from_url",[254,402,403],{},"Lit une page et crée une annonce. Partage la limite de 10 requêtes par organisation et par heure.",[239,405,406,411],{},[254,407,408],{},[144,409,410],{},"update_ad",[254,412,413],{},"Met à jour une annonce. Les champs omis ne changent pas.",[239,415,416,421],{},[254,417,418],{},[144,419,420],{},"get_wallet",[254,422,423,424,427],{},"Solde du portefeuille en centimes d'euro, et le code devise (",[144,425,426],{},"EUR",").",[239,429,430,435],{},[254,431,432],{},[144,433,434],{},"list_transactions",[254,436,437],{},"Transactions du portefeuille, les plus récentes d'abord. Dépôts positifs, dépenses négatives. Pas de référence du prestataire de paiement.",[239,439,440,445],{},[254,441,442],{},[144,443,444],{},"create_deposit_checkout_link",[254,446,447],{},"Ouvre une URL Stripe Checkout pour un dépôt. N'effectue pas le débit tout seul.",[141,449,450,451,454,455,458],{},"Les outils d'écriture acceptent ",[144,452,453],{},"idempotency_key",". Il est envoyé comme ",[144,456,457],{},"Idempotency-Key",". La même clé et le même corps sont rejoués 24 heures.",[141,460,461,462,465],{},"Une nouvelle annonce reste en attente tant qu'une personne ne l'a pas modérée, et elle n'est pas diffusée avant. Changer le titre, le texte, le bouton, le lien ou l'image la remet en attente. La première campagne que cette organisation crée via l'API ne peut pas être activée depuis l'API ni depuis MCP. Le résultat est ",[144,463,464],{},"first_campaign_requires_dashboard_validation"," et contient un lien vers le tableau de bord. Ouvrez le lien et activez la campagne dans Ads Manager. Une campagne suivante peut être relancée quand le portefeuille a des fonds et qu'au moins une annonce est approuvée.",[141,467,468,469,201],{},"Les limites de champs sont celles de ",[470,471,116],"a",{"href":472},"\u002Fadvertiser-api\u002Fwrite",[228,474,476],{"id":475},"claude-desktop-et-claude-code","Claude Desktop et Claude Code",[141,478,479,480,201],{},"Claude Desktop lit ceci dans son fichier de config. Claude Code utilise la même entrée ",[144,481,482],{},"mcpServers",[149,484,488],{"className":485,"code":486,"language":487,"meta":155,"style":155},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"mcpServers\": {\n    \"idlen-advertiser\": {\n      \"type\": \"http\",\n      \"url\": \"https:\u002F\u002Ftyfrhxfejrawgdlhryfu.supabase.co\u002Ffunctions\u002Fv1\u002Fadvertiser-mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer idl_adv_xxx\"\n      }\n    }\n  }\n}\n","json",[144,489,490,499,517,532,558,579,593,615,621,627,633],{"__ignoreMap":155},[491,492,495],"span",{"class":493,"line":494},"line",1,[491,496,498],{"class":497},"sMK4o","{\n",[491,500,502,505,508,511,514],{"class":493,"line":501},2,[491,503,504],{"class":497},"  \"",[491,506,482],{"class":507},"spNyl",[491,509,510],{"class":497},"\"",[491,512,513],{"class":497},":",[491,515,516],{"class":497}," {\n",[491,518,520,523,526,528,530],{"class":493,"line":519},3,[491,521,522],{"class":497},"    \"",[491,524,178],{"class":525},"sBMFI",[491,527,510],{"class":497},[491,529,513],{"class":497},[491,531,516],{"class":497},[491,533,535,538,542,544,546,549,553,555],{"class":493,"line":534},4,[491,536,537],{"class":497},"      \"",[491,539,541],{"class":540},"sbssI","type",[491,543,510],{"class":497},[491,545,513],{"class":497},[491,547,548],{"class":497}," \"",[491,550,552],{"class":551},"sfazB","http",[491,554,510],{"class":497},[491,556,557],{"class":497},",\n",[491,559,561,563,566,568,570,572,575,577],{"class":493,"line":560},5,[491,562,537],{"class":497},[491,564,565],{"class":540},"url",[491,567,510],{"class":497},[491,569,513],{"class":497},[491,571,548],{"class":497},[491,573,574],{"class":551},"https:\u002F\u002Ftyfrhxfejrawgdlhryfu.supabase.co\u002Ffunctions\u002Fv1\u002Fadvertiser-mcp",[491,576,510],{"class":497},[491,578,557],{"class":497},[491,580,582,584,587,589,591],{"class":493,"line":581},6,[491,583,537],{"class":497},[491,585,586],{"class":540},"headers",[491,588,510],{"class":497},[491,590,513],{"class":497},[491,592,516],{"class":497},[491,594,596,599,603,605,607,609,612],{"class":493,"line":595},7,[491,597,598],{"class":497},"        \"",[491,600,602],{"class":601},"swJcz","Authorization",[491,604,510],{"class":497},[491,606,513],{"class":497},[491,608,548],{"class":497},[491,610,611],{"class":551},"Bearer idl_adv_xxx",[491,613,614],{"class":497},"\"\n",[491,616,618],{"class":493,"line":617},8,[491,619,620],{"class":497},"      }\n",[491,622,624],{"class":493,"line":623},9,[491,625,626],{"class":497},"    }\n",[491,628,630],{"class":493,"line":629},10,[491,631,632],{"class":497},"  }\n",[491,634,636],{"class":493,"line":635},11,[491,637,638],{"class":497},"}\n",[228,640,642],{"id":641},"cursor","Cursor",[141,644,645,646,649],{},"Collez ceci dans ",[144,647,648],{},".cursor\u002Fmcp.json"," ou dans Cursor Settings → MCP.",[149,651,653],{"className":485,"code":652,"language":487,"meta":155,"style":155},"{\n  \"mcpServers\": {\n    \"idlen-advertiser\": {\n      \"url\": \"https:\u002F\u002Ftyfrhxfejrawgdlhryfu.supabase.co\u002Ffunctions\u002Fv1\u002Fadvertiser-mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer idl_adv_xxx\"\n      }\n    }\n  }\n}\n",[144,654,655,659,671,683,701,713,729,733,737,741],{"__ignoreMap":155},[491,656,657],{"class":493,"line":494},[491,658,498],{"class":497},[491,660,661,663,665,667,669],{"class":493,"line":501},[491,662,504],{"class":497},[491,664,482],{"class":507},[491,666,510],{"class":497},[491,668,513],{"class":497},[491,670,516],{"class":497},[491,672,673,675,677,679,681],{"class":493,"line":519},[491,674,522],{"class":497},[491,676,178],{"class":525},[491,678,510],{"class":497},[491,680,513],{"class":497},[491,682,516],{"class":497},[491,684,685,687,689,691,693,695,697,699],{"class":493,"line":534},[491,686,537],{"class":497},[491,688,565],{"class":540},[491,690,510],{"class":497},[491,692,513],{"class":497},[491,694,548],{"class":497},[491,696,574],{"class":551},[491,698,510],{"class":497},[491,700,557],{"class":497},[491,702,703,705,707,709,711],{"class":493,"line":560},[491,704,537],{"class":497},[491,706,586],{"class":540},[491,708,510],{"class":497},[491,710,513],{"class":497},[491,712,516],{"class":497},[491,714,715,717,719,721,723,725,727],{"class":493,"line":581},[491,716,598],{"class":497},[491,718,602],{"class":601},[491,720,510],{"class":497},[491,722,513],{"class":497},[491,724,548],{"class":497},[491,726,611],{"class":551},[491,728,614],{"class":497},[491,730,731],{"class":493,"line":595},[491,732,620],{"class":497},[491,734,735],{"class":493,"line":617},[491,736,626],{"class":497},[491,738,739],{"class":493,"line":623},[491,740,632],{"class":497},[491,742,743],{"class":493,"line":629},[491,744,638],{"class":497},[228,746,748],{"id":747},"chatgpt-et-les-autres-clients-mcp-distants","ChatGPT et les autres clients MCP distants",[141,750,751,752,201],{},"Utilisez l'URL et l'en-tête Authorization. Le client envoie ",[144,753,200],{},[149,755,758],{"className":756,"code":757,"language":154,"meta":155},[152],"URL\nhttps:\u002F\u002Ftyfrhxfejrawgdlhryfu.supabase.co\u002Ffunctions\u002Fv1\u002Fadvertiser-mcp\n\nHeader\nAuthorization: Bearer idl_adv_xxx\n",[144,759,757],{"__ignoreMap":155},[141,761,762,763,767,768,201],{},"Créez la clé dans Ads Manager sous ",[764,765,766],"strong",{},"Paramètres → Clés API",", avec Lecture et Écriture. La liste des routes est aussi dans le ",[470,769,773],{"href":770,"rel":771},"https:\u002F\u002Fwww.idlen.io\u002Fopenapi\u002Fadvertiser-api.yaml",[772],"nofollow","document OpenAPI",[775,776,777],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":155,"searchDepth":501,"depth":501,"links":779},[780,781,782,783],{"id":230,"depth":501,"text":231},{"id":475,"depth":501,"text":476},{"id":641,"depth":501,"text":642},{"id":747,"depth":501,"text":748},"Serveur MCP Streamable HTTP de l'API annonceurs, avec 14 outils","md",null,{},true,{"title":124,"description":784},"tDXOd6GNUk1tIWAgNiOsCS9SBz-QcE63Is3jPdDm464",[792,794],{"title":120,"path":121,"stem":122,"description":793,"children":-1},"Enregistrer une conversion depuis votre serveur avec une clé API annonceur",{"title":128,"path":129,"stem":130,"description":795,"children":-1},"Choisissez le bon parcours de documentation pour votre intégration",1793804440449]