Blog Google
AgriciDaniel/claude-blog
Google API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity…
Google Ads API for account discovery, GAQL reporting, campaigns, budgets, assets, conversions, audiences, planning, and billing operations.
$ npx skills add mvanhorn/printing-press-library --skill pp-google-ads -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mvanhorn/printing-press-library pp-google-ads --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .claude/skills && cp -r skills-src/cli-skills/pp-google-ads .claude/skills/pp-google-ads && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "pp-google-ads" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-google-ads into .claude/skills/pp-google-ads/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-google-ads", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-google-adsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add mvanhorn/printing-press-library --skill pp-google-ads -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mvanhorn/printing-press-library pp-google-ads --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .agents/skills && cp -r skills-src/cli-skills/pp-google-ads .agents/skills/pp-google-ads && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pp-google-ads" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-google-ads into .agents/skills/pp-google-ads/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-google-ads", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mvanhorn/printing-press-library --skill pp-google-ads -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mvanhorn/printing-press-library pp-google-ads --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/cli-skills/pp-google-ads .cursor/skills/pp-google-ads && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "pp-google-ads" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-google-ads into .cursor/skills/pp-google-ads/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-google-ads", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/mvanhorn/printing-press-library.git --path cli-skills/pp-google-ads--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add mvanhorn/printing-press-library --skill pp-google-ads -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mvanhorn/printing-press-library pp-google-ads --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/cli-skills/pp-google-ads .gemini/skills/pp-google-ads && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "pp-google-ads" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-google-ads into .gemini/skills/pp-google-ads/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-google-ads", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install mvanhorn/printing-press-library pp-google-adsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add mvanhorn/printing-press-library --skill pp-google-ads -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .github/skills && cp -r skills-src/cli-skills/pp-google-ads .github/skills/pp-google-ads && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "pp-google-ads" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-google-ads into .github/skills/pp-google-ads/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-google-ads", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mvanhorn/printing-press-library --skill pp-google-ads -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mvanhorn/printing-press-library pp-google-ads --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/cli-skills/pp-google-ads .opencode/skills/pp-google-ads && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "pp-google-ads" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-google-ads into .opencode/skills/pp-google-ads/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-google-ads", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
pp-google-adsGoogle Ads API for account discovery, GAQL reporting, campaigns, budgets, assets, conversions, audiences, planning, and billing operations.
Pp Google Ads is an agent skill from mvanhorn/printing-press-library. Google Ads API for account discovery, GAQL reporting, campaigns, budgets, assets, conversions, audiences, planning, and billing operations. Trigger phrases: pull a Google Ads report, GAQL query, check campaign performance, use google-ads.
Its SKILL.md is about 9.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Marketing & SEO, covering Paid advertising. It works with Google Ads. The repository describes itself as: Official library of CLIs generated by the CLI Printing Press. Endorsed, tested, and community-contributed. The licence is Apache-2.0.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 76de244. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadBashFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
goclaudenpxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
GOOGLE_ADS_CLIENT_SECRETGOOGLE_ADS_DEVELOPER_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Pp Google Ads loads about 9.9k tokens when it runs. Until then it costs about 65 tokens; SKILL.md has 3,764 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, BashAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from mvanhorn/printing-press-library at commit 76de244, republished under its Apache-2.0 licence (© mvanhorn). 3,764 words, ~9,881 tokens.
.claude/skills/pp-google-ads/SKILL.md (or your agent's skills folder).<!-- GENERATED FILE — DO NOT EDIT.
This file is a verbatim mirror of library/marketing/google-ads/SKILL.md,
regenerated post-merge by tools/generate-skills/. Hand-edits here are
silently overwritten on the next regen. Edit the library/ source instead.
See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->
This skill drives the google-ads-pp-cli binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first:
$HOME/.local/bin on macOS/Linux and %LOCALAPPDATA%\Programs\PrintingPress\bin on Windows:npx -y @mvanhorn/printing-press-library install google-ads --cli-onlygoogle-ads-pp-cli --version$PATH for the agent/runtime that will invoke this skill.If the npx install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.6 or newer):
go install github.com/mvanhorn/printing-press-library/library/marketing/google-ads/cmd/google-ads-pp-cli@latestIf --version reports "command not found" after install, the runtime cannot see the binary directory on $PATH. Do not proceed with skill commands until verification succeeds.
audience_insights — Google Ads audience insights operations
google-ads-pp-cli audience-insights — Lists date ranges for which audience insights data can be requested.customers — Google Ads customers operations
google-ads-pp-cli customers create-customer-client — Creates a new client under manager. The new client customer is returned.google-ads-pp-cli customers generate-ad-group-themes — Returns a list of suggested AdGroups and suggested modifications (text, match type) for the given keywords.google-ads-pp-cli customers generate-audience-composition-insights — Returns a collection of attributes that are represented in an audience of interest, with metrics that compare each...google-ads-pp-cli customers generate-audience-overlap-insights — Returns a collection of audience attributes along with estimates of the overlap between their potential YouTube...google-ads-pp-cli customers generate-creator-insights — Returns insights for a collection of YouTube Creators and Channels.google-ads-pp-cli customers generate-insights-finder-report — Creates a saved report that can be viewed in the Insights Finder tool.google-ads-pp-cli customers generate-keyword-forecast-metrics — Returns metrics (such as impressions, clicks, total cost) of a keyword forecast for the given campaign.google-ads-pp-cli customers generate-keyword-historical-metrics — Returns a list of keyword historical metrics.google-ads-pp-cli customers generate-keyword-ideas — Returns a list of keyword ideas.google-ads-pp-cli customers generate-reach-forecast — Generates a reach forecast for a given targeting / product mix.google-ads-pp-cli customers generate-shareable-previews — Returns the requested Shareable Preview.google-ads-pp-cli customers generate-suggested-targeting-insights — Returns a collection of targeting insights (e.g. targetable audiences) that are relevant to the requested audience.google-ads-pp-cli customers generate-targeting-suggestion-metrics — Returns potential reach metrics for targetable audiences. This method helps answer questions like 'How many Men aged...google-ads-pp-cli customers generate-trending-insights — Returns insights for trending content on YouTube.google-ads-pp-cli customers get-identity-verification — Returns Identity Verification information.google-ads-pp-cli customers list-accessible-customers — Returns resource names of customers directly accessible by the user authenticating the call.google-ads-pp-cli customers mutate — Updates a customer. Operation statuses are returned.google-ads-pp-cli customers remove-campaign-automatically-created-asset — Removes automatically created assets from a campaign.google-ads-pp-cli customers search-audience-insights-attributes — Searches for audience attributes that can be used to generate insights.google-ads-pp-cli customers start-identity-verification — Starts Identity Verification for a given verification program type. Statuses are returned.google-ads-pp-cli customers suggest-brands — Rpc to return a list of matching brands based on a prefix for this customer.google-ads-pp-cli customers suggest-keyword-themes — Suggests keyword themes to advertise on.google-ads-pp-cli customers suggest-smart-campaign-ad — Suggests a Smart campaign ad compatible with the Ad family of resources, based on data points such as targeting and...google-ads-pp-cli customers suggest-smart-campaign-budget-options — Returns BudgetOption suggestions.google-ads-pp-cli customers suggest-travel-assets — Returns Travel Asset suggestions. Asset suggestions are returned on a best-effort basis. There are no guarantees...google-ads-pp-cli customers upload-call-conversions — Processes the given call conversions.google-ads-pp-cli customers upload-click-conversions — Processes the given click conversions.google-ads-pp-cli customers upload-conversion-adjustments — Processes the given conversion adjustments.google-ads-pp-cli customers upload-user-data — Uploads the given user data.customers_account_budget_proposals — Google Ads customers account budget proposals operations
google-ads-pp-cli customers-account-budget-proposals <customerId> — Creates, updates, or removes account budget proposals. Operation statuses are returned.customers_account_links — Google Ads customers account links operations
google-ads-pp-cli customers-account-links create — Creates an account link.google-ads-pp-cli customers-account-links mutate — Creates or removes an account link. From V5, create is not supported through AccountLinkService.MutateAccountLink....customers_ad_group_ad_labels — Google Ads customers ad group ad labels operations
google-ads-pp-cli customers-ad-group-ad-labels <customerId> — Creates and removes ad group ad labels. Operation statuses are returned.customers_ad_group_ads — Google Ads customers ad group ads operations
google-ads-pp-cli customers-ad-group-ads mutate — Creates, updates, or removes ads. Operation statuses are returned.google-ads-pp-cli customers-ad-group-ads remove-automatically-created-assets — Remove automatically created assets from an ad.customers_ad_group_asset_sets — Google Ads customers ad group asset sets operations
google-ads-pp-cli customers-ad-group-asset-sets <customerId> — Creates, or removes ad group asset sets. Operation statuses are returned.customers_ad_group_assets — Google Ads customers ad group assets operations
google-ads-pp-cli customers-ad-group-assets <customerId> — Creates, updates, or removes ad group assets. Operation statuses are returned.customers_ad_group_bid_modifiers — Google Ads customers ad group bid modifiers operations
google-ads-pp-cli customers-ad-group-bid-modifiers <customerId> — Creates, updates, or removes ad group bid modifiers. Operation statuses are returned.customers_ad_group_criteria — Google Ads customers ad group criteria operations
google-ads-pp-cli customers-ad-group-criteria <customerId> — Creates, updates, or removes criteria. Operation statuses are returned.customers_ad_group_criterion_customizers — Google Ads customers ad group criterion customizers operations
google-ads-pp-cli customers-ad-group-criterion-customizers <customerId> — Creates, updates or removes ad group criterion customizers. Operation statuses are returned.customers_ad_group_criterion_labels — Google Ads customers ad group criterion labels operations
google-ads-pp-cli customers-ad-group-criterion-labels <customerId> — Creates and removes ad group criterion labels. Operation statuses are returned.customers_ad_group_customizers — Google Ads customers ad group customizers operations
google-ads-pp-cli customers-ad-group-customizers <customerId> — Creates, updates or removes ad group customizers. Operation statuses are returned.customers_ad_group_labels — Google Ads customers ad group labels operations
google-ads-pp-cli customers-ad-group-labels <customerId> — Creates and removes ad group labels. Operation statuses are returned.customers_ad_groups — Google Ads customers ad groups operations
google-ads-pp-cli customers-ad-groups <customerId> — Creates, updates, or removes ad groups. Operation statuses are returned.customers_ad_parameters — Google Ads customers ad parameters operations
google-ads-pp-cli customers-ad-parameters <customerId> — Creates, updates, or removes ad parameters. Operation statuses are returned.customers_ads — Google Ads customers ads operations
google-ads-pp-cli customers-ads <customerId> — Updates ads. Operation statuses are returned. Updating ads is not supported for TextAd, ExpandedDynamicSearchAd,...customers_asset_generations — Google Ads customers asset generations operations
google-ads-pp-cli customers-asset-generations generate-images — Uses generative AI to generate images that can be used as assets in a campaign.google-ads-pp-cli customers-asset-generations generate-text — Uses generative AI to generate text that can be used as assets in a campaign.customers_asset_group_assets — Google Ads customers asset group assets operations
google-ads-pp-cli customers-asset-group-assets <customerId> — Creates, updates or removes asset group assets. Operation statuses are returned.customers_asset_group_listing_group_filters — Google Ads customers asset group listing group filters operations
google-ads-pp-cli customers-asset-group-listing-group-filters <customerId> — Creates, updates or removes asset group listing group filters. Operation statuses are returned.customers_asset_group_signals — Google Ads customers asset group signals operations
google-ads-pp-cli customers-asset-group-signals <customerId> — Creates or removes asset group signals. Operation statuses are returned.customers_asset_groups — Google Ads customers asset groups operations
google-ads-pp-cli customers-asset-groups <customerId> — Creates, updates or removes asset groups. Operation statuses are returned.customers_asset_set_assets — Google Ads customers asset set assets operations
google-ads-pp-cli customers-asset-set-assets <customerId> — Creates, updates or removes asset set assets. Operation statuses are returned.customers_asset_sets — Google Ads customers asset sets operations
google-ads-pp-cli customers-asset-sets <customerId> — Creates, updates or removes asset sets. Operation statuses are returned.customers_assets — Google Ads customers assets operations
google-ads-pp-cli customers-assets <customerId> — Creates assets. Operation statuses are returned.customers_audiences — Google Ads customers audiences operations
google-ads-pp-cli customers-audiences <customerId> — Creates audiences. Operation statuses are returned.customers_batch_jobs — Google Ads customers batch jobs operations
google-ads-pp-cli customers-batch-jobs add-operations — Add operations to the batch job.google-ads-pp-cli customers-batch-jobs list-results — Returns the results of the batch job. The job must be done. Supports standard list paging.google-ads-pp-cli customers-batch-jobs mutate — Mutates a batch job.google-ads-pp-cli customers-batch-jobs run — Runs the batch job. The Operation.metadata field type is BatchJobMetadata. When finished, the long running operation...customers_bidding_data_exclusions — Google Ads customers bidding data exclusions operations
google-ads-pp-cli customers-bidding-data-exclusions <customerId> — Creates, updates, or removes data exclusions. Operation statuses are returned.customers_bidding_seasonality_adjustments — Google Ads customers bidding seasonality adjustments operations
google-ads-pp-cli customers-bidding-seasonality-adjustments <customerId> — Creates, updates, or removes seasonality adjustments. Operation statuses are returned.customers_bidding_strategies — Google Ads customers bidding strategies operations
google-ads-pp-cli customers-bidding-strategies <customerId> — Creates, updates, or removes bidding strategies. Operation statuses are returned.customers_billing_setups — Google Ads customers billing setups operations
google-ads-pp-cli customers-billing-setups <customerId> — Creates a billing setup, or cancels an existing billing setup.customers_campaign_asset_sets — Google Ads customers campaign asset sets operations
google-ads-pp-cli customers-campaign-asset-sets <customerId> — Creates, updates or removes campaign asset sets. Operation statuses are returned.customers_campaign_assets — Google Ads customers campaign assets operations
google-ads-pp-cli customers-campaign-assets <customerId> — Creates, updates, or removes campaign assets. Operation statuses are returned.customers_campaign_bid_modifiers — Google Ads customers campaign bid modifiers operations
google-ads-pp-cli customers-campaign-bid-modifiers <customerId> — Creates, updates, or removes campaign bid modifiers. Operation statuses are returned.customers_campaign_budgets — Google Ads customers campaign budgets operations
google-ads-pp-cli customers-campaign-budgets <customerId> — Creates, updates, or removes campaign budgets. Operation statuses are returned.customers_campaign_conversion_goals — Google Ads customers campaign conversion goals operations
google-ads-pp-cli customers-campaign-conversion-goals <customerId> — Creates, updates or removes campaign conversion goals. Operation statuses are returned.customers_campaign_criteria — Google Ads customers campaign criteria operations
google-ads-pp-cli customers-campaign-criteria <customerId> — Creates, updates, or removes criteria. Operation statuses are returned.customers_campaign_customizers — Google Ads customers campaign customizers operations
google-ads-pp-cli customers-campaign-customizers <customerId> — Creates, updates or removes campaign customizers. Operation statuses are returned.customers_campaign_drafts — Google Ads customers campaign drafts operations
google-ads-pp-cli customers-campaign-drafts list-async-errors — Returns all errors that occurred during CampaignDraft promote. Throws an error if called before campaign draft is...google-ads-pp-cli customers-campaign-drafts mutate — Creates, updates, or removes campaign drafts. Operation statuses are returned.google-ads-pp-cli customers-campaign-drafts promote — Promotes the changes in a draft back to the base campaign. This method returns a Long Running Operation (LRO)...customers_campaign_goal_configs — Google Ads customers campaign goal configs operations
google-ads-pp-cli customers-campaign-goal-configs <customerId> — Create or update campaign goal configs.customers_campaign_groups — Google Ads customers campaign groups operations
google-ads-pp-cli customers-campaign-groups <customerId> — Creates, updates, or removes campaign groups. Operation statuses are returned.customers_campaign_labels — Google Ads customers campaign labels operations
google-ads-pp-cli customers-campaign-labels <customerId> — Creates and removes campaign-label relationships. Operation statuses are returned.customers_campaign_lifecycle_goal — Google Ads customers campaign lifecycle goal operations
google-ads-pp-cli customers-campaign-lifecycle-goal <customerId> — Process the given campaign lifecycle configurations.customers_campaign_shared_sets — Google Ads customers campaign shared sets operations
google-ads-pp-cli customers-campaign-shared-sets <customerId> — Creates or removes campaign shared sets. Operation statuses are returned.customers_campaigns — Google Ads customers campaigns operations
google-ads-pp-cli customers-campaigns enable-pmax-brand-guidelines — Enables Brand Guidelines for Performance Max campaigns.google-ads-pp-cli customers-campaigns mutate — Creates, updates, or removes campaigns. Operation statuses are returned.customers_conversion_actions — Google Ads customers conversion actions operations
google-ads-pp-cli customers-conversion-actions <customerId> — Creates, updates or removes conversion actions. Operation statuses are returned.customers_conversion_custom_variables — Google Ads customers conversion custom variables operations
google-ads-pp-cli customers-conversion-custom-variables <customerId> — Creates or updates conversion custom variables. Operation statuses are returned.customers_conversion_goal_campaign_configs — Google Ads customers conversion goal campaign configs operations
google-ads-pp-cli customers-conversion-goal-campaign-configs <customerId> — Creates, updates or removes conversion goal campaign config. Operation statuses are returned.customers_conversion_value_rule_sets — Google Ads customers conversion value rule sets operations
google-ads-pp-cli customers-conversion-value-rule-sets <customerId> — Creates, updates or removes conversion value rule sets. Operation statuses are returned.customers_conversion_value_rules — Google Ads customers conversion value rules operations
google-ads-pp-cli customers-conversion-value-rules <customerId> — Creates, updates, or removes conversion value rules. Operation statuses are returned.customers_custom_audiences — Google Ads customers custom audiences operations
google-ads-pp-cli customers-custom-audiences <customerId> — Creates or updates custom audiences. Operation statuses are returned.customers_custom_conversion_goals — Google Ads customers custom conversion goals operations
google-ads-pp-cli customers-custom-conversion-goals <customerId> — Creates, updates or removes custom conversion goals. Operation statuses are returned.customers_custom_interests — Google Ads customers custom interests operations
google-ads-pp-cli customers-custom-interests <customerId> — Creates or updates custom interests. Operation statuses are returned.customers_customer_asset_sets — Google Ads customers customer asset sets operations
google-ads-pp-cli customers-customer-asset-sets <customerId> — Creates, or removes customer asset sets. Operation statuses are returned.customers_customer_assets — Google Ads customers customer assets operations
google-ads-pp-cli customers-customer-assets <customerId> — Creates, updates, or removes customer assets. Operation statuses are returned.customers_customer_client_links — Google Ads customers customer client links operations
google-ads-pp-cli customers-customer-client-links <customerId> — Creates or updates a customer client link. Operation statuses are returned.customers_customer_conversion_goals — Google Ads customers customer conversion goals operations
google-ads-pp-cli customers-customer-conversion-goals <customerId> — Creates, updates or removes customer conversion goals. Operation statuses are returned.customers_customer_customizers — Google Ads customers customer customizers operations
google-ads-pp-cli customers-customer-customizers <customerId> — Creates, updates or removes customer customizers. Operation statuses are returned.customers_customer_labels — Google Ads customers customer labels operations
google-ads-pp-cli customers-customer-labels <customerId> — Creates and removes customer-label relationships. Operation statuses are returned.customers_customer_lifecycle_goal — Google Ads customers customer lifecycle goal operations
google-ads-pp-cli customers-customer-lifecycle-goal <customerId> — Process the given customer lifecycle configurations.customers_customer_manager_links — Google Ads customers customer manager links operations
google-ads-pp-cli customers-customer-manager-links move-manager-link — Moves a client customer to a new manager customer. This simplifies the complex request that requires two operations...google-ads-pp-cli customers-customer-manager-links mutate — Updates customer manager links. Operation statuses are returned.customers_customer_negative_criteria — Google Ads customers customer negative criteria operations
google-ads-pp-cli customers-customer-negative-criteria <customerId> — Creates or removes criteria. Operation statuses are returned.customers_customer_sk_ad_network_conversion_value_schemas — Google Ads customers customer sk ad network conversion value schemas operations
google-ads-pp-cli customers-customer-sk-ad-network-conversion-value-schemas <customerId> — Creates or updates the CustomerSkAdNetworkConversionValueSchema.customers_customer_user_access_invitations — Google Ads customers customer user access invitations operations
google-ads-pp-cli customers-customer-user-access-invitations <customerId> — Creates or removes an access invitation.customers_customer_user_accesses — Google Ads customers customer user accesses operations
google-ads-pp-cli customers-customer-user-accesses <customerId> — Updates, removes permission of a user on a given customer. Operation statuses are returned.customers_customizer_attributes — Google Ads customers customizer attributes operations
google-ads-pp-cli customers-customizer-attributes <customerId> — Creates, updates or removes customizer attributes. Operation statuses are returned.customers_data_links — Google Ads customers data links operations
google-ads-pp-cli customers-data-links create — Creates a data link. The requesting Google Ads account name and account ID will be shared with the third party (such...google-ads-pp-cli customers-data-links remove — Remove a data link.google-ads-pp-cli customers-data-links update — Update a data link.customers_experiment_arms — Google Ads customers experiment arms operations
google-ads-pp-cli customers-experiment-arms <customerId> — Creates, updates, or removes experiment arms. Operation statuses are returned.customers_experiments — Google Ads customers experiments operations
google-ads-pp-cli customers-experiments end-experiment — Immediately ends an experiment, changing the experiment's scheduled end date and without waiting for end of day. End...google-ads-pp-cli customers-experiments graduate-experiment — Graduates an experiment to a full campaign.google-ads-pp-cli customers-experiments list-experiment-async-errors — Returns all errors that occurred during the last Experiment update (either scheduling or promotion). Supports...google-ads-pp-cli customers-experiments mutate — Creates, updates, or removes experiments. Operation statuses are returned.google-ads-pp-cli customers-experiments promote-experiment — Promotes the trial campaign thus applying changes in the trial campaign to the base campaign. This method returns a...google-ads-pp-cli customers-experiments schedule-experiment — Schedule an experiment. The in design campaign will be converted into a real campaign (called the experiment...customers_goals — Google Ads customers goals operations
google-ads-pp-cli customers-goals <customerId> — Create or update goals.customers-google-ads — Google Ads customers google ads operations
google-ads-pp-cli customers-google-ads mutate — Creates, updates, or removes resources. This method supports atomic transactions with multiple types of resources....google-ads-pp-cli customers-google-ads search — Returns all rows that match the search query.google-ads-pp-cli customers-google-ads search-stream — Returns all rows that match the search stream query.customers_invoices — Google Ads customers invoices operations
google-ads-pp-cli customers-invoices <customerId> — Returns all invoices associated with a billing setup, for a given month.customers_keyword_plan_ad_group_keywords — Google Ads customers keyword plan ad group keywords operations
google-ads-pp-cli customers-keyword-plan-ad-group-keywords <customerId> — Creates, updates, or removes Keyword Plan ad group keywords. Operation statuses are returned.customers_keyword_plan_ad_groups — Google Ads customers keyword plan ad groups operations
google-ads-pp-cli customers-keyword-plan-ad-groups <customerId> — Creates, updates, or removes Keyword Plan ad groups. Operation statuses are returned.customers_keyword_plan_campaign_keywords — Google Ads customers keyword plan campaign keywords operations
google-ads-pp-cli customers-keyword-plan-campaign-keywords <customerId> — Creates, updates, or removes Keyword Plan campaign keywords. Operation statuses are returned.customers_keyword_plan_campaigns — Google Ads customers keyword plan campaigns operations
google-ads-pp-cli customers-keyword-plan-campaigns <customerId> — Creates, updates, or removes Keyword Plan campaigns. Operation statuses are returned.customers_keyword_plans — Google Ads customers keyword plans operations
google-ads-pp-cli customers-keyword-plans <customerId> — Creates, updates, or removes keyword plans. Operation statuses are returned.customers_labels — Google Ads customers labels operations
google-ads-pp-cli customers-labels <customerId> — Creates, updates, or removes labels. Operation statuses are returned.customers_local_services — Google Ads customers local services operations
google-ads-pp-cli customers-local-services <customerId> — RPC to append Local Services Lead Conversation resources to Local Services Lead resources.customers_local_services_leads — Google Ads customers local services leads operations
google-ads-pp-cli customers-local-services-leads <resourceName> — RPC to provide feedback on Local Services Lead resources.customers_offline_user_data_jobs — Google Ads customers offline user data jobs operations
google-ads-pp-cli customers-offline-user-data-jobs add-operations — Adds operations to the offline user data job.google-ads-pp-cli customers-offline-user-data-jobs create — Creates an offline user data job.google-ads-pp-cli customers-offline-user-data-jobs run — Runs the offline user data job. When finished, the long running operation will contain the processing result or...customers_operations — Google Ads customers operations operations
google-ads-pp-cli customers-operations cancel — Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the...google-ads-pp-cli customers-operations delete — Deletes a long-running operation. This method indicates that the client is no longer interested in the operation...google-ads-pp-cli customers-operations get — Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at...google-ads-pp-cli customers-operations list — Lists operations that match the specified filter in the request. If the server doesn't support this method, it...google-ads-pp-cli customers-operations wait — Waits until the specified long-running operation is done or reaches at most a specified timeout, returning the...customers_payments_accounts — Google Ads customers payments accounts operations
google-ads-pp-cli customers-payments-accounts <customerId> — Returns all payments accounts associated with all managers between the login customer ID and specified serving...customers_product_link_invitations — Google Ads customers product link invitations operations
google-ads-pp-cli customers-product-link-invitations create — Creates a product link invitation.google-ads-pp-cli customers-product-link-invitations remove — Remove a product link invitation.google-ads-pp-cli customers-product-link-invitations update — Update a product link invitation.customers_product_links — Google Ads customers product links operations
google-ads-pp-cli customers-product-links create — Creates a product link.google-ads-pp-cli customers-product-links remove — Removes a product link.customers_recommendation_subscriptions — Google Ads customers recommendation subscriptions operations
google-ads-pp-cli customers-recommendation-subscriptions <customerId> — Mutates given subscription with corresponding apply parameters.customers_recommendations — Google Ads customers recommendations operations
google-ads-pp-cli customers-recommendations apply — Applies given recommendations with corresponding apply parameters.google-ads-pp-cli customers-recommendations dismiss — Dismisses given recommendations.google-ads-pp-cli customers-recommendations generate — Generates Recommendations based off the requested recommendation_types.customers_remarketing_actions — Google Ads customers remarketing actions operations
google-ads-pp-cli customers-remarketing-actions <customerId> — Creates or updates remarketing actions. Operation statuses are returned.customers_shared_criteria — Google Ads customers shared criteria operations
google-ads-pp-cli customers-shared-criteria <customerId> — Creates or removes shared criteria. Operation statuses are returned.customers_shared_sets — Google Ads customers shared sets operations
google-ads-pp-cli customers-shared-sets <customerId> — Creates, updates, or removes shared sets. Operation statuses are returned.customers_smart_campaign_settings — Google Ads customers smart campaign settings operations
google-ads-pp-cli customers-smart-campaign-settings get-smart-campaign-status — Returns the status of the requested Smart campaign.google-ads-pp-cli customers-smart-campaign-settings mutate — Updates Smart campaign settings for campaigns.customers_third_party_app_analytics_links — Google Ads customers third party app analytics links operations
google-ads-pp-cli customers-third-party-app-analytics-links <resourceName> — Regenerate ThirdPartyAppAnalyticsLink.shareable_link_id that should be provided to the third party when setting up...customers_user_list_customer_types — Google Ads customers user list customer types operations
google-ads-pp-cli customers-user-list-customer-types <customerId> — Attach or remove user list customer types. Operation statuses are returned.customers_user_lists — Google Ads customers user lists operations
google-ads-pp-cli customers-user-lists <customerId> — Creates or updates user lists. Operation statuses are returned.geo_target_constants — Google Ads geo target constants operations
google-ads-pp-cli geo-target-constants — Returns GeoTargetConstant suggestions by location name or by resource name.google_ads — Google Ads google ads operations
google-ads-pp-cli google-ads generate-conversion-rates — Returns a collection of conversion rate suggestions for supported plannable products.google-ads-pp-cli google-ads list-plannable-locations — Returns the list of plannable locations (for example, countries).google-ads-pp-cli google-ads list-plannable-products — Returns the list of per-location plannable YouTube ad formats with allowed targeting.google-ads-pp-cli google-ads list-plannable-user-interests — Returns the list of plannable user interests. A plannable user interest is one that can be targeted in a reach...google-ads-pp-cli google-ads list-plannable-user-lists — Returns the list of plannable user lists with their plannable status. User lists may not be plannable for a number...google_ads_fields — Google Ads google ads fields operations
google-ads-pp-cli google-ads-fields get — Returns just the requested field.google-ads-pp-cli google-ads-fields search — Returns all fields that match the search query.keyword_theme_constants — Google Ads keyword theme constants operations
google-ads-pp-cli keyword-theme-constants — Returns KeywordThemeConstant suggestions by keyword themes.When you know what you want to do but not which command does it, ask the CLI directly:
google-ads-pp-cli which "<capability in your own words>"which resolves a natural-language capability query to the best matching command from this CLI's curated feature index. Exit code 0 means at least one match; exit code 2 means no confident match — fall back to --help or use a narrower query.
Authenticate via the OAuth2 flow. auth login opens a browser, runs the consent flow, and stores a refresh token so access tokens are minted automatically:
google-ads-pp-cli auth login --client-id YOUR_CLIENT_ID --client-secret YOUR_CLIENT_SECRET--client-id / --client-secret default to $GOOGLE_ADS_CLIENT_ID / $GOOGLE_ADS_CLIENT_SECRET when set. Check or clear the stored grant with google-ads-pp-cli auth status and google-ads-pp-cli auth logout.
Also set GOOGLE_ADS_DEVELOPER_TOKEN; set GOOGLE_ADS_LOGIN_CUSTOMER_ID when calling through a manager account.
Run google-ads-pp-cli doctor to verify setup.
Add --agent to any command. Expands to: --json --compact --no-input --no-color --yes.
Pipeable — JSON on stdout, errors on stderr
Filterable — --select keeps a subset of fields. Dotted paths descend into nested structures; arrays traverse element-wise. Critical for keeping context small on verbose APIs:
google-ads-pp-cli customers-google-ads search mock-value --agent --select id,name,statusPreviewable — --dry-run shows the request without sending
Offline-friendly — sync/search commands can use the local SQLite store when available
Non-interactive — never prompts, every input is a flag
Explicit retries — use --idempotent only when an already-existing create should count as success, and --ignore-missing only when a missing delete target should count as success
Commands that read from the local store or the API wrap output in a provenance envelope:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}Parse .results for data and .meta.source to know whether it's live or local. A human-readable N results (live) summary is printed to stderr only when stdout is a terminal — piped/agent consumers get pure JSON on stdout.
When you (or the agent) notice something off about this CLI, record it:
google-ads-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
google-ads-pp-cli feedback --stdin < notes.txt
google-ads-pp-cli feedback list --json --limit 10Entries are stored locally at ~/.google-ads-pp-cli/feedback.jsonl. They are never POSTed unless GOOGLE_ADS_FEEDBACK_ENDPOINT is set AND either --send is passed or GOOGLE_ADS_FEEDBACK_AUTO_SEND=true. Default behavior is local-only.
Write what surprised you, not a bug report. Short, specific, one line: that is the part that compounds.
Every command accepts --deliver <sink>. The output goes to the named sink in addition to (or instead of) stdout, so agents can route command results without hand-piping. Three sinks are supported:
| Sink | Effect |
|---|---|
stdout | Default; write to stdout only |
file:<path> | Atomically write output to <path> (tmp + rename) |
webhook:<url> | POST the output body to the URL (application/json or application/x-ndjson when --compact) |
Unknown schemes are refused with a structured error naming the supported set. Webhook failures return non-zero and log the URL + HTTP status on stderr.
A profile is a saved set of flag values, reused across invocations. Use it when a scheduled agent calls the same command every run with the same configuration - HeyGen's "Beacon" pattern.
google-ads-pp-cli profile save briefing --json
google-ads-pp-cli --profile briefing customers-google-ads search mock-value
google-ads-pp-cli profile list --json
google-ads-pp-cli profile show briefing
google-ads-pp-cli profile delete briefing --yesExplicit flags always win over profile values; profile values win over defaults. agent-context lists all available profiles under available_profiles so introspecting agents discover them at runtime.
For endpoints that submit long-running work, the generator detects the submit-then-poll pattern (a job_id/task_id/operation_id field in the response plus a sibling status endpoint) and wires up three extra flags on the submitting command:
| Flag | Purpose |
|---|---|
--wait | Block until the job reaches a terminal status instead of returning the job ID immediately |
--wait-timeout | Maximum wait duration (default 10m, 0 means no timeout) |
--wait-interval | Initial poll interval (default 2s; grows with exponential backoff up to 30s) |
Use async submission without --wait when you want to fire-and-forget; use --wait when you want one command to return the finished artifact.
| Code | Meaning |
|---|---|
| 0 | Success |
| 2 | Usage error (wrong arguments) |
| 3 | Resource not found |
| 4 | Authentication required |
| 5 | API error (upstream issue) |
| 7 | Rate limited (wait and retry) |
| 10 | Config error |
Parse $ARGUMENTS:
help, or --help → show google-ads-pp-cli --help outputinstall → ends with mcp → MCP installation; otherwise → see Prerequisites above--agent)go install github.com/mvanhorn/printing-press-library/library/marketing/google-ads/cmd/google-ads-pp-mcp@latestclaude mcp add google-ads-pp-mcp -- google-ads-pp-mcpclaude mcp listwhich google-ads-pp-cli
If not found, offer to install (see Prerequisites at the top of this skill).--agent flag:google-ads-pp-cli <command> [subcommand] [args] --agentgoogle-ads-pp-cli <command> --help.© mvanhorn, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in cli-skills/pp-google-ads of mvanhorn/printing-press-library.
Open the folder on GitHubat commit 76de244
Pp Google Ads next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Pp Google Ads this skillmvanhorn/printing-press-library | 2.1k | — | ~9.9k | Automated safety check: Notes | Apache-2.0 | |
| Blog GoogleAgriciDaniel/claude-blog | 2.3k | 1 repos | ~3.3k | Automated safety check: Notes | MIT | |
| AdsCesarjoquin/Marketing-Skills | 201 | 1 repos | ~3.5k | Automated safety check: Pass | MIT | |
| Adscoreyhaines31/marketingskills | 54k | 1 repos | ~7k | Automated safety check: Pass | MIT | |
| Google Adssuperdesigndev/treg | 4.9k | — | ~1.9k | Automated safety check: Pass | Custom licence | |
| Money Adsiamzifei/show-me-the-money | 1k | — | ~2.4k | Automated safety check: Pass | Custom licence |
AgriciDaniel/claude-blog
Google API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity…
Cesarjoquin/Marketing-Skills
When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms.
coreyhaines31/marketingskills
When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms.
superdesigndev/treg
Traps when running Google Ads through treg — the API requirements and cleanup semantics that cost round-trips or money.
iamzifei/show-me-the-money
Paid advertising automation for Google Ads, Meta Ads, and other ad platforms.
freekmurze/dotfiles
When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms.
mvanhorn/printing-press-library
Desktop automation through the real Rust agent-desktop CLI, published in Printing Press through a small bridge.
mvanhorn/printing-press-library
Search, browse, and download Google Fonts from the terminal via the gfonts CLI.
mvanhorn/printing-press-library
The free, offline Trigger phrases: search 1688 for, find a factory on 1688 for, wholesale price on 1688 for, who is the cheapest supplier on 1688 for, compare 1688 suppliers for, use 1688, run 1688.
mvanhorn/printing-press-library
Inspect known Activity Japan plan IDs or URLs, compare dated prices and sessions, check language-sitemap coverage, and hand off to canonical booking pages.
mvanhorn/printing-press-library
Every Admin By Request portal action, plus a local SQLite mirror of audit, events, inventory and requests for ad-hoc...
mvanhorn/printing-press-library
macOS screen capture, window recording, GIF conversion, and agent evidence bundles from the terminal.
Works with
Categories
Google Ads API for account discovery, GAQL reporting, campaigns, budgets, assets, conversions, audiences, planning, and billing operations. Pp Google Ads is an agent skill from mvanhorn/printing-press-library. Google Ads API for account discovery, GAQL reporting, campaigns, budgets, assets, conversions, audiences, planning, and billing operations.
Pp Google Ads fits situations like: phrases: pull a Google Ads report; check campaign performance.
Run `npx skills add mvanhorn/printing-press-library --skill pp-google-ads -a claude-code`. Or copy the skill folder (cli-skills/pp-google-ads in mvanhorn/printing-press-library) into .claude/skills/pp-google-ads in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mvanhorn/printing-press-library --skill pp-google-ads -a codex`. Or copy the skill folder (cli-skills/pp-google-ads in mvanhorn/printing-press-library) into .agents/skills/pp-google-ads in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mvanhorn/printing-press-library --skill pp-google-ads -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pp-google-ads, .gemini/skills/pp-google-ads, .github/skills/pp-google-ads and .opencode/skills/pp-google-ads in your project.
Going by SKILL.md and its folder, Pp Google Ads needs the command-line tools its instructions call (go, claude and npx) and credentials named GOOGLE_ADS_CLIENT_SECRET and GOOGLE_ADS_DEVELOPER_TOKEN. Our summary lists: Node.js. Its frontmatter pre-approves these tools: Read, Bash.
SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Pp Google Ads is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 9.9k tokens (SKILL.md is roughly 40k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Pp Google Ads: Blog Google (AgriciDaniel/claude-blog, 2.3k stars), Ads (Cesarjoquin/Marketing-Skills, 201 stars), Ads (coreyhaines31/marketingskills, 54k stars) and Google Ads (superdesigndev/treg, 4.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
mvanhorn (a GitHub user) maintains it in mvanhorn/printing-press-library, which has 2,056 GitHub stars. The repository holds 506 skills in this directory. The repository was last updated on October 9, 2026.
Source: mvanhorn/printing-press-library on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.