Google Ads MCP: byg hele træet fra din agent i ét hug

Hermoso's MCP-server opretter en Google Ads-kampagne, annoncegruppe, responsiv søge- eller displayannonce og dens søgeord i ét atomisk mutate, så en afvist annonce betyder, at budgettet heller ikke blev oprettet. Performance Max bygges på samme måde, inklusive asset-gruppen. Dertil kommer Keyword Planner-research, konverteringssporing, sitelinks, Merchant Center-feeds der både læses og skrives, GAQL-rapportering, Google Analytics 4 til at se, hvad klikkene faktisk gjorde, og en bekræftelsesgate på alt, der starter forbrug.

Findes der en Google Ads MCP-server? Ja. Hermoso er en hostet Google Ads MCP-server. Tilføj https://app.hermoso.ai/mcp til Claude, ChatGPT eller Cursor, og forbind din Google Ads-konto én gang. Din assistent kan så bygge søge-, display- og Performance Max-kampagner, finde søgeordsidéer, sætte budgetter, bud og målretning og køre rapporter. At tænde en kampagne kræver altid din udtrykkelige bekræftelse.

Google Ads er et træ, og det er i træer, scriptet kampagneoprettelse normalt går galt. Du opretter et budget, så en kampagne, så en annoncegruppe, så en annonce. Bliver annoncen afvist på fjerde trin, står du tilbage med tre forældreløse objekter og et budget, du ikke ville have. At rydde op i det i hånden er grunden til, at de fleste opgiver at automatisere Google Ads.

Hermosos MCP-server bygger hele træet i én atomisk operation, med midlertidige ressource-id'er, så børnene kan henvise til forældre, der endnu ikke findes. Enten kommer kampagnen, annoncegruppen, annoncen og søgeordene alle til at eksistere, eller ingen af dem gør. En afvist annonce betyder, at budgettet heller aldrig blev oprettet.

Installér den én gang: i Claude.ai eller Claude Desktop indsætter du https://app.hermoso.ai/mcp under Indstillinger → Connectors og godkender den med din Hermoso-konto. I en kodeagent er det én kommando: /plugin marketplace add hermoso-ai/hermoso og derefter /plugin install hermoso@hermoso i Claude Code, codex plugin marketplace add hermoso-ai/hermoso og derefter codex plugin add hermoso@hermoso i Codex, eller npx skills add hermoso-ai/hermoso -a cursor i Cursor (giv din egen agent navn efter -a), og log derefter ind én gang med npx -y hermoso auth login. Fuld opsætning findes på MCP- og CLI-siden.

Google Ads-værktøjerne

Byg. create_google_ads_campaign, create_google_ads_ad_group, create_google_ads_ad, add_google_ads_keywords, create_google_ads_performance_max_campaign, upload_google_ads_asset, add_google_ads_assets til sitelinks, callouts og strukturerede uddrag.

Konfigurér. set_google_ads_budget, set_google_ads_bidding (seks strategier), set_google_ads_targeting (geo og sprog), find_google_ads_locations, set_google_ads_networks (Search-partnere og Display til eller fra), create_google_ads_conversion_action og list_google_ads_conversion_actions.

Research. google_ads_keyword_ideas bringer Keyword Planner ind i samtalen: reelle månedlige søgevolumener, konkurrence og bud-intervaller for top-of-page, ud fra et sæt søgeord, en landingsside eller et helt website.

Læs og ændr. list_google_ads_campaigns, google_ads_report til vilkårlig GAQL, google_ads_change_history til at se, hvad der flyttede sig i kontoen og hvornår, delete_google_ads_object til at fjerne ét objekt, og set_google_ads_status, den ene bekræftelsesstyrede kontakt, der starter reelt forbrug.

create_google_ads_campaign understøtter også en prøvekørselstilstand, så en agent kan validere et helt træ mod den live API uden at oprette noget. Det er en god standard, når den foreslår en plan, du skal godkende.

Hvad din agent kan gøre med Google Ads MCP

Hver række er et rigtigt værktøj på serveren. Spørg i almindeligt sprog, og agenten vælger, hvilke der skal køres.

OpgaveVærktøjerHvad der sker
Byg en Search- eller Display-kampagnecreate_google_ads_campaign, create_google_ads_ad_group, create_google_ads_ad, add_google_ads_keywordsBudget, kampagne, annoncegruppe, responsiv annonce og søgeord i én atomisk operation, oprettet på pause. En prøvekørsel tjekker hele træet mod den live API først.
Byg Performance Maxcreate_google_ads_performance_max_campaignÉn kampagne på tværs af Search, YouTube, Display, Discover, Gmail og Maps, med sin asset-gruppe, oprettet på pause. Den nægter at køre på en konto uden en aktiv konverteringshandling.
Søgeordsresearchgoogle_ads_keyword_ideasGoogles Keyword Planner: månedligt søgevolumen, konkurrence og bud-intervaller for top-of-page ud fra startsøgeord, en landingsside eller et website.
Sitelinks og calloutsadd_google_ads_assets, upload_google_ads_assetOpretter sitelinks, callouts og strukturerede uddrag og knytter dem til en kampagne eller annoncegruppe. Uploader billedassets, dine eller Hermosos.
Målretning og netværkset_google_ads_targeting, find_google_ads_locations, set_google_ads_networksLokationer og sprog efter navn, og Search-partnere eller Display tændt eller slukket.
Bud og budgetset_google_ads_bidding, set_google_ads_budgetSeks budstrategier og det daglige budget. Hvis du hæver et aktivt budget, bliver du bedt om bekræftelse.
Konverteringssporingcreate_google_ads_conversion_action, list_google_ads_conversion_actionsOpretter konverteringshandlinger og siger, om smart bidding kan virke på kontoen.
Rapportergoogle_ads_report, list_google_ads_campaignsEnhver GAQL-forespørgsel: kampagner, annoncegrupper, annoncer, søgeord, søgetermer, demografi og geografi.
Hvad der ændrede siggoogle_ads_change_historyHvem eller hvad der ændrede kontoen, og hvornår.
Start, pause eller fjernset_google_ads_status, delete_google_ads_objectAktivering tænder for reelt forbrug og kører ikke uden en udtrykkelig bekræftelse.
Merchant Centerlist_merchant_accounts, list_merchant_products, list_merchant_issuesLæser det feed, en Shopping- eller detail-Performance Max-kampagne annoncerer med, og hvorfor et produkt er afvist.
Forbind GA4link_google_ads_to_analytics, list_analytics_google_ads_links, create_analytics_key_eventForbinder en GA4-ejendom, så dens nøglehændelser kan importeres som Google Ads-konverteringer.

Eksempler på prompts

Indsæt en af disse i Claude, ChatGPT eller Cursor, når Hermoso er forbundet.

  • “Find 30 søgeord til vores projektstyringsapp med et søgevolumen over 1.000 om måneden i USA, og gruppér dem efter intention.”
    google_ads_keyword_ideas returnerer Keyword Planner-volumener, konkurrence og bud-intervaller, og agenten grupperer dem.
  • “Byg en pauset Search-kampagne til de søgeord: $50 om dagen, USA og Canada, engelsk, maksimér konverteringer.”
    create_google_ads_campaign bygger budget, kampagne, annoncegruppe, annonce og søgeord i én atomisk operation, på pause, og læser derefter tilbage.
  • “Opsæt en Performance Max-kampagne til vores Shopify-katalog med vores Merchant Center-feed.”
    list_merchant_accounts vælger butikken, og create_google_ads_performance_max_campaign bygger den på pause med feedet tilknyttet.
  • “Hvilke søgetermer brugte penge sidste måned uden at konvertere? Tilføj de ti værste som negative.”
    google_ads_report henter søgetermrapporten, derefter tilføjer add_google_ads_keywords de negative søgeord.
  • “Tilføj fire sitelinks til vores brand-kampagne: priser, demo, cases og kontakt.”
    add_google_ads_assets opretter sitelinks og knytter dem til kampagnen.
  • “Slå Search-partnere fra på alle kampagner, og vis mig før og efter.”
    set_google_ads_networks læser den nuværende indstilling først og ændrer den kampagne for kampagne.
  • “Nogen ændrede vores bud om fredagen. Hvad ændrede sig?”
    google_ads_change_history viser ændringerne med tidspunkter.
  • “Forbind vores GA4-ejendom, så tilmeldinger tæller som konverteringer i Google Ads.”
    link_google_ads_to_analytics forbinder de to, og create_analytics_key_event markerer tilmeldingshændelsen som nøglehændelse.

Performance Max, bygget på samme måde

create_google_ads_performance_max_campaign bygger Googles kampagnetype på tværs af flader (Search, YouTube, Display, Discover, Gmail og Maps fra én kampagne), og den bygges i én atomisk operation, fordi Google kræver netop det: budget, kampagne, lokations- og sprogmålretning, asset-gruppen og alle asset-links går op samtidig, så en afvist asset ikke efterlader en halvbygget kampagne. Den oprettes på pause, og hele træet læses tilbage fra Google, før din agent fortæller dig, at det findes.

Googles minimumskrav til assets tjekkes her, før noget sendes, så et manglende kvadratisk billede giver en klar besked og ikke en uigennemsigtig afvisning fra API'et: 3–15 overskrifter på højst 30 tegn, 1–5 lange overskrifter på op til 90, 2–5 beskrivelser på op til 90, ét virksomhedsnavn på op til 25, og mindst ét logo, ét markedsføringsbillede og ét kvadratisk markedsføringsbillede. Upload billederne med upload_google_ads_asset først, og angiv ressourcenavnene. En YouTube-video er valgfri. Google genererer en fra asset-gruppen, hvis du lader den være ude.

Performance Max har ingen søgeord og ingen manuel budgivning: den optimerer kun mod konverteringer. Derfor nægter bygningen at køre på en konto uden en aktiv konverteringshandling, i stedet for at oprette en kampagne, der ikke kan optimere, og den nævner begge veje ud: opret en med create_google_ads_conversion_action, eller brug en strategi, der ikke kræver den. Brandretningslinjer er slået til som standard for nye PMax-kampagner siden Google Ads API v21, hvilket ændrer, hvor virksomhedsnavnet og logoet knyttes; Hermoso linker dem til kampagnen for dig.

Performance Max til Shopping-feed (detail) fungerer på samme måde: angiv merchantCenterId, så annoncerer kampagnen med din Merchant Center-katalog, og feedLabel indsnævrer den til ét feed. Den bygges og læses tilbage præcis som kampagnen ovenfor. Tilbagelæsningen viser den Merchant Center-konto og det feedlabel, Google faktisk gemte, så du kan se, at det virkelig er en detail-kampagne, og ikke bare tage vores ord for det. Den annoncerer hele feedet under én rod-listing-gruppe; opdeling af et feed efter brand, kategori eller brugerdefineret label er ikke bygget, og det afvises ved navn i stedet for at blive ignoreret stille, så du aldrig kan tro, at du har indsnævret et feed, når du ikke har.

Merchant Center, så agenten ved, hvad den sælger

“Hvorfor vises det her produkt ikke?” er et spørgsmål, som Google Ads-rapportering strukturelt ikke kan besvare, fordi et afvist produkt ingen visninger har at rapportere på. Svaret findes i Merchant Center, og den samme Google-forbindelse når derind uden et ekstra login.

Din agent kan liste de Merchant Center-konti, din forbundne Google-konto har adgang til, med list_merchant_accounts (et bureau har typisk flere, så den spørger, hvilken butik der menes, i stedet for at gætte), læse produkterne i et feed med list_merchant_products (det faktiske katalog, en Shopping- eller detail-Performance Max-kampagne viser), og læse de kontoniveau-problemer, Google rejser over for kontoen, med list_merchant_issues. Det er nok til at skrive annoncetekst om produkter, der faktisk findes, til priser, der faktisk er aktuelle, og til at forklare en stille kampagne.

Den kan også skrive. create_merchant_data_source opretter et API-produktfeed, upsert_merchant_product lægger et produkt i det, update_merchant_product ændrer de felter, der flytter sig dagligt (pris og tilgængelighed), og delete_merchant_product og delete_merchant_data_source fjerner dem efter en bekræftelse. list_merchant_data_sources viser, hvilke feeds der faktisk kan tage imod en skrivning.

Tre ting værd at vide på forhånd. Google blokerer alle Merchant API-kald, indtil Hermoso's Cloud-projekt er registreret mod din Merchant Center-konto, så register_merchant_developer udfører den forbindelse én gang og siger det ved navn. Det er ikke en ødelagt forbindelse, og at genforbinde hjælper ikke. Produktskrivninger går kun ind i et API-datakilde: et filfeed, et autofeed og det feed, Merchant Centers egen UI opretter, vises alle normalt og afviser alle skrivninger, så Hermoso finder et skrivbart feed for dig, opretter et, hvis der ikke er ét, og afviser ved navn, hvis der er flere, i stedet for at putte dit produkt i et marked, dine kampagner måske ikke rammer. Og upsert_merchant_product er en skrivning af hele rækken, mens update_merchant_product er en rettelse. Send alle felter, du vil beholde, til den første, og kun de felter, du ændrer, til den anden.

Intet af det betyder, at du skal flytte dit katalog. Hvis feedet allerede ligger i Shopify eller din platform, så lad det blive der og lad agenten læse det; skrivningerne er til tilfælde, hvor ingen ejer feedet endnu, eller hvor én pris eller tilgængelighed skal rettes nu i stedet for ved næste synkronisering.

Google Analytics 4, så du kan se, hvad klikkene gjorde

Google Ads-rapportering stopper ved klikket. Det, der sker bagefter (sessionen, tilmeldingen, ordren), ligger i Google Analytics, og den samme Google-login når derind (det er en egen forbindelse, fordi den kræver sin egen tilladelse).

Din agent kan finde ud af, hvilken GA4-ejendom der skal læses, med list_analytics_properties. Det betyder noget, for hvert Analytics-kald tager et numerisk ejendoms-id, og det, du faktisk har, er G-XXXXXXXXX-målings-id'et fra dit sporingssnippet. Derefter returnerer analytics_report sessioner, brugere, konverteringer og omsætning opdelt efter kanal, kilde/medium, kampagne, landingsside, land, enhed eller dato, og analytics_realtime viser, hvem der er på sitet lige nu. Så “byg kampagnen” og “fortæl mig, hvad den tjente” er den samme samtale.

Den kan også skrive, og det er den del, der går direkte tilbage til Google Ads: create_analytics_key_event markerer en hændelse, GA4 allerede indsamler, som nøglehændelse, og det er netop det, Google Ads importerer som en konvertering, og en konverteringshandling er det, alle smart bidding-strategier på denne side er afhængige af. create_analytics_custom_dimension registrerer en hændelsesparameter, så rapporter kan opdeles efter den, og list_analytics_definitions viser, hvad ejendommen allerede måler, før du tilføjer nogen af delene. To ting gælder altid: dette er kun GA4, da API'et slet ikke har en Universal Analytics-flade, og en brugerdefineret dimension kan arkiveres, men aldrig slettes, med 50 hændelsesskopede pladser pr. ejendom, så agenten tjekker det eksisterende sæt først.

Spend-gaten dækker mere end ét værktøj

At pause en kampagne er ikke den eneste måde at undgå forbrug på, og at behandle det sådan er en reel fælde: at oprette en aktiv annoncegruppe, annonce eller et søgeord under en allerede aktiv forælder begynder at vises ved den næste auktion. Derfor beskytter den samme bekræftelse, der sikrer set_google_ads_status, også create_google_ads_ad_group, create_google_ads_ad og add_google_ads_keywords, når forælderen er live, læst ud fra rækken, hver af dem allerede henter, uden ekstra rundtur. Negative søgeord begrænser kun forbrug, så de bliver aldrig spærret.

GAQL-rapportering, med ét forbehold værd at kende

google_ads_report tager vilkårlig GAQL, så din agent kan spørge efter præcis den udsnit, den har brug for, i stedet for at være låst til en fast rapportform. Én ting at holde i tankerne, hvis du skriver forespørgsler i hånden eller lader en model skrive dem: GAQL er ikke SQL. Den har ingen underforespørgsler, og IN tager en bogstavelig liste. En WHERE id IN (SELECT …) er ugyldig og fejler, i stedet for stille at returnere de forkerte rækker. Send resultatet direkte til et regneark med create_sheet og append_to_sheet, eller til et dokument med create_doc.

Læs tilbage, og rapportér derefter

Efter mutate læses træet tilbage fra Google, og det resumé, du får, er bygget ud fra den tilbagelæsning, aldrig ud fra det, der blev anmodet om. Det er en lille disciplin, der fanger den specifikke fejl, hvor en agent med sikkerhed fortæller om en kampagne, som platformen faktisk tvang eller afviste.

Hvad den ikke gør uden at spørge

En agent med et budget er kun nyttig, hvis det, den kan påvirke, er afgrænset, så forbrugsautoriteten er fastlagt i serveren og ikke i en prompt. Meta-kampagner, -annoncesæt og -annoncer oprettes med PAUSED uden mulighed for at tilsidesætte det fra kalderen. Statuskontakterne, der kan tænde for reelt annonceforbrug (én på hver annonceplatform: set_meta_campaign_status, set_google_ads_status, set_microsoft_ads_status, set_reddit_ads_status, set_linkedin_ads_status, set_pinterest_ads_status, set_x_ads_status og set_openai_ads_status blandt dem), nægter alle at køre uden et udtrykkeligt bekræftelsesflag, og den samme gate dækker oprettelse af en aktiv Google Ads-annoncegruppe, -annonce eller -søgeord under en allerede aktiv forælder, fordi den vises ved den næste auktion. Sletninger kræver også bekræftelse. På genereringssiden viser hermoso_capabilities hver models præcise creditpris, før noget kører, og hver rendering reserverer et estimat og afregner derefter den faktiske pris, så en mislykket afsendelse bliver refunderet i stedet for stille at blive faktureret.

Forbind din Google Ads-konto

Du forbinder Google Ads til Hermoso via Googles egen OAuth-flow under Indstillinger, Forbindelser i Hermoso; intet kodeord passerer gennem modellen. Google Ads-forbindelser deles på brandniveau, så et helt team på et brand arbejder med én forbindelse i stedet for, at hver person godkender igen.

Kreativ-halvdelen

Kampagnestyring er kun nyttig, hvis der er noget at køre. Den samme server researcher, hvad der allerede virker på dit marked i Meta-, Google- og LinkedIn-annoncebibliotekerne, renderer færdig billed- og videokreativ forankret i dit rigtige produkt på tværs af 100+ modeller og uploader assets, så “hvad skal vi køre” og “byg det” er én samtale i stedet for to værktøjer. Se oversigten over marketing-MCP, den fulde værktøjsliste, eller Meta Ads MCP, hvis du kører begge.

Ofte stillede spørgsmål

Findes der en MCP-server til Google Ads?

Ja. Hermoso's MCP-server bygger og styrer Google Ads fra enhver MCP-klient: create_google_ads_campaign, create_google_ads_ad_group, create_google_ads_ad og add_google_ads_keywords til at bygge et søge- eller displaytræ; create_google_ads_performance_max_campaign til Performance Max; set_google_ads_budget, set_google_ads_bidding og set_google_ads_targeting til konfiguration; google_ads_keyword_ideas til Keyword Planner-research; list_google_ads_campaigns og google_ads_report til rapportering; Merchant Center-læsninger for det produktfeed, der ligger bag en Shopping-kampagne; og den bekræftelsesstyrede set_google_ads_status til at aktivere.

Kan en AI-agent oprette en Google Ads-kampagne?

Ja, og hele træet oprettes i én atomisk operation med midlertidige ressource-id'er: kampagne, annoncegruppe, responsiv søge- eller displayannonce og søgeord samlet. Bliver annoncen afvist, blev budgettet heller aldrig oprettet, så du ikke står tilbage med at rydde op i forældreløse objekter. En prøvekørselstilstand validerer træet mod den live API uden at oprette noget.

Kan den oprette en Performance Max-kampagne?

Ja. create_google_ads_performance_max_campaign bygger budget, kampagne, målretning, asset-gruppe og alle asset-links i én atomisk operation, fordi Google kræver dem samlet. Kampagnen oprettes på pause og læses tilbage, før agenten rapporterer om den. Googles minimumskrav til assets håndhæves, før noget sendes: 3–15 overskrifter, 1–5 lange overskrifter, 2–5 beskrivelser, et virksomhedsnavn og mindst ét logo, ét markedsføringsbillede og ét kvadratisk markedsføringsbillede. PMax byder kun på konverteringer, så den nægter at bygge på en konto uden en aktiv konverteringshandling, i stedet for at oprette en kampagne, der ikke kan optimere. Shopping-feed (detail) PMax fungerer på samme måde: angiv merchantCenterId, så annoncerer kampagnen med din Merchant Center-katalog, med feedLabel til at indsnævre den til ét feed, og tilbagelæsningen viser den Merchant Center-konto og det feedlabel, Google faktisk gemte.

Virker den med Google Merchant Center?

Ja, læsning og skrivning, over den samme Google-forbindelse. Agenten kan liste de Merchant Center-konti, din konto har adgang til, læse produkterne i et feed (det katalog, en Shopping- eller detail-Performance Max-kampagne faktisk viser) og læse de kontoniveau-problemer, Google rejser, hvilket er det eneste sted at finde ud af, hvorfor et produkt ikke vises, da et afvist produkt ingen visninger har, som Google Ads-rapportering kan vise. Google kræver en engangsregistrering af Hermoso's Cloud-projekt mod din Merchant Center-konto, før API'et svarer, og der findes et værktøj, der udfører den. Den skriver også: create_merchant_data_source, upsert_merchant_product, update_merchant_product til de pris- og tilgængelighedsændringer, der flytter sig dagligt, og delete_merchant_product og delete_merchant_data_source, der begge kræver bekræftelse. Google accepterer kun produktskrivninger i et API-datakilde, så Hermoso finder et skrivbart feed for dig og afviser ved navn, hvis kontoen har flere.

Kan den lave søgeordsresearch?

Ja. google_ads_keyword_ideas kalder Googles Keyword Planner og returnerer reelle månedlige søgevolumener, konkurrence og bud-intervaller for top-of-page, ud fra søgeord, en landingsside-URL eller et helt website. Agenten kan føre dem direkte ind i add_google_ads_keywords eller skrive dem til et Google-regneark.

Kan den starte forbrug af mit Google Ads-budget?

Kun med en udtrykkelig bekræftelse. set_google_ads_status er kontakten, der tænder for reelle penge, og fordi oprettelse af et aktivt underelement under en allerede aktiv forælder vises ved den næste auktion, beskytter den samme bekræftelse også create_google_ads_ad_group, create_google_ads_ad og add_google_ads_keywords, når forælderen er live. Negative søgeord begrænser kun forbrug og bliver aldrig spærret.

Kan den køre rapporter?

Ja. google_ads_report tager vilkårlig GAQL, så agenten kan hente præcis den udsnit, den har brug for. Bemærk, at GAQL ikke er SQL: der er ingen underforespørgsler, og IN tager en bogstavelig liste, så en WHERE id IN (SELECT …) er ugyldig. Resultaterne kan skrives direkte til et Google-regneark eller -dokument.

Hvilken budgivning og målretning kan den sætte?

Seks budgivningsstrategier, kampagneplan og geografisk og sprogmæssig målretning, med find_google_ads_locations til at finde lokationsmålretninger efter navn. Budgetter sættes med set_google_ads_budget, og søgeord understøtter negative søgeord og CPC pr. søgeord.

Får agenten mit Google-kodeord?

Nej. Du forbinder Google Ads gennem Googles egen OAuth-flow under Indstillinger, Forbindelser i Hermoso, og Hermoso holder den resulterende token. Agenten kalder kun Hermoso's værktøjer. Google Ads-forbindelser deles på brandniveau, så et helt team arbejder med én forbindelse.

Kan den også lave kreativen til annoncen?

Ja. Den samme server researcher konkurrenters annoncer, planlægger konceptet, renderer færdig billed- og videokreativ på tværs af 100+ modeller med dit rigtige produkt komponeret ind og uploader assets med upload_google_ads_asset, så research, kreativ og kampagnebygning sker i én samtale.

Forbind Google Ads én gang, og din agent kan researche markedet, skrive annoncen, bygge træet og rapportere om det, med en hård gate før noget bruger penge.

Start gratis →   Læs MCP-dokumentationen →