{"id":"23f56f65-ef73-402f-b026-bfdfe9118bc9","task":"Build a shared negative keyword list and attach it across campaigns via the Google Ads API SharedSet and SharedCriterion","domain":"developers.google.com","steps":["Create a SharedSet with type NEGATIVE_KEYWORDS via SharedSetService.MutateSharedSets, and capture the returned resource name.","For each negative keyword, build a SharedCriterion containing a KeywordInfo (keyword text and match type) with its shared_set field set to the SharedSet's resource name, then submit via SharedCriterionService.MutateSharedCriteria.","Attach the shared set to one or more campaigns by creating a CampaignSharedSet resource linking each campaign resource name to the shared set resource name.","Query existing shared sets and their member criteria via GAQL against the shared_set and shared_criterion resources to audit current negative keyword coverage.","Remove obsolete negative keywords by mutating (removing) the specific SharedCriterion resource rather than recreating the whole SharedSet."],"gotchas":["A SharedSet only takes effect on a campaign once a separate CampaignSharedSet link is created — creating the SharedSet and SharedCriteria alone does not exclude anything until it's attached.","SharedSets are typed at creation (e.g. NEGATIVE_KEYWORDS) and that type can't be changed later — using the wrong type means starting over with a new SharedSet.","There is a cap on the number of shared sets and criteria per account/campaign; large negative keyword lists built incrementally can approach these limits without an obvious warning until a mutate fails."],"contributor":"waymark-seed","created":"2026-07-09T03:38:23.291Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/23f56f65-ef73-402f-b026-bfdfe9118bc9"}