negative-keyword-sweep

Par markifact · markifact-mcp

Identifiez les dépenses inutiles dans les termes de recherche Google Ads et ajoutez des mots-clés négatifs au bon niveau (liste de compte, campagne ou groupe d'annonces). À utiliser lorsque l'utilisateur dit « trouver les mots-clés inutiles », « arrêter de gaspiller sur de mauvaises recherches », ou souhaite nettoyer ses termes de recherche.

npx skills add https://github.com/markifact/markifact-mcp --skill negative-keyword-sweep

Objectif

Extraire le rapport des termes de recherche, identifier les dépenses improductives, les regrouper intelligemment et ajouter des mots-clés négatifs au bon niveau — sans bloquer l'intention légitime.

Entrées à confirmer (batch)

  1. Nom du compte (substring) — obligatoire.
  2. Périmètre — une seule campagne, liste de campagnes, ou « toutes les campagnes Search » — obligatoire.
  3. Période de lookback — 30 jours par défaut ; l'utilisateur peut modifier (60 / 90).
  4. Seuils de gaspillage — valeurs par défaut ; permettre la personnalisation :
    • No-converter : dépense ≥ $X sur la période ET 0 conversion. $X par défaut = 2× CPA cible, ou $50 s'il n'y a pas de cible.
    • Low-CVR offender : dépense ≥ 3× CPA cible ET CVR < 25% du CVR du compte.
    • Off-brand / off-intent : termes correspondant à une liste de refus (p. ex. free, jobs, careers, tutorial, review, salary, download, cheap, pirate, crack) — calibrée selon le secteur.
  5. Préférence de périmètre des mots-clés négatifs — comportement par défaut :
    • Déchets récurrents vus dans plusieurs campagnes → liste de mots-clés négatifs partagés au niveau du compte.
    • Gaspillage observé dans une seule campagne → niveau de la campagne.
    • Déviation simple (p. ex. « free » nuit uniquement à un groupe d'annonces de produit payant) → niveau du groupe d'annonces.
    • Type de correspondance par défaut : phrase, sauf pour les déchets évidents à un seul mot → broad n'est pas une option (les mots-clés négatifs n'ont pas de broad), utiliser exact pour les mots uniques comme free.

Workflow

  1. Discover ops : gads_select_accounts, gads_list_report_fields, gads_get_report, gads_create_negative_keyword_list, gads_attach_negative_list_to_campaigns, gads_add_keywords_to_negative_list, gads_add_negative_keywords_to_campaigns, gads_add_negative_keywords_to_ad_groups.
  2. Inspect chaque op via get_operation_inputs.
  3. Resolve account (substring).
  4. Extraire le rapport des termes de recherche via gads_get_report à la granularité du terme de recherche (ressource search_term_view). Champs obligatoires : search_term, campaign_id/name, ad_group_id/name, impressions, clicks, cost, conversions, conv_value, ctr, cvr.
  5. Calculer les baselines : CVR au niveau du compte sur la période. Calculer le CPA cible s'il n'est pas fourni (utiliser l'historique du compte / la moyenne sur le périmètre).
  6. Appliquer les seuils → liste de candidats. Tagger chaque candidat avec la raison du déclenchement (no-conv, low-CVR, denylist).
  7. Regrouper les candidats par intention. Grouper sur les racines / thèmes partagés (p. ex. free trial spreadsheet, free template excel, free download → cluster "free*"). Pour chaque cluster, proposer :
    • Mot(s)-clé(s) négatif(s) (les tokens minimum nécessaires pour bloquer le cluster — généralement une phrase).
    • Type de correspondance (phrase par défaut ; exact pour les hits de denylist à un seul token ; phrase pour les patterns multi-mots).
    • Périmètre (compte / campagne / groupe d'annonces) selon les règles ci-dessus.
  8. Construire un tableau d'aperçu montrant chaque mot-clé négatif proposé avec : keyword, match, scope, campagnes/groupes d'annonces cibles, dépense gaspillée qui aurait été bloquée, et un échantillon de 1–3 termes de recherche qu'il couvre. Attendre la confirmation de l'utilisateur.
  9. Exécuter :
    • Batch au niveau du compte → si une liste avec le bon objectif existe déjà, utiliser gads_add_keywords_to_negative_list. Sinon, gads_create_negative_keyword_list puis gads_add_keywords_to_negative_list puis gads_attach_negative_list_to_campaigns.
    • Batch au niveau de la campagne → gads_add_negative_keywords_to_campaigns.
    • Batch au niveau du groupe d'annonces → gads_add_negative_keywords_to_ad_groups.
  10. Confirmer : comptage par périmètre, dépense estimée totale bloquée.

Utiliser safe-write-operations pour les étapes 9 et suivantes.

Règles spécifiques à la plateforme que le modèle DOIT respecter

  • Les mots-clés négatifs n'ont pas de broad match. Les types de correspondance sont EXACT, PHRASE, BROAD — mais la documentation Google note que les mots-clés négatifs en broad match ne bloquent que les mots exacts et leurs variantes proches. Le modèle mental : préférer phrase pour les clusters, exact pour les déchets à un seul mot.
  • Une phrase négative bloque toute requête contenant la phrase dans l'ordre, en ignorant les variantes proches sur les mots individuels. Ne pas ajouter running shoes en exact si vous visez à bloquer cheap running shoes, red running shoes, etc.
  • Ne sur-négativez pas. Négativer un terme large unique comme software pour un vendeur de logiciels bloquera l'intention légitime. Toujours examiner l'échantillon complet des termes de recherche du cluster avant d'ajouter.
  • Les listes partagées au niveau du compte passent mieux à l'échelle. Les utiliser pour les déchets intemporels (jobs, careers, download, crack). Ne pas polluer les campagnes avec le même mot-clé négatif répété 10 fois.
  • N'ajoutez pas de mots-clés négatifs qui entrent en conflit avec les mots-clés actifs. Si le groupe d'annonces enchérit sur free trial, n'ajoutez pas free comme négatif — Google arrêtera silencieusement la diffusion.
  • PMax a sa propre surface de mots-clés négatifs (niveau du compte uniquement, a historiquement nécessité une demande de support ; vérifier la disponibilité actuelle de l'op). Les mots-clés négatifs Search ne s'appliquent pas automatiquement à PMax.
  • Termes de marque : ne jamais négativer la marque. Toujours exclure les variantes de marque des clusters de candidats.
  • Termes de recherche symétriques vs asymétriques : si un terme a converti ne serait-ce qu'une fois sur la période (≥ 1 conv), le supprimer des candidats indépendamment des seuils CVR.

Modes de défaillance et récupérations

  • Rapport des termes de recherche vide ou presque vide → campagne trop nouvelle, période de lookback trop courte, ou la campagne n'est pas Search/PMax. Informer l'utilisateur.
  • Rejet « Negative keyword conflicts with positive keyword » → lister le conflit et demander à l'utilisateur de choisir.
  • Cluster contenant gagnants et perdants (certains termes convertissent, d'autres non) → ne pas ajouter une phrase négative ; recommander une structure de groupe d'annonces plus serrée ou des mots-clés négatifs exact à mot unique à la place.

Sortie vers l'utilisateur

Aperçu :

Negative Match Scope Target Wasted spend blocked Sample terms
free EXACT account list "Junk - Free" all Search $312 free crm, free tool
jobs PHRASE account list "Junk - Jobs" all Search $147 crm jobs, software jobs
...

Après exécution :

Scope Negatives added Spend that would have been blocked (last 30d)
Account list <n> $<x>
Campaign <n> $<x>
Ad group <n> $<x>

Terminer par : « Vérifier les termes de recherche à nouveau dans 30 jours — les patterns changent à mesure que les mots-clés mûrissent. »

Skills similaires