Individual skill
shared-budget-updater
Sheet-driven Google Ads shared budget automation. Approve a budget change by adding a row (CID, shared budget ID, amount) to a Google Sheet tab; a daily GitHub Actions cron pushes it via campaignBudgets:mutate (amount only), marks the row done, and sends one consolidated Slack alert for any failed rows. Failed rows retry next run; amounts of $0 or less never reach the API. Use this skill when the user asks to "set up shared budget updater", "push budget changes from a sheet", "bulk update shared budgets on a schedule", or wants a spreadsheet-approved budget pipeline.
shared-budget-updater/SKILL.md
Source commit 90f0e419f2d820789d5e50eee1237ab9fd14dfc6
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Not checked yet
- Last checked
- Nov 11, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 80
- Repository last updated
- Aug 25, 2026
- License
- MIT
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- ai-agents Repository topic
- ai-skills Repository topic
- claude-code Repository topic
- google-ads Repository topic
- google-ads-api Repository topic
- ppc Repository topic
- ppc-automation Repository topic
- engineering Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
.github/workflows/shared-budget-updater.ymlasset · 1,873 bytesREADME.mddoc · 11,826 bytesSKILL.mdcore · 7,850 bytesdiagrams/README.mddoc · 584 bytesdiagrams/run-logic.mmdasset · 1,196 bytesdiagrams/run-logic.svgasset · 213,233 bytesdiagrams/theme.jsonasset · 1,377 bytesdiagrams/workflow-hero.mmdasset · 1,050 bytesdiagrams/workflow-hero.svgasset · 31,433 bytesexamples.mddoc · 2,251 bytesreferences/update-contract.mddoc · 11,625 bytesrequirements.txtdoc · 113 bytesrules.mddoc · 8,719 bytessheet-template.mddoc · 1,900 bytesworkflows/__init__.pyruns · 0 bytesworkflows/_shared/__init__.pyruns · 0 bytesworkflows/_shared/google_ads_auth.pyruns · 1,529 bytesworkflows/_shared/google_auth.pyruns · 977 bytesworkflows/_shared/mutate_error_hints.pyruns · 1,039 bytesworkflows/_shared/sheets_retry.pyruns · 1,013 bytesworkflows/shared_budget_updater/__init__.pyruns · 0 bytesworkflows/shared_budget_updater/ads_api.pyruns · 5,410 bytesworkflows/shared_budget_updater/main.pyruns · 5,476 bytesworkflows/shared_budget_updater/sheets_io.pyruns · 2,041 bytesworkflows/shared_budget_updater/slack.pyruns · 2,745 bytes
Read excerpt
# Shared Budget Updater
A sheet-driven budget pusher for Google Ads. You (or your pacing process)
drop approved changes into a Google Sheet tab — customer ID, shared budget ID,
new amount. A daily GitHub Actions cron pushes each row to Google Ads and
marks it done. **This tool CHANGES live budgets** — the sheet is the approval
gate, so control who can edit the sheet.
## Why this exists
Budget pacing produces a daily list of "set budget X to $Y" decisions. Doing
them by hand in the Ads UI is slow and error-prone at portfolio scale; doing
them with ad-hoc scripts scatters mutation code everywhere. This gives the
decision list one narrow, auditable exit: a sheet row in, one