Google Ads Compliance: Budget Rules, Strikes and Safeguards

Campaign configuration tiles and an account key move through two separate compliance checkpoints in a digital operations room.

A routine budget or scheduling edit can turn a running Demand Gen campaign into a rejected API request. A separate pattern of policy violations can move your Google Ads account from a warning to suspension. If you manage campaigns, integrations, or client accounts, you need controls for both risks.

The practical answer is to separate campaign validation from account enforcement. Validate every proposed configuration before sending it to Google, track warnings and strikes as account-level risk, and give each kind of failure its own response path.

A campaign can pass one compliance layer and fail another

Google Ads compliance is easier to manage when you stop treating it as a single pass-or-fail check. There are two distinct layers in this case:

  • Campaign requirements determine whether a proposed setup or change is valid. The Demand Gen daily minimum is a campaign-level validation rule.
  • Policy enforcement tracks repeated violations associated with the account. Warnings and strikes can escalate even when a campaign’s budget and schedule are technically valid.

The distinction changes what you do next. A budget validation error calls for a corrected configuration. A warning or strike calls for policy investigation, remediation, or an appeal. Raising a budget will not resolve a policy strike, and winning a policy appeal will not make an under-minimum Demand Gen configuration valid.

Your operating dashboard should therefore show two statuses instead of one: campaign eligibility and account policy risk. If either status is hidden, a team can fix the visible problem while leaving the more consequential one untouched.

The $5 Demand Gen rule applies when a change is made

A hand submits a campaign budget control for validation beside five small metal tokens and an abstract calendar tile.

Starting April 1, 2026, Google requires Demand Gen campaigns to maintain a minimum daily budget of $5 USD, or the local-currency equivalent. The requirement affects every pathway through which those ads are bought, so it should not be treated as an API-only concern.

The important exception is narrow. Existing Demand Gen campaigns already operating below the minimum can continue without a change. But that existing state is not a reusable exemption. If you alter the budget, start date, or end date and the resulting daily spend falls below the threshold, the proposed change must satisfy the new requirement.

That includes campaigns using an ordinary daily budget and campaigns budgeted over a flighted schedule. A date-only edit can therefore become a budget compliance event. Do not let a scheduling workflow bypass the same validation used for a direct budget change.

Preflight every relevant Demand Gen mutation

Before your system submits a new campaign or edits an existing one, run these checks:

  1. Confirm the campaign type. Apply this rule specifically to Demand Gen rather than to every campaign indiscriminately.
  2. Read the proposed budget, currency, start date, end date, and whether the budget is daily or flighted.
  3. Recalculate eligibility whenever the budget or either date changes. Validate the resulting daily amount, not merely the field the user edited.
  4. Compare the result with the applicable $5 USD minimum or local equivalent.
  5. If the proposal is below the minimum, stop it before submission and explain which value or schedule caused the failure.
  6. If compliance requires more spend, return the decision to the campaign owner. Do not silently raise a budget, because that changes a real financial commitment.

Keep grandfathered campaigns visible in an exception register. Record that they are allowed to continue only while unchanged, and display a warning before anyone opens a budget or date-editing workflow. Otherwise, an operator may discover the restriction only after planning a time-sensitive launch adjustment.

Handle API v20 and v21 differently

The error response depends on the API version. In Google Ads API v21 and later, an under-minimum proposal returns BUDGET_BELOW_DAILY_MINIMUM, with further detail in the error metadata. In v20, the same validation can appear as a generic UNKNOWN error, with the specific failure referenced through the unpublished error-code field.

Do not build your integration around a single human-readable error string. Make the handler version-aware, retain the complete error payload, and combine the response with facts your own system already knows: campaign type, proposed budget, currency, and schedule. That lets you turn an opaque v20 failure into a useful message without pretending every UNKNOWN response has the same cause.

Your release tests should cover a new Demand Gen campaign below $5 USD, one exactly at the minimum, and one above it. Also test an unchanged grandfathered campaign, a budget edit that leaves it below the minimum, and a date edit that causes the resulting daily spend to fall below the minimum. Run the response tests separately against v20 and v21-or-later handling.

The three-strikes system is an account-risk timeline

An account key approaches three escalating warning beacons and a closed barrier, with a separate path leading to a review desk and shield.

Budget validation is immediate and configuration-specific. The three-strikes system is cumulative. Repeated violations of 15 specified advertising policies can escalate over a 90-day period, which means a new notice must be evaluated in the context of the account’s recent history.

Enforcement stageImmediate consequenceRequired response
WarningAn opportunity to correct the issue before a strike penaltyRemove the violation promptly, or appeal if the classification is wrong
First strikeAds are paused for three daysAcknowledge and correct the violation, or submit an evidence-based appeal
Second strikeAds are paused for seven daysResolve the issue or appeal, then review the entire account before activity resumes
Third strikeThe account is suspendedAppeal is the remaining route to restore the account

Your first triage question should be precise: what enforcement stage does the account notice name? A warning, first strike, second strike, and suspension do not have the same deadline or business consequence. Record the stage exactly instead of reducing every notice to a generic “disapproval” ticket.

At the warning stage, inspect every affected ad, asset, product, and destination tied to the named policy. Correct the problem across the account, not only on the first item shown in the interface. Repeated instances of the same underlying issue can leave you exposed even after one ad is repaired.

If the classification appears wrong, preserve the original material and appeal with specific evidence. State which item was flagged, which named policy applies, and why the item complies. A factual appeal is more useful than a general assertion that the account has done nothing wrong.

Do not assume that a successful appeal automatically restarts your risk window. An accepted appeal may not reset the 90-day clock. Keep the original warning and strike dates in your account record, retain the appeal outcome, and verify the account’s displayed status before approving further policy-sensitive changes.

Build compliance into the change workflow

The safest time to catch a problem is before a person or automation submits it. A usable compliance gate should answer three questions: is the proposed campaign configuration valid, does the account have unresolved enforcement risk, and who is authorized to accept the resulting spend or policy exposure?

Keep one complete change record

For every Demand Gen creation or material edit, retain:

  • The customer, account, campaign, and budget identifiers.
  • The campaign type and whether the campaign is new, active, or grandfathered below the minimum.
  • The current and proposed budget, currency, start date, end date, and flighted-budget status.
  • The Google Ads API version used for the request.
  • The full validation response and error metadata, not only the displayed message.
  • Any active warning or strike, including the named policy, enforcement stage, notice date, remediation, and appeal outcome.
  • The person who approved a budget increase, schedule change, policy correction, or appeal.

This record prevents two common handoff failures. A developer can see that a generic v20 error has a known Demand Gen context, while an account manager can see that an apparently simple launch change is being made during an active strike window.

Use normal and protected release paths

A normal release path can handle a configuration that passes campaign validation and an account without an unresolved warning or strike. A protected path should require human review when the account has active enforcement risk, when a grandfathered campaign is being changed, or when compliance requires an increase in spend.

The reviewer should not merely click approve. For a budget exception, the reviewer confirms the financial change and the resulting schedule. For a policy event, the reviewer checks all affected account material, confirms whether remediation or appeal is appropriate, and records the decision before ads resume.

Test the failure path, not just successful launches

Many campaign tools test whether a valid request can be created but never test whether a rejected request is explained correctly. Add regression cases for the boundary budget, schedule-driven failures, grandfathered campaigns, v20 UNKNOWN handling, v21-or-later structured handling, warning intake, first- and second-strike pauses, and suspension escalation.

Each test needs an expected operator action. A failed budget test should identify the field or schedule to change. A warning test should create a policy-review task. A strike test should display the pause period and recent enforcement history. A suspension test should route directly to the appeal workflow.

Respond to failures without making the account riskier

When a validation error or enforcement notice appears, rapid unstructured editing can obscure what happened. Use a short incident sequence that preserves evidence and limits unnecessary changes:

  1. Pause the affected change. Avoid unrelated edits to the same campaign or policy-sensitive material until the event is classified.
  2. Capture the exact account, campaign, asset, error code, metadata, policy name, enforcement stage, and notice time.
  3. Classify the event as a campaign validation failure, a policy warning, a first or second strike, or a suspension.
  4. For an under-minimum Demand Gen request, prepare a compliant budget or schedule proposal and obtain approval for any additional spend.
  5. For an accurate policy notice, remove the violation and inspect the account for other instances of the same issue. For a questionable classification, preserve the evidence and appeal.
  6. Before resuming activity, verify that the proposed campaign configuration passes validation and that the current account-enforcement status is understood.

Do not interpret BUDGET_BELOW_DAILY_MINIMUM as evidence of a policy strike. It is a configuration failure with a configuration remedy. Conversely, do not let a successful API retry create false confidence when the account still has an unresolved warning or strike.

Key takeaways

  • From April 1, 2026, Demand Gen campaigns need at least $5 USD per day or the local equivalent when the rule is triggered.
  • Existing campaigns below the minimum can continue unchanged, but a budget, start-date, or end-date edit can require compliance.
  • Google Ads API v21 and later exposes BUDGET_BELOW_DAILY_MINIMUM; v20 can return UNKNOWN with the validation detail elsewhere in the response.
  • The policy ladder moves from a warning to three-day and seven-day pauses, then suspension on a third strike.
  • A successful appeal may not reset the 90-day clock, so retain the full enforcement timeline.
  • Track campaign eligibility and account policy risk separately, then require both to pass before release.

Before your next campaign release, add two explicit gates to the workflow: one that validates the proposed Demand Gen budget and schedule, and one that checks the account’s warning and strike history. That small separation gives your team a clear action whether the next problem arrives as an API error or an enforcement notice.

References

FAQs

What is the minimum daily budget for a Google Ads Demand Gen campaign?

Starting April 1, 2026, a Demand Gen campaign must maintain at least $5 USD per day, or the local-currency equivalent, when the rule is triggered. The requirement applies across the pathways used to buy those ads, not only the API.

Can an existing Demand Gen campaign remain below $5 per day?

Yes. An existing campaign already below the minimum can continue unchanged, but a budget, start-date, or end-date edit that leaves the resulting daily spend below the threshold must satisfy the new minimum.

Can a date-only edit trigger the Demand Gen minimum-budget rule?

Yes. For a flighted campaign, changing the start or end date can change the resulting daily spend, so schedule edits should run the same validation as direct budget changes.

How do Google Ads API v20 and v21 handle an under-minimum Demand Gen budget?

In v21 and later, an under-minimum proposal returns BUDGET_BELOW_DAILY_MINIMUM with more detail in the error metadata. In v20, it may appear as UNKNOWN, with the specific failure referenced through the unpublished error-code field.

Is BUDGET_BELOW_DAILY_MINIMUM a Google Ads policy strike?

No. BUDGET_BELOW_DAILY_MINIMUM is a campaign configuration failure corrected with a compliant budget or schedule, while a warning or strike is account-level policy enforcement that requires investigation, remediation, or an appeal.

What happens at each stage of Google Ads' three-strikes system?

A warning gives the account a chance to correct or appeal. A first strike pauses ads for three days, a second for seven days, and a third suspends the account; repeated violations can escalate over a 90-day period.

Does a successful Google Ads policy appeal reset the 90-day strike window?

Not necessarily. An accepted appeal may not reset the 90-day clock, so retain the original warning and strike dates, record the appeal outcome, and verify the current account status before further policy-sensitive changes.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *