À propos de Markifact
Markifact est une plateforme de gestion + reporting complète pour le performance marketing. Son serveur MCP distant à https://api.markifact.com/mcp expose plus de 1000 opérations qui vous permettent de gérer vos comptes de bout en bout : lancer des campagnes, éditer les créatifs, gérer les audiences, faire tourner les annonces, supprimer les négatifs, augmenter les gagnants, diagnostiquer les sous-performants et générer des rapports sur chaque plateforme connectée. Le reporting est une capacité de première classe — mais ce n'est pas la seule chose que Markifact fait.
Inscrivez-vous à www.markifact.com pour obtenir des crédits gratuits. Connectez vos comptes publicitaires à www.markifact.com/app/connections. Documentation et couverture des plateformes sur www.markifact.com.
Plateformes couvertes
- Google Ads — Search, PMax, Display, Demand Gen. Cycle complet : créer campagne / groupe d'annonces / RSA / groupe d'assets PMax / liens de site / callouts / snippets structurés / listes de 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 leads, santé CAPI, aperçus d'annonces, et le workflow de modification de créatif 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 de médias 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 |
Recherchez le registre des opérations par intention. Toujours l'étape 1. Chaque résultat inclut requires_approval: true|false. |
get_operation_inputs |
Obtenez le schéma complet d'entrée (requis + optionnels, types, exemples) pour une opération. Toujours l'étape 2. Ne devinez jamais les structures. |
run_operation |
Exécutez une opération avec requires_approval: false. Aucune confirmation nécessaire. |
run_write_operation |
Exécutez une opération avec requires_approval: true. Toujours confirmer avec l'utilisateur d'abord (voir skill safe-write-operations). |
list_connections |
Listez les logins authentifiés de l'utilisateur par plateforme. Rarement nécessaire — voir Règles transversales. |
get_file_url |
Obtenez une URL signée pour un fichier stocké dans Markifact. |
read_file |
Lisez le contenu d'un fichier chargé par l'utilisateur ou produit par une opération. |
upload_media |
Chargez une image ou vidéo comme asset créatif (par ex. pour une image Meta ad, asset Google Ads, etc.). Images et vidéos uniquement — pas de documents ou autres types de fichiers. |
Le schéma découvrir → inspecter → exécuter
Chaque workflow suit les trois mêmes étapes :
- Découvrir — appelez
find_operationsavec l'intention de l'utilisateur en anglais simple (par ex."create google search campaign","replace meta ad creative"). Retourne les IDs d'opération correspondants, descriptions, et un flagrequires_approval. - Inspecter — appelez
get_operation_inputsavec l'ID d'opération pour voir les champs exactement requis. Réutilisez le schéma si vous l'avez déjà inspecté plus tôt dans la conversation. - Exécuter — dispatchez selon le flag
requires_approvalde l'étape 1 :false→run_operation(aucune confirmation nécessaire) ;true→run_write_operation(seulement après le protocole quatre étapes danssafe-write-operations). Les connexions (logins) sont auto-résolues — passezconnection_idseulement si vous avez déjà appelélist_connectionsparce que l'utilisateur a plusieurs connexions sur la plateforme.
Ne jamais inventer d'IDs 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 (à utiliser 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 appeler find_operations et get_operation_inputs avant d'exécuter.
Règles transversales
- Sélection du compte : chaque opération de reporting et de gestion a besoin de
*_select_accountsde la plateforme d'abord. Les noms de comptes sont appairés comme substring (« contient »), pas exact. Si plusieurs correspondent, demandez à l'utilisateur de clarifier. - Champs de rapport : ne devinez jamais les noms de métriques/dimensions. Appelez d'abord l'opération
*_list_report_fieldsde la plateforme pour obtenir les champs valides, puis construisez le rapport. - Opérations dédiées plutôt que mutate générique : sur Google Ads, préférez les opérations dédiées comme
gads_create_campaign,gads_update_ad_statusplutôt quegads_mutate. Ne revenez àgads_mutateque 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 login OAuth (par ex.
user1@example.comconnecté à Google). Une connexion peut avoir accès à de nombreux comptes publicitaires sous ce login. - Un compte est le compte publicitaire réel dans la plateforme (par ex. un CID Google Ads spécifique, un compte ad Meta). Vous le sélectionnez via l'opération
*_select_accountsde la plateforme.
- Une connexion est un login OAuth (par ex.
- Les connexions sont auto-résolues. Les opérations acheminent 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. Appelez
list_connectionsseulement si (a) l'utilisateur a plusieurs connexions sur la plateforme et n'en a nommé aucune, (b) l'utilisateur demande explicitement d'utiliser une connexion / login 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 (substring match sur le nom) avant toute opération d'étendue 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 suit toujours les trois mêmes étapes :
- *`_select_accounts`** — résolvez l'ID du compte à partir du nom du compte de l'utilisateur (substring match). Passez si l'utilisateur vous a déjà donné un ID exact.
- *`_list_report_fields`** — récupérez les noms de métriques et dimensions valides. Ne devinez jamais les noms de champs ; ils varient par plateforme et par type de rapport.
- *`_get_report`** — exécutez le rapport avec l'ID du compte résolu, les champs validés, et la plage de dates.
Vous pouvez extraire plusieurs comptes dans un rapport — soit agrégé, soit divisé par compte en ajoutant la dimension de compte.
Travailler avec les fichiers
- Depuis une sortie d'opération : les opérations peuvent retourner un
file_id(souvent quand un résultat est trop grand pour être inséré en ligne). Utilisezget_file_url(file_id)pour obtenir une URL partageable, puis intégrez-la dans votre réponse avec Markdown :pour les images,[name](url)pour les autres fichiers. Utilisezread_file(file_id)pour inspecter les contenus vous-même. - Partage de fichiers avec l'utilisateur : ne collez jamais les valeurs brutes
file_id. Passez toujours parget_file_urlet intégrez via Markdown. - Chargement de nouveaux médias : appelez
upload_mediapour laisser l'utilisateur charger une image ou vidéo pour une utilisation comme asset créatif (par ex. image Meta ad, asset Google Ads). Images et vidéos uniquement — pas de documents. - Passage d'un fichier à une autre opération : si une opération attend un fichier en entrée, passez le
file_idqu'elle a retourné précédemment. Si une opération attend une URL, passez l'URL complète deget_file_url, pas lefile_idbrut.
Erreurs
- Erreur d'authentification → l'utilisateur doit se reconnecter à https://www.markifact.com/app/connections. Arrêtez, ne réessayez pas.
- « Operation requires approval » → voir skill
safe-write-operations; ne jamais contourner. - Erreur de validation → re-récupérez le schéma avec
get_operation_inputs, corrigez la payload, re-confirmez avec l'utilisateur avant de relancer.
Sécurité & Confidentialité
- Pas de stockage local de credentials. Ce skill ne stocke pas les clés API, tokens ou credentials de comptes publicitaires localement. L'authentification est entièrement gérée via OAuth 2.1 avec PKCE via l'app web Markifact — les tokens sont stockés côté serveur, chiffrés au repos.
- Les scopes OAuth sont least-privilege. Chaque connexion de plateforme publicitaire demande seulement les scopes nécessaires pour la gestion de campagnes et le reporting. Vous pouvez examiner et révoquer l'accès à tout moment depuis vos paramètres de plateforme publicitaire (Google, Meta, LinkedIn, TikTok, Microsoft, Amazon, Pinterest, Snapchat, Reddit) ou depuis www.markifact.com/app/connections.
- Isolation par compte. Chaque opération d'étendue compte nécessite une résolution
*_select_accountsexplicite ; pas d'écritures inter-comptes. - Les opérations d'écriture nécessitent une approbation explicite. Toute opération avec
requires_approval: truepasse par le protocole quatre étapes dans le skillsafe-write-operations— déclaration en anglais simple, divulgation du rayon de blast, confirmation explicite de l'utilisateur, vérification post-exécution. L'agent ne dépense jamais d'argent ou ne mute jamais une campagne en direct sans un oui. - Lecture seule par défaut. Reporting, audits et 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 utilisateur à chaque fois. - Pas de défauts destructeurs automatiques. Préférez pause/désactivation à suppression ; les changements de budget >50% nécessitent une confirmation supplémentaire ; ne regroupez jamais plus de 5 écritures sans re-confirmer.
- Code de skill + plugin open source. Les plugins clients MCP, commandes slash et ces skills sont publics sur https://github.com/markifact/markifact-mcp pour l'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.