Skip to content
spring-sale.bid
resource "google_ads_campaign" "spring_sale" { name = "Spring Sale 2026" status = "ENABLED" advertising_channel_type = "SEARCH" campaign_budget = google_ads_campaign_budget.daily.id locations = ["US", "CA"] }

bidsmith

Manage Google Ads campaigns as code. Version-controlled, reviewable, replayable.

Why bidsmith

Four reasons teams move their Google Ads out of the dashboard and into version control.

Every change is a pull request

Edit a file, open a PR, get a teammate to review. No more “who paused that campaign last Friday?” — Git tells you.

Preview before you spend

bidsmith plan shows you exactly what will change in Google Ads before a single euro moves. No surprises.

One source of truth

Your .bid files describe the campaigns you want. bidsmith makes Google Ads match. Run it twice — the second run does nothing.

Designed for marketers

No SQL, no scripting, no API tokens to copy-paste every week. Edit plain text files in any editor, commit, push, apply.

How it works

From a plain-text file to a live campaign in three commands.

1

Write

Describe the campaigns, ad groups, and keywords you want in .bid files — and version them in Git like any other code.

2

Preview

Run bidsmith plan for a line-by-line diff of what will change. Nothing touches your account yet.

3

Apply

Run bidsmith apply and bidsmith makes Google Ads match your files — exactly what the plan showed.

Where to next

Already installed?

Jump into the first tutorial and ship a campaign end-to-end.

Looking something up?

The glossary is the place for “what does X mean?” Reference docs for every block and command are coming.