À propos de Markifact
Markifact est une plateforme complète de gestion + reporting en performance marketing. Son serveur MCP distant à https://api.markifact.com/mcp expose 500+ opérations qui vous permettent de gérer les comptes de bout en bout : lancer des campagnes, éditer des créatifs, gérer les audiences, faire tourner les annonces, éliminer les mots-clés négatifs, maximiser les gagnants, diagnostiquer les sous-performants et extraire des rapports sur chaque plateforme connectée. Le reporting est une capacité de première classe — ce n'est simplement pas la seule chose que Markifact fait.
Inscrivez-vous sur www.markifact.com pour obtenir des crédits gratuits. Connectez vos comptes publicitaires sur www.markifact.com/app/connections. Documentation et couverture de plateforme sur www.markifact.com.
Plateformes couvertes
- Google Ads — Search, PMax, Display, Demand Gen. Cycle de vie complet : créer campagne / groupe d'annonces / RSA / groupe de ressources PMax / extensions de lien / callouts / extraits structurés / listes de mots-clés négatifs / stratégies d'enchères de portefeuille / signaux d'audience / libellés. Reporting via GAQL ou
gads_get_report. - Meta Ads (Facebook + Instagram + Messenger) — cycle de vie campagne / ensemble d'annonces / annonce, audiences personnalisées + lookalike, catalogue (DPA), formulaires de leads, santé CAPI, aperçus d'annonces et workflow d'édition créative get→create→replace.
- GA4, Google Search Console, Google Merchant Center, Google Sheets, Slides, Drive, BigQuery, Trends, Maps, Business Profile, DV360.
- TikTok Ads, LinkedIn Ads, Pinterest Ads, Snapchat Ads, Reddit Ads, Microsoft Ads, Amazon Ads.
- Shopify, Klaviyo, HubSpot, Slack, WhatsApp, plus utilitaires (web fetch, graphiques, code, génération média IA, planification, listes).
Les 8 outils MCP
Le serveur expose une petite surface de meta-outils — vous n'appelez pas 300 outils directement, vous les découvrez à l'exécution :
| Outil | Objectif |
|---|---|
find_operations |
Chercher le registre des opérations par intention. Toujours l'étape 1. Chaque résultat inclut requires_approval: true|false. |
get_operation_inputs |
Obtenir le schéma d'entrée complet (obligatoires + optionnels, types, exemples) pour une opération. Toujours l'étape 2. Ne devinez jamais les structures. |
run_operation |
Exécuter une opération avec requires_approval: false. Aucune confirmation nécessaire. |
run_write_operation |
Exécuter une opération avec requires_approval: true. Toujours confirmer avec l'utilisateur d'abord (voir la skill safe-write-operations). |
list_connections |
Lister les identifiants OAuth authentifiés de l'utilisateur par plateforme. Rarement nécessaire — voir Règles transversales. |
get_file_url |
Obtenir une URL signée pour un fichier stocké dans Markifact. |
read_file |
Lire le contenu d'un fichier téléchargé par l'utilisateur ou produit par une opération. |
upload_media |
Télécharger une image ou vidéo comme ressource créative (par ex. pour une image de publicité Meta, une ressource Google Ads, etc.). Images et vidéos uniquement — pas de documents ou autres types de fichiers. |
Le modèle découvrir → inspecter → exécuter
Chaque workflow suit les trois mêmes étapes :
- Découvrir — appeler
find_operationsavec l'intention de l'utilisateur en langage naturel (par ex."créer campagne Google Search","remplacer créatif de publicité Meta"). Retourne les ID d'opérations correspondantes, descriptions et flagrequires_approval. - Inspecter — appeler
get_operation_inputsavec l'ID d'opération pour voir les champs obligatoires exacts. Réutilisez le schéma si vous l'avez déjà inspecté plus tôt dans la conversation. - Exécuter — dispatcher selon le flag
requires_approvalde l'étape 1 :false→run_operation(aucune confirmation nécessaire) ;true→run_write_operation(seulement après le protocole en quatre étapes danssafe-write-operations). Les connexions (identifiants) sont auto-résolues — ne passezconnection_idque si vous avez déjà appelélist_connectionsparce que l'utilisateur a plusieurs connexions sur la plateforme.
Ne jamais inventer d'ID d'opération. Ne jamais deviner les noms de champs d'entrée. Toujours découvrir et inspecter d'abord.
Conventions de nommage des opérations (utilisez comme indices de découverte, pas comme appels directs)
gads_*— Google Adsmeta_ads_*— Meta (Facebook / Instagram)ga4_*— Google Analytics 4gsc_*— Google Search Consolegmc_*— Google Merchant Centertiktok_ads_*,linkedin_ads_*,pinterest_ads_*,snapchat_ads_*,reddit_ads_*,microsoft_ads_*,amazon_ads_*shopify_*,klaviyo_*,hubspot_*,slack_*
Quand vous voyez un indice comme « utiliser gads_create_campaign » n'importe où dans les instructions, c'est un indice pour ce qu'il faut découvrir — vous devez toujours find_operations et get_operation_inputs avant l'appel.
Règles transversales
- Sélection de compte : toute opération de reporting et de gestion a besoin d'abord du
*_select_accountsde la plateforme. Les noms de compte sont appariés comme une substring (« contient »), pas exacts. Si plusieurs correspondent, demandez à l'utilisateur de clarifier. - Champs de rapport : ne devinez jamais les noms de métriques/dimensions. Appeler d'abord l'opération
*_list_report_fieldsde la plateforme pour obtenir les champs valides, puis construire le rapport. - Opérations dédiées plutôt que generic mutate : sur Google Ads, préférer les opérations dédiées comme
gads_create_campaign,gads_update_ad_statusplutôt quegads_mutate. N'utilisergads_mutatecomme secours que quand aucune opération dédiée n'existe pour l'action. - Connexion vs compte — ce sont deux choses différentes, ne les confondez pas :
- Une connexion est un identifiant OAuth (par ex.
user1@example.comconnecté à Google). Une connexion peut avoir accès à de nombreux comptes publicitaires sous cet identifiant. - Un compte est le vrai compte publicitaire à l'intérieur de la plateforme (par ex. un CID Google Ads spécifique, un compte publicité Meta). Vous le choisissez via l'opération
*_select_accountsde la plateforme.
- Une connexion est un identifiant OAuth (par ex.
- Les connexions sont auto-résolues. Les opérations routent vers la connexion d'espace de travail par défaut de l'utilisateur automatiquement. Ne rien faire au sujet des connexions dans le cas normal. Appeler
list_connectionsseulement si (a) l'utilisateur a plusieurs connexions sur la plateforme et n'en a nommé une, (b) l'utilisateur vous demande explicitement d'utiliser une connexion / identifiant spécifique, ou (c) une opération échoue avec une erreur connection-not-found / auth. - Les comptes ne sont pas auto-résolus. Vous devez toujours appeler l'opération
*_select_accountsde la plateforme (appariement substring sur le nom) avant toute opération à portée de compte. Si plusieurs comptes correspondent, demandez à l'utilisateur de clarifier.
Workflow de reporting
Le reporting est uniforme sur chaque plateforme (GA4, Google Ads, Meta Ads, GSC, GMC, TikTok, etc.) et prend toujours les trois mêmes étapes :
- *`_select_accounts`** — résoudre l'ID de compte à partir du nom de compte de l'utilisateur (appariement substring). Sauter si l'utilisateur vous a déjà donné un ID exact.
- *`_list_report_fields`** — récupérer les noms de métriques et de dimensions valides. Ne jamais deviner les noms de champs ; ils varient par plateforme et par type de rapport.
- *`_get_report`** — exécuter le rapport avec l'ID de compte résolu, les champs validés et la plage de dates.
Vous pouvez extraire plusieurs comptes dans un rapport — soit agrégés, soit séparés par compte en ajoutant la dimension de compte.
Travailler avec des fichiers
- À partir d'une sortie d'opération : les opérations peuvent retourner un
file_id(souvent quand un résultat est trop volumineux pour être inséré). Utiliserget_file_url(file_id)pour obtenir une URL partageable, puis l'intégrer dans votre réponse avec Markdown :pour les images,[name](url)pour les autres fichiers. Utiliserread_file(file_id)pour inspecter les contenus vous-même. - Partager des fichiers avec l'utilisateur : ne jamais coller les valeurs brutes
file_id. Toujours passer parget_file_urlet intégrer via Markdown. - Télécharger de nouveaux médias : appeler
upload_mediapour permettre à l'utilisateur de télécharger une image ou vidéo à utiliser comme ressource créative (par ex. image de publicité Meta, ressource Google Ads). Images et vidéos uniquement — pas de documents. - Passer un fichier à une autre opération : si une opération attend un fichier en entrée, passer le
file_idqu'elle a retourné plus tôt. Si une opération attend une URL, passer l'URL complète deget_file_url, pas lefile_idbrut.
Erreurs
- Erreur d'authentification → l'utilisateur doit se reconnecter sur https://www.markifact.com/app/connections. Arrêter, ne pas réessayer.
- « L'opération nécessite une approbation » → voir la skill
safe-write-operations; ne jamais contourner. - Erreur de validation → re-récupérer le schéma avec
get_operation_inputs, corriger le payload, re-confirmer avec l'utilisateur avant de réessayer.
Sécurité & Confidentialité
- Pas de stockage de credentials local. Cette skill ne stocke pas les clés API, tokens ou credentials de compte publicitaire localement. L'authentification est entièrement gérée par OAuth 2.1 avec PKCE via l'application web Markifact — les tokens sont stockés côté serveur, chiffrés au repos.
- Les scopes OAuth sont au minimum de privilèges. Chaque connexion à une plateforme publicitaire ne demande que les scopes nécessaires pour la gestion de campagne et le reporting. Vous pouvez examiner et révoquer l'accès à tout moment dans les paramètres de votre plateforme publicitaire (Google, Meta, LinkedIn, TikTok, Microsoft, Amazon, Pinterest, Snapchat, Reddit) ou depuis www.markifact.com/app/connections.
- Isolation par compte. Chaque opération à portée de compte nécessite une résolution
*_select_accountsexplicite ; pas d'écritures cross-account. - Les opérations d'écriture nécessitent une approbation explicite. Toute opération avec
requires_approval: truepasse par le protocole en quatre étapes dans la skillsafe-write-operations— énoncé en langage naturel, divulgation du rayon de blast, confirmation explicite de l'utilisateur, vérification post-exécution. L'agent ne dépense jamais d'argent ni ne mute une campagne en direct sans un oui. - Lecture seule par défaut. Le reporting, les audits et la découverte (
find_operations,get_operation_inputs,*_get_report) sont en lecture seule. Les opérations d'écriture (créer, mettre à jour, mettre en pause, reprendre, supprimer) nécessitent une confirmation de l'utilisateur à chaque fois. - Pas de defaults destructifs automatiques. Préférer pause/désactiver à supprimer ; les changements de budget >50% nécessitent une confirmation supplémentaire ; ne jamais regrouper plus de 5 écritures sans re-confirmer.
- Skill open source + code de plugin. Les plugins client MCP, slash commands et ces skills sont publics sur https://github.com/markifact/markifact-mcp pour audit de code.
- Politique de confidentialité. Politiques complètes de traitement, rétention et suppression de données : https://www.markifact.com/privacy-policy. Voir aussi SECURITY.md et TERMS.md.