Cap how often people see your video ad
A YouTube in-stream campaign left uncapped will show the same person your ad over and over. Frequency capping puts a ceiling on that: “at most 3 impressions a day, and count at most 1 as a watched view.”
Say it with frequency_caps blocks on the campaign — one block per
cap:
resource "google_ads_campaign" "instream" { name = "Preroll — India 12s" status = "PAUSED" advertising_channel_type = "VIDEO" campaign_budget = google_ads_campaign_budget.preroll.id
frequency_caps { event_type = "IMPRESSION" time_unit = "DAY" time_length = 1 cap = 3 }
frequency_caps { event_type = "VIDEO_VIEW" time_unit = "DAY" time_length = 1 cap = 1 }}Each block is one cap:
event_type— what you’re counting.IMPRESSIONis “the ad was shown”;VIDEO_VIEWis “the person actually watched it” (past the skip point, or 30 seconds).time_unitandtime_length— the window."DAY"withtime_length = 1is “per day”;"WEEK"withtime_length = 1is “per week”.cap— the ceiling itself, a whole number.
Loosening or removing a cap
Edit the number and plan shows the change; delete the block and the
cap goes away entirely:
frequency_caps { event_type = "IMPRESSION" time_unit = "DAY" time_length = 1 cap = 3 cap = 5}The whole set is managed together, so your file is the final word: a
cap somebody added in the Google Ads UI shows up in plan as drift
on the campaign, and removing every block clears every cap. The order
of the blocks doesn’t matter.
Campaigns you never capped
Declaring your first frequency_caps block is what hands the setting
to bidsmith. Until then the campaign’s caps belong to whoever set them
in the Google Ads UI: they don’t show up as drift, plan won’t offer
to clear them, and apply leaves them alone. That’s why upgrading to a
bidsmith version that reads a new setting never rewrites campaigns you
haven’t touched.
To take an existing UI-set cap under management, copy it into the
campaign as a block — bidsmith refresh --in-place will keep it in
sync from then on, rewriting the blocks whenever the live caps drift.
The first apply after you declare a cap shows a
~ claim (label only; claims frequency caps) row on the campaign:
that’s bidsmith
marking the setting as its own, which is
what lets a later “delete every block” mean “clear every cap”.
Where capping applies
Frequency capping works on video and display campaigns. Google
Ads does not support it on Demand Gen campaigns — validate warns you
if you set it there rather than letting it silently do nothing.
See also
google_ads_campaign— the full campaign reference.- Drift — why a UI change shows up in
plan. - Google’s frequency capping help page.