Google Sheet Remote Control
Control campaigns from a shared Google Sheet — enable/pause, change budgets, and an ALL CAMPAIGNS emergency stop — with results written back as an audit log. No Google Ads access needed for the sheet's editors.
by Frederick Vallaeys (sheet-control concept), chiliad (implementation)·chiliad.io
Overview
Google Sheet Remote Control turns a shared spreadsheet into a campaign control panel: one row per campaign with an action column (ENABLE/PAUSE) and an optional new daily budget. A special ALL CAMPAIGNS row with PAUSE is the emergency stop for the whole account. The script applies requested changes on each run and writes the result with a timestamp back into the sheet — so the same document is the control panel and the audit log. Clients and teammates get operational control without touching Google Ads.
Setup
- 1Open your Google Ads account and go to Tools → Bulk Actions → Scripts.
- 2Click the + button to create a new script and paste the code below.
- 3Run once — the script creates the control sheet and logs its URL. Put that URL into SPREADSHEET_URL and share the sheet with whoever needs control.
- 4Keep PREVIEW_MODE = true for the first scheduled runs, verify the logged intentions, then set it to false.
- 5Schedule hourly.
Configuration Variables
| Variable | Default |
|---|---|
SPREADSHEET_URL | (empty) |
SHEET_NAME | Control |
PREVIEW_MODE | true |
EMAIL_ADDRESS | (empty) |
Expected Output
=== Sheet Remote Control (LIVE) === Brand — Exact: budget 80.00 -> 120.00 Generic — Broad: paused EMERGENCY STOP: paused 14 campaign(s) Email sent to you@example.com
Notes
This script CHANGES campaign state from external input — that's the point, and the risk. Keep the sheet's edit access tight, keep PREVIEW_MODE on until a dry run looks right, and remember the emergency stop pauses everything (re-enable manually or via the sheet afterward). Campaign matching is by exact name.