{"id":"e20652e4-886c-47ed-b573-61c7a85b1f54","shortId":"bCk66j","kind":"skill","title":"google-ads","tagline":"Plan and create new Google Ads campaigns end-to-end via the Hyper MCP. Use when the user wants to launch Search, Display, or Performance Max campaigns, or mentions Google Ads, AdWords, search ads, display ads, Performance Max, PMax, PPC, Google campaigns, Google blueprint, search","description":"# Google Ads\n\nStrategic guide for building new Google Ads campaigns. Research first, consult intelligently, validate everything, and use the blueprint flow for controlled creation.\n\n## Requirements\n\n- **Hyper MCP installed and connected.** [https://app.hyperfx.ai/mcp](https://app.hyperfx.ai/mcp)\n- **Google Ads integration connected** at [https://app.hyperfx.ai/integrations](https://app.hyperfx.ai/integrations).\n\nIf `google_ads_list_accounts` is not in the tool list, stop and tell the user to enable Hyper MCP and connect Google Ads.\n\n## Out of scope\n\n- **Ongoing optimization** (search-term cleanup, bid adjustments, ad testing, restructuring existing campaigns) → defer to a future `google-ads-operator` skill.\n- **Creative generation** (headlines, descriptions, images) → [`ad-creative-generation`](../ad-creative-generation).\n- **Cross-platform campaign launches** → use this skill for Google, then invoke `meta-ads` / `tiktok-ads` separately.\n\n## Tool surface\n\n| Tool | Purpose |\n| --- | --- |\n| `google_ads_list_accounts` | Discover accessible accounts (and MCC sub-accounts). |\n| `google_ads_execute_gaql` | Run a GAQL query (conversion actions, search term reports, etc.). |\n| `google_ads_search_locations` | Resolve human-readable location names to IDs. |\n| `google_ads_list_assets`, `google_ads_upload_image_asset` | Manage image assets for Display / PMax. |\n| `google_ads_preview_blueprint`, `google_ads_create_from_blueprint` | Validate + create Search/Display campaigns. |\n| `google_ads_preview_pmax_blueprint`, `google_ads_create_from_pmax_blueprint` | Validate + create Performance Max campaigns. |\n\n## Phase 1: Initial Setup\n\nCall `google_ads_list_accounts()` to list accessible accounts.\n\n- If multiple: ask the user to select one.\n- If single: inform the user and proceed.\n\n**CRITICAL**: Verify account access before any operations.\n\n## Phase 2: Discovery & Research (MANDATORY)\n\n### Research Steps\n1. Get the real domain (ask; don't infer).\n2. Scan the site end-to-end: home, product/service, pricing, about, FAQs, locations, contact, landing pages.\n3. Understand funnel & goals: primary conversions, CTAs, forms/checkout, thank-you pages.\n4. Extract messaging: value props, differentiators, proof, offers.\n\n### Conversion Tracking Check\nBefore asking questions, run the purpose-built diagnostic (simpler than a hand-rolled GAQL query):\n```\ngoogle_ads_diagnose_conversion_tracking(customer_id=\"<from list_accounts>\")\n```\n\nThis returns all conversion actions, their status, and any tracking signal issues in one call. If the user's MCP doesn't expose `google_ads_diagnose_conversion_tracking`, fall back to GAQL:\n```\ngoogle_ads_execute_gaql(\n  customer_id=\"<from list_accounts>\",\n  query=\"\"\"\n    SELECT conversion_action.id, conversion_action.name,\n           conversion_action.status, conversion_action.type\n    FROM conversion_action\n    WHERE conversion_action.status = 'ENABLED'\n  \"\"\"\n)\n```\n\n> **`google_ads_execute_gaql` vs `google_ads_run_gaql`:** `execute_gaql` works on manager accounts (MCC) and sub-accounts. `run_gaql` is only available on non-manager accounts. Use `execute_gaql` consistently — it works everywhere.\n\n### Market & Keyword Research\n- Inspect SERPs, competitors, and themes.\n- Propose keyword candidates (intent-aligned).\n- Identify initial negatives.\n\n### Confirm Criticals\n- Daily budget (+currency).\n- Served geos.\n- Constraints.\n- Tracking status.\n\n## Phase 3: Consultation\n\nAct as a partner, not order-taker:\n- Present findings (site + GAQL + market).\n- Recommend bidding (default Smart Bidding when tracking exists) with trade-offs.\n- Propose structure (campaign → themed ad groups → keywords + match types).\n- Suggest locations via `google_ads_search_locations(customer_id=\"...\", location_names=\"New York\")`. Note: `location_names` is a single string, not an array — pass a city, state, country, or postal code and the tool returns matching geo target IDs.\n- Set budget expectations via benchmark ranges.\n- Show reasoning for each choice.\n\n## Phase 4: Pre-Creation Summary (Must Be Approved)\n\n```\nCampaign Strategy for [Business Name]\n\nSources: [URL], GAQL\nConversion Setup: [GAQL findings]\nPrimary Goal: [objective + why]\nBidding: [strategy + why]\nBudget: $[X]/day (expectations)\nLocations: [targets + rationale]\nKeyword Themes: [themes + match types + 2-3 examples]\nMessaging: [angles pulled from site]\nTrade-offs/Risks: [bullets]\n\nApprove to proceed?\n```\n\nWait for explicit approval. No emojis. No assumptions.\n\n## Phase 5: Campaign Creation (Blueprint System)\n\n> **CRITICAL**: Always use the blueprint system for campaign creation. It validates locally, fills smart defaults, resolves locations, and rolls back on failure.\n\n### Workflow: Preview → Confirm → Create\n\n1. Build the blueprint JSON from research.\n2. Call the **preview** tool to validate and show the user what will be created.\n3. Get explicit user approval.\n4. Call the **create** tool.\n\n### Search & Display Campaigns\n\n**Preview**: `google_ads_preview_blueprint(blueprint={...})`\n**Create**: `google_ads_create_from_blueprint(blueprint={...})`\n\n```json\n{\n  \"customer_id\": \"1234567890\",\n  \"name\": \"Campaign Name\",\n  \"budget_amount_micros\": 50000000,\n  \"advertising_channel_type\": \"SEARCH\",\n  \"bidding_strategy\": \"MAXIMIZE_CLICKS\",\n  \"status\": \"PAUSED\",\n  \"location_names\": [\"New York\", \"Los Angeles\"],  // array in blueprints; note: google_ads_search_locations takes a single string for manual lookup\n  \"conversion_action_ids\": [\"1234567890\"],\n  \"ad_schedules\": [\n    {\"day_of_week\": \"MONDAY\", \"start_hour\": 9, \"end_hour\": 17}\n  ],\n  \"sitelinks\": [\n    {\"link_text\": \"Free Trial\", \"final_urls\": [\"https://example.com/trial\"]}\n  ],\n  \"callouts\": [{\"callout_text\": \"Free Shipping\"}],\n  \"ad_groups\": [\n    {\n      \"name\": \"Ad Group 1\",\n      \"keywords\": [\n        {\"text\": \"marketing software\", \"match_type\": \"PHRASE\"},\n        {\"text\": \"competitor brand\", \"match_type\": \"EXACT\", \"negative\": true}\n      ],\n      \"ads\": [\n        {\n          \"headlines\": [\"Headline 1\", \"Headline 2\", \"Headline 3\"],\n          \"descriptions\": [\"Description 1\", \"Description 2\"],\n          \"final_urls\": [\"https://example.com\"]\n        }\n      ],\n      \"audiences\": [{\"audience_id\": \"1234567890\"}]\n    }\n  ]\n}\n```\n\nFor **Display** campaigns, set `\"advertising_channel_type\": \"DISPLAY\"` and use `display_ads` instead of `ads`:\n```json\n\"display_ads\": [{\n  \"headlines\": [\"Headline 1\", \"Headline 2\", \"Headline 3\"],\n  \"long_headline\": \"Longer headline up to 90 characters\",\n  \"descriptions\": [\"Description 1\", \"Description 2\"],\n  \"business_name\": \"Business Name\",\n  \"final_urls\": [\"https://example.com\"],\n  \"marketing_image_asset_ids\": [\"1234567890\"],\n  \"square_marketing_image_asset_ids\": [\"1234567891\"],\n  \"logo_asset_ids\": [\"1234567892\"]\n}]\n```\n\n> **CRITICAL (Display)**: All three image asset types are REQUIRED:\n> - `marketing_image_asset_ids` — landscape 1.91:1 (e.g. 1200×628).\n> - `square_marketing_image_asset_ids` — square 1:1 (e.g. 1200×1200).\n> - `logo_asset_ids` — square 1:1 or landscape 4:1.\n\n### Performance Max Campaigns\n\n**Preview**: `google_ads_preview_pmax_blueprint(blueprint={...})`\n**Create**: `google_ads_create_from_pmax_blueprint(blueprint={...})`\n\n```json\n{\n  \"customer_id\": \"1234567890\",\n  \"name\": \"PMax Campaign\",\n  \"budget_amount_micros\": 50000000,\n  \"bidding_strategy\": \"MAXIMIZE_CONVERSIONS\",\n  \"status\": \"PAUSED\",\n  \"location_names\": [\"United States\"],\n  \"conversion_action_ids\": [\"1234567890\"],\n  \"asset_groups\": [\n    {\n      \"name\": \"Asset Group 1\",\n      \"headlines\": [\"Headline 1\", \"Headline 2\", \"Headline 3\"],\n      \"long_headlines\": [\"Longer headline up to 90 characters\"],\n      \"descriptions\": [\"Description 1\", \"Description 2\"],\n      \"business_name\": \"Business Name\",\n      \"final_urls\": [\"https://example.com\"],\n      \"marketing_image_asset_ids\": [\"1234567890\"],\n      \"square_marketing_image_asset_ids\": [\"1234567891\"],\n      \"logo_asset_ids\": [\"1234567892\"]\n    }\n  ]\n}\n```\n\n> **CRITICAL (PMax)**: All three image asset types are REQUIRED with correct aspect ratios. The preview tool validates ratios before creation.\n\n### Blueprint Features\n\n| Feature | Details |\n| --- | --- |\n| **Smart defaults** | Budget name, start date, network settings, ad group type auto-filled. |\n| **Location resolution** | Pass `location_names` (human-readable) instead of IDs. |\n| **Client-side validation** | Char limits, match types, image ratios checked before any API call. |\n| **Batch operations** | Keywords, extensions, ad schedules batched for efficiency. |\n| **Cleanup on failure** | Entire campaign removed if any step fails after campaign creation. |\n| **Ad extensions** | Sitelinks, callouts, structured snippets — created and linked automatically. |\n| **Ad scheduling** | Day-parting at campaign level via `ad_schedules`. |\n| **Audiences** | Target or exclude audiences per ad group. |\n| **Conversion actions** | Link specific conversion actions via `conversion_action_ids`. |\n\n### Bidding Strategies\n\n| Strategy | Fields | Notes |\n| --- | --- | --- |\n| `MANUAL_CPC` | — | Manual cost-per-click. |\n| `MAXIMIZE_CLICKS` | — | Default, good starting point. |\n| `MAXIMIZE_CONVERSIONS` | `target_cpa_micros` (optional) | Requires conversion tracking. |\n| `MAXIMIZE_CONVERSION_VALUE` | `target_roas` (optional) | Requires conversion values. |\n| `TARGET_CPA` | `target_cpa_micros` (required) | Sets a target cost per acquisition. |\n| `TARGET_ROAS` | `target_roas` (required) | Sets a target return on ad spend. |\n\n> For PMax: `TARGET_CPA` and `TARGET_ROAS` are translated to constraints within `MAXIMIZE_CONVERSIONS` / `MAXIMIZE_CONVERSION_VALUE`.\n\n### Technical Rules\n\n- Budget in micros: $50 → 50,000,000.\n- Create PAUSED; activate only after approval.\n- Location resolution: use `location_names` in blueprint (auto-resolved) or `google_ads_search_locations` for manual lookup.\n- RSA limits: headlines ≤30 chars (min 3), descriptions ≤90 chars (min 2).\n- Creative source: only from the actual site; no generic claims.\n- Image assets must already exist in the account (use `google_ads_list_assets` to find them).\n\n## Campaign Workflow\n\nInitial Setup → Research (site + GAQL + market) → Analyze (goals, audience, keywords) → Consult (options + trade-offs) → Recommend (structure + bids) → Confirm (summary approved) → Build Blueprint → Preview → User Approval → Create (PAUSED) → Activate (post-approval).\n\n## GAQL Resource Compatibility\n\n**Critical:** Not all Google Ads resources can be joined in a single query.\n\n### search_term_view\nUse `segments.keyword.info.*` for keyword text and match type — **never** `ad_group_criterion.*`:\n\n```sql\nSELECT\n    search_term_view.search_term,\n    customer.descriptive_name,\n    segments.keyword.info.text,\n    segments.keyword.info.match_type,\n    campaign.name,\n    ad_group.name,\n    metrics.clicks,\n    metrics.impressions,\n    metrics.conversions,\n    metrics.cost_micros\nFROM search_term_view\nWHERE segments.date DURING LAST_7_DAYS\nORDER BY metrics.impressions DESC\n```\n\n`ad_group_criterion` is **incompatible** with `search_term_view` as the FROM resource. Selecting `ad_group_criterion.*` fields will always fail with `PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE`.\n\n### keyword_view\nFor keyword performance (Quality Score, bid estimates):\n```sql\nSELECT\n    ad_group_criterion.keyword.text,\n    ad_group_criterion.keyword.match_type,\n    metrics.clicks,\n    metrics.impressions,\n    metrics.historical_quality_score\nFROM keyword_view\nWHERE segments.date DURING LAST_30_DAYS\n```\n\n## Multi-Account Workflows (MCC)\n\nWhen a user provides a manager account (MCC) with multiple sub-accounts:\n\n### Batching Rule\n**Never query more than 5 sub-accounts in a single run.** Each `google_ads_execute_gaql` call goes through a proxy with a timeout. Querying 10+ accounts sequentially in one loop reliably causes 504 timeouts.\n\nProcess in batches of 5 and aggregate results before proceeding:\n```\nBatch 1: accounts[0:5]   → collect results\nBatch 2: accounts[5:10]  → collect results\nBatch 3: accounts[10:15] → collect results\n...merge all batches...\n```\n\nAnnounce progress to the user: `\"Processing accounts 1-5 of 23...\"`.\n\n### 504 Timeout Recovery\nIf a `google_ads_execute_gaql` call times out (504 / \"Google Ads API timed out after retries\"):\n1. The tool already retries 3× internally — do not retry immediately.\n2. Reduce the scope: narrow the date range, add a `LIMIT`, or split the account list further.\n3. Tell the user which accounts succeeded and which failed; do not silently drop accounts.\n\n### Cross-Account Search Term Report (Most Common Use Case)\n\nFor MCC search term reports across many sub-accounts:\n\n```\n1. Get all accounts: google_ads_list_accounts()\n   Filter to sub-accounts: [a for a in result.accounts if not a[\"manager\"]]\n2. For each batch of 5 accounts:\n   - Run search_term_view GAQL (using segments.keyword.info.*, NOT ad_group_criterion).\n   - Collect results tagged with customer.descriptive_name.\n3. Merge all batches into a single dataset.\n4. Write to Google Sheets or CSV file for the user.\n```\n\nMinimum required columns for a search term report:\n- Search Term, Account Name, Keyword, Match Type, Campaign, Ad Group.\n- Clicks, Impressions, Conversions, Cost.\n- Add Negative (Yes/No — your recommendation).\n\n## Critical Safety Rules\n\n**Never:**\n- Assume URL/budget/location IDs.\n- Skip research.\n- Invent keywords/copy.\n- Apply rigid \"best practices\" without context.\n- Build without buy-in.\n- Skip the preview step before creation.\n- Join `ad_group_criterion` with `search_term_view` in GAQL.\n- Query more than 5 accounts in a single batch.\n\n## Cached Data (optional, when `google_ads_query_insights` is exposed)\n\nIf the MCP exposes `google_ads_query_insights`, use it for large multi-account performance queries — it reads from a local cache refreshed hourly and avoids API timeouts entirely.\n\n### Query Performance\n\nCall `google_ads_query_insights` — its built-in description includes the exact table name, schema, and example queries. Read the tool description first, then pass a SQL query targeting that table. Typical pattern:\n\n```\ngoogle_ads_query_insights(\n  query=\"SELECT date, campaign_name, SUM(cost_micros) as spend, SUM(clicks) as clicks\n         FROM <table>\n         WHERE customer_id = '1234567890'\n           AND date >= CURRENT_DATE - INTERVAL '7 days'\n         GROUP BY date, campaign_name ORDER BY date DESC\"\n)\n```\n\nReplace `<table>` with the table name shown in the `google_ads_query_insights` tool description. Cache is refreshed hourly — no manual sync needed.\n\n> **If the tool returns a \"no data cached\" error**, check the `suggestion` field in the response — it will contain the correct workspace-specific table name. Retry the query using that suggested table name instead.\n\nKey columns available (verify in tool description):\n- **Hierarchy:** `date`, `customer_id`, `campaign_id`, `campaign_name`, `campaign_status`\n- **Volume:** `impressions`, `clicks`, `cost_micros` (÷ 1,000,000 for dollars)\n- **Conversions:** `conversions`, `conversions_value`, `conversion_rate`\n- **Efficiency:** `ctr`, `average_cpc`, `average_cpm`\n\nSupports standard SQL aggregations and window functions. For cross-account queries, omit the `customer_id` filter and `GROUP BY` it instead.","tags":["google","ads","marketing","skills","hyperfx-ai","agent-skills","ai-agent","claude","claude-code","claude-skills","codex","cursor"],"capabilities":["skill","source-hyperfx-ai","skill-google-ads","topic-agent-skills","topic-ai-agent","topic-claude","topic-claude-code","topic-claude-skills","topic-codex","topic-cursor","topic-google-ads","topic-hermes","topic-marketing","topic-mcp","topic-meta-ads"],"categories":["marketing-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/hyperfx-ai/marketing-skills/google-ads","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add hyperfx-ai/marketing-skills","source_repo":"https://github.com/hyperfx-ai/marketing-skills","install_from":"skills.sh"}},"qualityScore":"0.462","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 24 github stars · SKILL.md body (15,180 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:05:16.297Z","embedding":null,"createdAt":"2026-05-07T13:06:43.077Z","updatedAt":"2026-05-18T19:05:16.297Z","lastSeenAt":"2026-05-18T19:05:16.297Z","tsv":"'-3':612 '-5':1542 '/ad-creative-generation':149 '/day':601 '/integrations](https://app.hyperfx.ai/integrations).':90 '/mcp](https://app.hyperfx.ai/mcp)':82 '/risks':622 '/trial':782 '0':1513 '000':1229,1230,1962,1963 '1':256,297,667,793,812,819,849,864,904,914,915,923,924,928,977,980,995,1511,1541,1565,1628,1961 '1.91':903 '10':1490,1521,1527 '1200':906,917,918 '1234567890':718,760,828,878,950,971,1009,1865 '1234567891':884,1015 '1234567892':888,1019 '15':1528 '17':772 '2':291,306,611,674,814,821,851,866,982,997,1266,1518,1576,1650 '23':1544 '3':323,485,689,816,853,984,1261,1525,1570,1593,1674 '30':1258,1442 '4':335,572,694,927,1682 '5':636,1468,1504,1514,1520,1655,1761 '50':1227,1228 '50000000':725,957 '504':1498,1545,1557 '628':907 '7':1382,1871 '9':769 '90':860,991,1263 'access':178,266,286 'account':95,176,179,184,263,267,285,434,439,449,1284,1446,1455,1461,1471,1491,1512,1519,1526,1540,1590,1598,1607,1610,1627,1631,1635,1640,1656,1703,1762,1791,1988 'acquisit':1192 'across':1623 'act':487 'action':194,374,416,758,969,1136,1140,1143 'activ':1233,1323 'actual':1272 'ad':3,9,35,38,40,51,58,84,93,114,126,137,146,164,167,174,186,200,212,216,227,231,240,245,261,364,394,403,421,426,516,525,704,710,747,761,788,791,809,840,843,846,934,941,1052,1088,1106,1116,1125,1133,1203,1249,1287,1334,1355,1388,1402,1478,1551,1559,1633,1665,1709,1749,1772,1782,1811,1844,1891 'ad-creative-gener':145 'ad_group.name':1368 'ad_group_criterion.keyword.match':1428 'ad_group_criterion.keyword.text':1427 'add':1584,1715 'adjust':125 'advertis':726,833 'adword':36 'aggreg':1506,1981 'align':470 'alreadi':1280,1568 'alway':642,1407 'amount':723,955 'analyz':1301 'angel':741 'angl':615 'announc':1534 'api':1082,1560,1804 'app.hyperfx.ai':81,89 'app.hyperfx.ai/integrations](https://app.hyperfx.ai/integrations).':88 'app.hyperfx.ai/mcp](https://app.hyperfx.ai/mcp)':80 'appli':1731 'approv':579,624,630,693,1236,1315,1320,1326 'array':543,742 'ask':270,302,347 'aspect':1031 'asset':214,219,222,876,882,886,894,900,911,920,972,975,1007,1013,1017,1025,1278,1289 'assum':1724 'assumpt':634 'audienc':825,826,1127,1131,1303 'auto':1056,1245 'auto-fil':1055 'auto-resolv':1244 'automat':1115 'avail':444,1941 'averag':1974,1976 'avoid':1803 'back':399,660 'batch':1084,1090,1462,1502,1510,1517,1524,1533,1653,1677,1766 'benchmark':564 'best':1733 'bid':124,501,504,596,730,958,1145,1312,1423 'blueprint':48,69,229,234,243,249,639,645,670,706,707,713,714,744,937,938,945,946,1040,1243,1317 'brand':803 'budget':477,561,599,722,954,1046,1224 'build':55,668,1316,1737 'built':353,1816 'built-in':1815 'bullet':623 'busi':583,867,869,998,1000 'buy':1740 'buy-in':1739 'cach':1767,1799,1896,1911 'call':259,384,675,695,1083,1481,1554,1809 'callout':783,784,1109 'campaign':10,31,46,59,130,153,238,254,514,580,637,648,701,720,831,931,953,1097,1104,1122,1293,1708,1850,1876,1950,1952,1954 'campaign.name':1367 'candid':467 'case':1617 'caus':1497 'channel':727,834 'char':1073,1259,1264 'charact':861,992 'check':345,1079,1913 'choic':570 'citi':546 'claim':1276 'claus':1415 'cleanup':123,1093 'click':733,1156,1158,1711,1858,1860,1958 'client':1070 'client-sid':1069 'code':551 'collect':1515,1522,1529,1668 'column':1695,1940 'common':1615 'compat':1329 'competitor':462,802 'confirm':474,665,1313 'connect':79,86,112 'consist':453 'constraint':481,1215 'consult':62,486,1305 'contact':320 'contain':1922 'context':1736 'control':72 'convers':193,328,343,366,373,396,415,588,757,961,968,1135,1139,1142,1164,1170,1173,1179,1218,1220,1713,1966,1967,1968,1970 'conversion_action.id':410 'conversion_action.name':411 'conversion_action.status':412,418 'conversion_action.type':413 'correct':1030,1924 'cost':1154,1190,1714,1853,1959 'cost-per-click':1153 'countri':548 'cpa':1166,1182,1184,1208 'cpc':1151,1975 'cpm':1977 'creat':6,232,236,246,251,666,688,697,708,711,939,942,1112,1231,1321 'creation':73,575,638,649,1039,1105,1747 'creativ':140,147,1267 'criterion':1357,1390,1404,1667,1751 'critic':283,475,641,889,1020,1330,1720 'cross':151,1609,1987 'cross-account':1608,1986 'cross-platform':150 'csv':1688 'ctas':329 'ctr':1973 'currenc':478 'current':1868 'custom':368,406,528,716,948,1863,1948,1992 'customer.descriptive':1362,1672 'daili':476 'data':1768,1910 'dataset':1681 'date':1049,1582,1849,1867,1869,1875,1880,1947 'day':763,1119,1383,1443,1872 'day-part':1118 'default':502,655,1045,1159 'defer':131 'desc':1387,1881 'descript':143,817,818,820,862,863,865,993,994,996,1262,1818,1831,1895,1945 'detail':1043 'diagnos':365,395 'diagnost':354 'differenti':340 'discov':177 'discoveri':292 'display':27,39,224,700,830,836,839,845,890 'doesn':390 'dollar':1965 'domain':301 'drop':1606 'e.g':905,916 'effici':1092,1972 'emoji':632 'enabl':108,419 'end':12,14,311,313,770 'end-to-end':11,310 'entir':1096,1806 'error':1912 'estim':1424 'etc':198 'everyth':65 'everywher':456 'exact':806,1821 'exampl':613,1826 'example.com':781,824,873,1004 'example.com/trial':780 'exclud':1130 'execut':187,404,422,429,451,1479,1552 'exist':129,507,1281 'expect':562,602 'explicit':629,691 'expos':392,1776,1780 'extens':1087,1107 'extract':336 'fail':1102,1408,1602 'failur':662,1095 'fall':398 'faq':318 'featur':1041,1042 'field':1148,1405,1916 'file':1689 'fill':653,1057 'filter':1636,1994 'final':778,822,871,1002 'find':496,591,1291 'first':61,1832 'flow':70 'forms/checkout':330 'free':776,786 'function':1984 'funnel':325 'futur':134 'gaql':188,191,361,401,405,423,428,430,441,452,498,587,590,1299,1327,1480,1553,1661,1757 'generat':141,148 'generic':1275 'geo':480,557 'get':298,690,1629 'goal':326,593,1302 'goe':1482 'good':1160 'googl':2,8,34,45,47,50,57,83,92,113,136,159,173,185,199,211,215,226,230,239,244,260,363,393,402,420,425,524,703,709,746,933,940,1248,1286,1333,1477,1550,1558,1632,1685,1771,1781,1810,1843,1890 'google-ad':1 'google-ads-oper':135 'group':517,789,792,973,976,1053,1134,1356,1389,1403,1666,1710,1750,1873,1996 'guid':53 'hand':359 'hand-rol':358 'headlin':142,810,811,813,815,847,848,850,852,855,857,978,979,981,983,986,988,1257 'hierarchi':1946 'home':314 'hour':768,771,1801,1899 'human':205,1064 'human-read':204,1063 'hyper':17,75,109 'id':210,369,407,529,559,717,759,827,877,883,887,901,912,921,949,970,1008,1014,1018,1068,1144,1726,1864,1949,1951,1993 'identifi':471 'imag':144,218,221,875,881,893,899,910,1006,1012,1024,1077,1277 'immedi':1575 'impress':1712,1957 'includ':1819 'incompat':1392 'infer':305 'inform':278 'initi':257,472,1295 'insight':1774,1784,1813,1846,1893 'inspect':460 'instal':77 'instead':841,1066,1938,1999 'integr':85 'intellig':63 'intent':469 'intent-align':468 'intern':1571 'interv':1870 'invent':1729 'invok':161 'issu':381 'join':1338,1748 'json':671,715,844,947 'key':1939 'keyword':458,466,518,606,794,1086,1304,1349,1416,1419,1436,1705 'keywords/copy':1730 'land':321 'landscap':902,926 'larg':1788 'last':1381,1441 'launch':25,154 'level':1123 'limit':1074,1256,1586 'link':774,1114,1137 'list':94,101,175,213,262,265,1288,1591,1634 'local':652,1798 'locat':202,207,319,522,527,530,535,603,657,736,749,964,1058,1061,1237,1240,1251 'logo':885,919,1016 'long':854,985 'longer':856,987 'lookup':756,1254 'loop':1495 'los':740 'manag':220,433,448,1454,1649 'mandatori':294 'mani':1624 'manual':755,1150,1152,1253,1901 'market':457,499,796,874,880,898,909,1005,1011,1300 'match':519,556,609,798,804,1075,1352,1706 'max':30,42,253,930 'maxim':732,960,1157,1163,1172,1217,1219 'mcc':181,435,1448,1456,1619 'mcp':18,76,110,389,1779 'mention':33 'merg':1531,1675 'messag':337,614 'meta':163 'meta-ad':162 'metrics.clicks':1369,1430 'metrics.conversions':1371 'metrics.cost':1372 'metrics.historical':1432 'metrics.impressions':1370,1386,1431 'micro':724,956,1167,1185,1226,1373,1854,1960 'min':1260,1265 'minimum':1693 'monday':766 'multi':1445,1790 'multi-account':1444,1789 'multipl':269,1458 'must':577,1279 'name':208,531,536,584,719,721,737,790,868,870,951,965,974,999,1001,1047,1062,1241,1363,1673,1704,1823,1851,1877,1886,1929,1937,1953 'narrow':1580 'need':1903 'negat':473,807,1716 'network':1050 'never':1354,1464,1723 'new':7,56,532,738 'non':447 'non-manag':446 'note':534,745,1149 'object':594 'off':511,621,1309 'offer':342 'omit':1990 'one':275,383,1494 'ongo':118 'oper':138,289,1085 'optim':119 'option':1168,1177,1306,1769 'order':493,1384,1878 'order-tak':492 'page':322,334 'part':1120 'partner':490 'pass':544,1060,1834 'pattern':1842 'paus':735,963,1232,1322 'per':1132,1155,1191 'perform':29,41,252,929,1420,1792,1808 'phase':255,290,484,571,635 'phrase':800 'plan':4 'platform':152 'pmax':43,225,242,248,936,944,952,1021,1206 'point':1162 'post':1325 'post-approv':1324 'postal':550 'ppc':44 'practic':1734 'pre':574 'pre-creat':573 'present':495 'preview':228,241,664,677,702,705,932,935,1034,1318,1744 'price':316 'primari':327,592 'proceed':282,626,1509 'process':1500,1539 'product/service':315 'progress':1535 'prohibit':1410 'proof':341 'prop':339 'propos':465,512 'provid':1452 'proxi':1485 'pull':616 'purpos':172,352 'purpose-built':351 'qualiti':1421,1433 'queri':192,362,408,1342,1465,1489,1758,1773,1783,1793,1807,1812,1827,1837,1845,1847,1892,1932,1989 'question':348 'rang':565,1583 'rate':1971 'ratio':1032,1037,1078 'rational':605 'read':1795,1828 'readabl':206,1065 'real':300 'reason':567 'recommend':500,1310,1719 'recoveri':1547 'reduc':1577 'refresh':1800,1898 'reliabl':1496 'remov':1098 'replac':1882 'report':197,1613,1622,1700 'requir':74,897,1028,1169,1178,1186,1197,1694 'research':60,293,295,459,673,1297,1728 'resolut':1059,1238 'resolv':203,656,1246 'resourc':1328,1335,1400,1411 'respons':1919 'restructur':128 'result':1507,1516,1523,1530,1669 'result.accounts':1645 'retri':1564,1569,1574,1930 'return':371,555,1201,1907 'rigid':1732 'roa':1176,1194,1196,1211 'roll':360,659 'rsa':1255 'rule':1223,1463,1722 'run':189,349,427,440,1475,1657 'safeti':1721 'scan':307 'schedul':762,1089,1117,1126 'schema':1824 'scope':117,1579 'score':1422,1434 'search':26,37,49,121,195,201,526,699,729,748,1250,1343,1375,1394,1611,1620,1658,1698,1701,1753 'search-term':120 'search/display':237 'search_term_view.search':1360 'segments.date':1379,1439 'segments.keyword.info':1347,1663 'segments.keyword.info.match':1365 'segments.keyword.info.text':1364 'select':274,409,1359,1401,1414,1426,1848 'separ':168 'sequenti':1492 'serp':461 'serv':479 'set':560,832,1051,1187,1198 'setup':258,589,1296 'sheet':1686 'ship':787 'show':566,682 'shown':1887 'side':1071 'signal':380 'silent':1605 'simpler':355 'singl':277,539,752,1341,1474,1680,1765 'site':309,497,618,1273,1298 'sitelink':773,1108 'skill':139,157 'skill-google-ads' 'skip':1727,1742 'smart':503,654,1044 'snippet':1111 'softwar':797 'sourc':585,1268 'source-hyperfx-ai' 'specif':1138,1927 'spend':1204,1856 'split':1588 'sql':1358,1425,1836,1980 'squar':879,908,913,922,1010 'standard':1979 'start':767,1048,1161 'state':547,967 'status':376,483,734,962,1955 'step':296,1101,1745 'stop':102 'strateg':52 'strategi':581,597,731,959,1146,1147 'string':540,753 'structur':513,1110,1311 'sub':183,438,1460,1470,1626,1639 'sub-account':182,437,1459,1469,1625,1638 'succeed':1599 'suggest':521,1915,1935 'sum':1852,1857 'summari':576,1314 'support':1978 'surfac':170 'sync':1902 'system':640,646 'tabl':1822,1840,1885,1928,1936 'tag':1670 'take':750 'taker':494 'target':558,604,1128,1165,1175,1181,1183,1189,1193,1195,1200,1207,1210,1838 'technic':1222 'tell':104,1594 'term':122,196,1344,1361,1376,1395,1612,1621,1659,1699,1702,1754 'test':127 'text':775,785,795,801,1350 'thank':332 'thank-you':331 'theme':464,515,607,608 'three':892,1023 'tiktok':166 'tiktok-ad':165 'time':1555,1561 'timeout':1488,1499,1546,1805 'tool':100,169,171,554,678,698,1035,1567,1830,1894,1906,1944 'topic-agent-skills' 'topic-ai-agent' 'topic-claude' 'topic-claude-code' 'topic-claude-skills' 'topic-codex' 'topic-cursor' 'topic-google-ads' 'topic-hermes' 'topic-marketing' 'topic-mcp' 'topic-meta-ads' 'track':344,367,379,397,482,506,1171 'trade':510,620,1308 'trade-off':509,619,1307 'translat':1213 'trial':777 'true':808 'type':520,610,728,799,805,835,895,1026,1054,1076,1353,1366,1412,1429,1707 'typic':1841 'understand':324 'unit':966 'upload':217 'url':586,779,823,872,1003 'url/budget/location':1725 'use':19,67,155,450,643,838,1239,1285,1346,1616,1662,1785,1933 'user':22,106,272,280,387,684,692,1319,1451,1538,1596,1692 'valid':64,235,250,651,680,1036,1072 'valu':338,1174,1180,1221,1969 'verifi':284,1942 'via':15,523,563,1124,1141 'view':1345,1377,1396,1417,1437,1660,1755 'volum':1956 'vs':424 'wait':627 'want':23 'week':765 'window':1983 'within':1216 'without':1735,1738 'work':431,455 'workflow':663,1294,1447 'workspac':1926 'workspace-specif':1925 'write':1683 'x':600 'yes/no':1717 'york':533,739","prices":[{"id":"9af33431-2b6c-4288-8d6e-03f3c5885111","listingId":"e20652e4-886c-47ed-b573-61c7a85b1f54","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"hyperfx-ai","category":"marketing-skills","install_from":"skills.sh"},"createdAt":"2026-05-07T13:06:43.077Z"}],"sources":[{"listingId":"e20652e4-886c-47ed-b573-61c7a85b1f54","source":"github","sourceId":"hyperfx-ai/marketing-skills/google-ads","sourceUrl":"https://github.com/hyperfx-ai/marketing-skills/tree/main/skills/google-ads","isPrimary":false,"firstSeenAt":"2026-05-07T13:06:43.077Z","lastSeenAt":"2026-05-18T19:05:16.297Z"}],"details":{"listingId":"e20652e4-886c-47ed-b573-61c7a85b1f54","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"hyperfx-ai","slug":"google-ads","github":{"repo":"hyperfx-ai/marketing-skills","stars":24,"topics":["agent-skills","ai-agent","claude","claude-code","claude-skills","codex","cursor","google-ads","hermes","marketing","mcp","meta-ads","openclaw","seo"],"license":"mit","html_url":"https://github.com/hyperfx-ai/marketing-skills","pushed_at":"2026-05-09T22:58:46Z","description":"Marketing skills for AI agents — paid ads, social media, SEO, competitor research, creative generation, email, analytics, and more. Powered by Hyper MCP.","skill_md_sha":"35aae3f20247c27cba494c27f08a719d92b75a9a","skill_md_path":"skills/google-ads/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/hyperfx-ai/marketing-skills/tree/main/skills/google-ads"},"layout":"multi","source":"github","category":"marketing-skills","frontmatter":{"name":"google-ads","description":"Plan and create new Google Ads campaigns end-to-end via the Hyper MCP. Use when the user wants to launch Search, Display, or Performance Max campaigns, or mentions Google Ads, AdWords, search ads, display ads, Performance Max, PMax, PPC, Google campaigns, Google blueprint, search term reports, negative keywords, or manager accounts (MCC). For ongoing optimization, search-term cleanup, conversion diagnosis, or restructuring existing accounts, defer to a future `google-ads-operator` sibling skill."},"skills_sh_url":"https://skills.sh/hyperfx-ai/marketing-skills/google-ads"},"updatedAt":"2026-05-18T19:05:16.297Z"}}