https://github.com/web-lifter/google-ads-scripts
Welcome to the Google Ads Scripts repository! This repository contains a collection of scripts designed to automate and enhance various aspects of managing Google Ads campaigns.
https://github.com/web-lifter/google-ads-scripts
app-script google-ads google-ads-scripts gs scripts
Last synced: 15 days ago
JSON representation
Welcome to the Google Ads Scripts repository! This repository contains a collection of scripts designed to automate and enhance various aspects of managing Google Ads campaigns.
- Host: GitHub
- URL: https://github.com/web-lifter/google-ads-scripts
- Owner: web-lifter
- License: mit
- Created: 2023-07-28T01:31:23.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2026-03-19T04:22:57.000Z (3 months ago)
- Last Synced: 2026-04-13T14:04:38.068Z (2 months ago)
- Topics: app-script, google-ads, google-ads-scripts, gs, scripts
- Language: JavaScript
- Homepage: https://weblifter.com.au
- Size: 67.4 KB
- Stars: 13
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
# Google Ads Scripts




A curated set of Google Ads Scripts for monitoring, bidding, and campaign management.
## Quick Start
1. Open a script and update the `// === CONFIGURATION ===` section.
2. In Google Ads, go to `Tools & Settings` -> `Scripts` and create a new script.
3. Paste the script content, authorize, and run a preview.
4. Schedule the script at the recommended frequency.
## Scripts
**Bidding**
- `scripts/bidding/automated-bidding.gs` — Applies hourly bid modifiers via ad schedules.
- `scripts/bidding/location-based-bidding.gs` — Adjusts location bid modifiers based on CTR.
- `scripts/bidding/weather-based-bidding.gs` — Updates labels and budgets based on current weather.
- `scripts/bidding/distance-based-bidding.gs` — Adds proximity targets with bid modifiers.
**Monitoring**
- `scripts/monitoring/404-checker.gs` — Pauses ads pointing to 404 pages.
- `scripts/monitoring/broken-link-checker.gs` — Logs non-200 URL responses.
- `scripts/monitoring/automated-alerts.gs` — Emails alerts for low conversions.
- `scripts/monitoring/quality-score-monitor.gs` — Tracks quality score distribution and alerts on low scores.
- `scripts/monitoring/account-anomaly-detector.gs` — Compares today vs 7/30-day averages and alerts on deviations.
- `scripts/monitoring/performance-reporting.gs` — Exports campaign performance to Google Sheets.
- `scripts/monitoring/spreadsheet-reporting.gs` — Exports campaign, ad group, and keyword performance to Sheets.
**Keywords**
- `scripts/keywords/keyword-management.gs` — Pauses underperforming keywords by cost per conversion.
- `scripts/keywords/negative-keyword-manager.gs` — Adds negative keywords for costly zero-conversion terms.
- `scripts/keywords/search-term-analyzer.gs` — Suggests keywords and negatives from search terms.
**Campaign Management**
- `scripts/campaign-management/budget-manager.gs` — Pauses campaigns that exceed a monthly spend cap.
- `scripts/campaign-management/ad-scheduling.gs` — Creates ad schedules if missing.
- `scripts/campaign-management/stock-management.gs` — Enables or pauses ad groups by inventory levels.
**Testing**
- `scripts/testing/ab-split-test.gs` — Alternates two ads by day for A/B testing.
## Compatibility
- GAQL is used for reporting in the scripts that query performance data.
- Responsive Search Ads do not expose `getHeadline()`, so scripts log ad IDs and types instead.
- Budget updates require non-shared budgets with edit access.
## Contributing
See `CONTRIBUTING.md` for guidelines.
## License
MIT. See `LICENSE`.
## Contact
Open-source inquiries: open-source@weblifter.com.au