List accessible customers (yekar.google-ads.list-accessible-customers) | Read | The Google Ads accounts this connection's credentials can reach directly, as digit-only customer ids. Call this first: everything else takes a customer id, and this is the only way to learn which ones the token actually has. Accounts nested under a manager are NOT listed here - the note says how to enumerate those. |
Get account (yekar.google-ads.get-customer) | Read | One Google Ads account's name, currency, time zone and type. Two flags matter more than they look: isManager accounts hold no campaigns of their own, and isTestAccount accounts never serve or spend - a test-level developer token can reach only those, so an account that looks empty may simply be the wrong one. |
Search (GAQL) (yekar.google-ads.search) | Read | Run any Google Ads Query Language query against an account and get the rows back. Use this for anything the typed report tools do not cover - Google Ads has hundreds of resources. Values are normalized: int64s arrive as real numbers rather than strings, and every micros field gains a major-unit sibling (costMicros → cost). Ask for a total only when you need one; it is extra work Google charges for. |
List campaigns (yekar.google-ads.list-campaigns) | Read | Campaigns in an account with their status, channel, budget and performance. Give a date range for recent performance - without one the metrics are LIFETIME totals, which is a different question. Costs come back both as micros (as stored) and in the account's currency. |
List ad groups (yekar.google-ads.list-ad-groups) | Read | Ad groups in an account or one campaign, with status, bids and performance. As with campaigns, no date range means LIFETIME metrics rather than recent ones. |
List ads (yekar.google-ads.list-ads) | Read | The ads in an account, ad group or campaign, with their type, final URLs, approval status and performance. Responsive search ads carry their headlines and descriptions as asset lists rather than single strings - the rows keep that shape. |
List keywords (yekar.google-ads.list-keywords) | Read | Keyword criteria in an account, ad group or campaign, with match type, bids, quality score and performance. Positive and NEGATIVE keywords live in the same resource and are told apart by the negative flag - a negative keyword blocks traffic and legitimately shows zero metrics, which is not the same as underperforming. |
List search terms (yekar.google-ads.list-search-terms) | Read | What people actually typed before an ad served, with the keyword each matched and the resulting performance. Google withholds low-volume terms for privacy, so these rows deliberately do NOT sum to the campaign's totals - the difference is Google's redaction, not missing data. |
List campaign budgets (yekar.google-ads.list-budgets) | Read | The campaign budgets in an account, with their daily amount, delivery method and how many campaigns each serves. Read this before changing a budget: a shared budget's change lands on every campaign referencing it. |
List conversion actions (yekar.google-ads.list-conversion-actions) | Read | What this account counts as a conversion, with each action's category, status, counting rule and value. Read this before interpreting any conversions metric: only actions marked primary contribute to the conversions column in the other reports. |
List lead form submissions (yekar.google-ads.list-lead-form-submissions) | Read | Leads submitted through Google Ads lead form extensions, with the submitted field values and the campaign, ad group and ad that produced each. Google keeps this data for 30 days only - an empty result for an older window means it has been deleted, not that nobody submitted. |
Set campaign status (yekar.google-ads.update-campaign-status) | Write | Enable or pause a campaign. Enabling resumes spending at once. Removal is deliberately not offered - in Google Ads it is permanent and a removed campaign can never be brought back, so pausing is the reversible way to stop a campaign. |
Set ad group status (yekar.google-ads.update-ad-group-status) | Write | Enable or pause an ad group. Note the parent rule: an enabled ad group under a paused campaign still serves nothing, and Google reports no error for that combination - so verify the campaign as well. |
Set campaign budget (yekar.google-ads.update-campaign-budget) | Write | Change a campaign budget's daily amount, given in the account's own currency (the conversion to Google's micros happens here - do not pre-multiply). Check List campaign budgets first: a shared budget's change lands on every campaign using it. Google treats a daily budget as an average and may spend up to twice it on a single day. |