Pause everything for the holidays
You want every paid-search campaign off during the company shutdown (or a quiet quarter, or a budget freeze). And you want the same state back, exactly, when the shutdown ends.
This is the perfect bidsmith workflow: one PR pauses everything, one PR resumes everything, and the Git history records the exact date and reason.
The pause
-
Make a branch:
Terminal window git checkout -b pause-for-holidays-2026 -
Flip the status in every campaign block. In each
.bidfile with agoogle_ads_campaign, find:status = "ENABLED"and change it to:
status = "PAUSED"If your editor has find-and-replace across files, use it. Otherwise:
Terminal window # Linux / macOSsed -i '' 's/status = "ENABLED"/status = "PAUSED"/g' *.bid -
Plan to verify:
Terminal window bidsmith plan .Expected: one
~ updateper campaign, all showingstatus: "ENABLED" → "PAUSED". Nothing else should change. -
Commit + PR:
Terminal window git add .git commit -m "Pause all campaigns for the 2026 holiday shutdown"git push -u origin pause-for-holidays-2026Open the PR. Reviewers can confirm the
planoutput in the PR description matches what they expect. -
Apply after merge:
Terminal window git checkout main && git pullbidsmith apply .Every campaign is now paused.
The resume
When you’re ready to come back:
git revert <the pause commit>git push…and apply. git revert produces the exact inverse change of the
pause commit, so every campaign flips from PAUSED back to
ENABLED — to its previous state, whatever that was per-campaign.
That’s the magic: you don’t have to remember which campaigns were enabled and which were already paused before the holiday. Git knows.
Variations
- Pause a specific campaign type only — change
statusonly on campaigns whereadvertising_channel_type = "DISPLAY"(or whatever filter applies). - Pause a specific market — if you use the one-file-per-market pattern, the find-and-replace only needs to touch one file.
- Pause a budget instead — set
amount_micros = 0on a shared budget. Cleaner if many campaigns share the same budget.
What this doesn’t do
PAUSED campaigns still exist in Google Ads — they just stop
serving and stop spending. Their quality scores and learning state
are preserved, which is what you want for a temporary shutdown.
To actually delete campaigns, set status = "REMOVED" instead.
That’s irreversible (Google doesn’t restore removed campaigns), so
do it deliberately and not as part of a holiday pause.
See also
bidsmith apply— what runs once the PR merges.- Plan and apply — why this loop is safer than clicking through the UI.
- Roll back a bad change — the same
git revertpattern for fixing mistakes.