Website exclusions (campaign-level)
New tools to manage a campaign's website control list exclusions (negative sites) — block referrer domains / mobile-app IDs where ads serve, without leaving the MCP server.
get_website_exclusions(campaign_id)— list a campaign's blocked sites (surfaces API partial errors for invalid/inaccessible campaign ids instead of reporting an empty list).add_website_exclusions(campaign_id, urls)— block sites. Additive read-modify-write over Microsoft's replace-allSetNegativeSitesToCampaigns, so it never clobbers existing exclusions. Bare domains/paths or app IDs; a leadinghttp(s)://is stripped.remove_website_exclusions(campaign_id, urls)— unblock sites by URL, retaining the rest.
Microsoft sites (e.g. MSN.com) can't be excluded and there's a ~2500-site/campaign cap; both surface in partial_errors. Write tools remain gated by READ_ONLY.
Full Changelog: v0.3.0...v0.4.0