Skip to content

Make an audience observe instead of target

An audience attached to an ad group can mean two completely different things, and the audience itself doesn’t say which:

  • Targeting — only people in the audience are eligible to see the ad.
  • Observation — everyone stays eligible; being in the audience only changes what you bid.

Same three lines of .bid, and reach that differs by orders of magnitude. targeting_setting is where you settle it.

Observe an audience

resource "google_ads_ad_group" "remarketing" {
name = "Remarketing — cart abandoners"
campaign = google_ads_campaign.summer_search.id
cpc_bid_micros = 2000000
targeting_setting {
target_restriction {
targeting_dimension = "AUDIENCE"
bid_only = true
}
}
}

bid_only = true is observation. The ad group still shows to everyone who matches its keywords; the audience is there so you can bid up for people who already have something in their cart.

Target it instead

targeting_setting {
target_restriction {
targeting_dimension = "AUDIENCE"
bid_only = false
}
}

false is targeting: now the audience is a gate, and nobody outside it sees the ad. That’s a one-word diff, which is the point — the change is reviewable instead of buried in a settings screen.

Pin down more than one dimension

Repeat the inner block. Each dimension is decided on its own:

targeting_setting {
target_restriction {
targeting_dimension = "AUDIENCE"
bid_only = false
}
target_restriction {
targeting_dimension = "AGE_RANGE"
bid_only = true
}
}

“Only this audience sees the ad, and within it, bid differently by age.” The dimensions you can name are AUDIENCE, TOPIC, GENDER, AGE_RANGE, PLACEMENT, PARENTAL_STATUS and INCOME_RANGE. Keywords are always targeting — Google Ads has no observation mode for them.

What bidsmith owns

Write the block and the whole set becomes yours: Google Ads only lets an update replace the list wholesale, so a dimension you drop from the file goes back to targeting, and one somebody switches in the Google Ads website comes back as drift in plan. Leave the block out entirely and bidsmith won’t touch the setting at all.

You won’t see bid_only = false entries appear in your files on their own — that’s what Google assumes for a dimension nobody mentions, so refresh and pull write out only the dimensions that say something else.

See also