EU PAR DEADLINE

How to clear undeclared campaigns before the mutate lock

Use this sequence when Google Ads API EU political advertising rules might block your next mutate window. Pair it with the interactive deadline checklist.

Google’s Ads API documents self-declaration via contains_eu_political_advertising and states that starting April 1, 2026, if an account has one or more undeclared campaigns, campaign-management mutates fail with MutateError.EU_POLITICAL_ADVERTISING_DECLARATION_REQUIRED. Reporting and many non-campaign-management calls continue. The steps below are an operator runbook — this site does not execute API calls for you.

  1. List every customer ID that your jobs mutate. Include MCC children, Scripts, and batch jobs. Save the list next to your April 2026 change window.
  2. Run the missing-declaration GAQL. Using GoogleAdsService.Search or SearchStream, select campaigns where campaign.missing_eu_political_advertising_declaration = true. Export ids and names locally.
  3. Classify each undeclared campaign. Decide CONTAINS_EU_POLITICAL_ADVERTISING vs DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING with your policy owner. Declaring contains stops serving in the EU for that campaign.
  4. Open the deadline checklist on this site. Confirm countdown, copy GAQL/safe-path notes into your runbook, and tick the ship checklist beside your ticket.
  5. Clear with declare-only mutates. Use CampaignService.MutateCampaigns, GoogleAdsService.Mutate, or BatchJobService updating only contains_eu_political_advertising. Mixed field updates are not the “safe clear” path described in docs.
  6. Optionally use the Google Ads UI account-level declaration when that fits your operating model; still verify API-visible campaign fields for automation accounts.
  7. Self-check: re-query until zero missing rows. Also create a canary mutate on a non-production campaign after declarations land. Expect reporting queries to keep working even if you had been blocked on mutates.
  8. Hardening for new creates. Ensure create paths set the declaration field. Note v26 optional behaviour for some non-EU-targeted campaigns — do not assume older clients behave the same.

Keep the official enforced-methods table bookmarked. The checklist’s method sample is illustrative; production runbooks should link the live table, not a static mirror alone.