À 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 plus de 300 opérations qui vous permettent de gérer vos comptes de bout en bout : lancer des campagnes, éditer des créatifs, gérer des audiences, faire tourner les annonces, nettoyer les listes d'exclusions, scaler 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 fait Markifact.
Inscrivez-vous sur www.markifact.com pour des crédits gratuits. Connectez vos comptes publicitaires sur www.markifact.com/app/connections. Documentation et couverture des plateformes 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 d'assets PMax / sitelinks / callouts / snippets structurés / listes d'exclusions / stratégies d'enchères portfolio / signaux d'audiences / labels. 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 le workflow d'édition 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 des utilitaires (web fetch, charts, code, AI media gen, scheduling, lists).
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 |
Rechercher 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 (champs requis + 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 en tant que creative asset (par ex. image Meta, asset Google Ads, etc.). Images et vidéos uniquement — pas de documents ou autres types de fichiers. |
Le pattern découvrir → inspecter → exécuter
Chaque workflow suit les trois mêmes étapes :
- Découvrir — appeler
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 drapeaurequires_approval. - Inspecter — appeler
get_operation_inputsavec l'ID de l'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 — dispatcher selon le drapeau
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'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 (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 sur ce à découvrir — vous devez toujours faire find_operations et get_operation_inputs avant d'appeler.
Règles transversales
- Sélection de compte : chaque opération de reporting et de gestion a besoin du
*_select_accountsde la plateforme en premier. Les noms de compte sont appariés en substring (« contient »), pas en exact. Si plusieurs correspondent, demandez à l'utilisateur de désambiguïser. - Champs de rapport : ne devinez jamais les noms de métrique/dimension. 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 retombez surgads_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 identifiant OAuth (par ex.
user1@example.comconnecté à Google). Une connexion peut avoir accès à plusieurs comptes publicitaires sous cet identifiant. - Un compte est le compte publicitaire réel dans la plateforme (par ex. un CID Google Ads spécifique, un compte Meta). Vous le sélectionnez 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 faites rien concernant les 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 / 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 au niveau du compte. Si plusieurs comptes correspondent, demandez à l'utilisateur de désambiguïser.
Workflow de reporting
Le reporting est uniforme sur chaque plateforme (GA4, Google Ads, Meta Ads, GSC, GMC, TikTok, etc.) et prend toujours les mêmes trois étapes :
- *`_select_accounts`** — résoudre l'ID du compte à partir du nom du compte de l'utilisateur (appariement substring). Ignorez si l'utilisateur vous a déjà donné un ID exact.
- *`_list_report_fields`** — récupérer les noms valides de métrique et dimension. Ne devinez jamais 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 divisés par compte en ajoutant la dimension du 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 gros pour être en ligne). Utilisezget_file_url(file_id)pour obtenir une URL partageable, puis intégrez dans votre réponse avec Markdown :pour les images,[name](url)pour les autres fichiers. Utilisezread_file(file_id)pour inspecter vous-même le contenu. - Partager des fichiers avec l'utilisateur : ne collez jamais de valeurs brutes de
file_id. Allez toujours viaget_file_urlet intégrez via Markdown. - Télécharger de nouveaux médias : appelez
upload_mediapour permettre à l'utilisateur de télécharger une image ou vidéo pour utilisation comme creative asset (par ex. image Meta, asset 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, passez le
file_idqu'elle a retourné plus tôt. 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 sur https://www.markifact.com/app/connections. Arrêtez, ne réessayez pas.
- « Operation requires approval » → voir la skill
safe-write-operations; ne contournez jamais. - Erreur de validation → re-récupérez le schéma avec
get_operation_inputs, corrigez la payload, re-confirmez avec l'utilisateur avant de réessayer.
Sécurité & Confidentialité
- Aucun stockage local de credentials. Cette skill ne stocke pas les clés API, tokens, ou credentials de compte publicitaire 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 au minimum de privilèges. Chaque connexion à plateforme publicitaire demande seulement les scopes nécessaires pour la gestion de campagne et le reporting. Vous pouvez examiner et révoquer l'accès à tout moment depuis 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 au niveau du compte requiert une résolution explicite de
*_select_accounts; aucune écriture cross-account. - Les opérations d'écriture requièrent une approbation explicite. Toute opération avec
requires_approval: truepasse par le protocole en quatre étapes dans la skillsafe-write-operations— déclaration en anglais simple, divulgation du rayon d'impact, confirmation explicite de l'utilisateur, vérification post-exécution. L'agent ne dépense jamais d'argent ou ne mute jamais une campagne live 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) requièrent une confirmation de l'utilisateur à chaque fois. - Aucune valeur par défaut destructrice automatique. Préférez pause/désactiver à supprimer ; les changements de budget >50% requièrent une confirmation supplémentaire ; ne groupez jamais plus de 5 écritures sans re-confirmer.
- Skill open source + code 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 gestion, rétention, et suppression de données : https://www.markifact.com/privacy-policy. Voir aussi SECURITY.md et TERMS.md.