Automation Recipe: Sync Your Placement Exclusions Across Tools—Google Ads, DV360 and Your CRM
A practical automation recipe to sync exclusion lists across Google Ads, DV360 and your CRM using Airtable, Zapier/Make or serverless connectors.
Stop chasing exclusions across platforms — keep one list synchronized, enforced and auditable
Pain point: Ad ops teams waste hours re-entering placement blocks across Google Ads, DV360 and internal CRMs — then discover mismatches during a campaign run. You need a single, trusted exclusion list that updates everywhere in real time.
What this recipe delivers (the short version)
This workflow recipe shows a practical, production-ready way to sync placement exclusions across Google Ads (now with account-level exclusions), Display & Video 360 (DV360), and your CRM suppression lists using a single source of truth, plus implementation options for both no-code teams (Zapier/Make) and engineering teams (serverless connectors + scripts).
"Google Ads now supports account-level placement exclusions (Jan 2026). Use that to simplify enforcement — and automate the rest."
Why this matters in 2026
In 2026 ad platforms are more automated and privacy-constrained than ever. Google’s Jan 2026 rollout of account-level placement exclusions lets advertisers apply one block list across Performance Max, Demand Gen, YouTube and Display. That reduces campaign-level drift, but it doesn’t solve cross-platform sync — DV360 and your internal suppression lists still need to match.
Modern programmatic ecosystems expect automation. Brands that keep exclusion lists human-managed will face wasted spend, brand-safety incidents, and audit gaps. This recipe converts a single list into platform actions with traceability, error handling and reconciliation.
Architecture overview — single source of truth + connectors
Best practice: build a simple architecture with three layers:
- Source of Truth (editable by ops/comms): Airtable, Google Sheet, or an internal DB table labeled
exclusions_master. - Sync Middleware (automated): Cloud Function/Cloud Run or a no-code automation platform (Zapier/Make) that normalizes, diffs and sends updates to endpoints.
- Target Connectors: Google Ads (account-level exclusions), DV360 (advertiser-level negative sites/apps list), CRM (suppression flags or suppression-list object).
Why this layout?
- Clear edit rights on the source (legal/brand teams).
- Business logic and error handling consolidated in one place.
- Traceable, auditable sync logs and reconciliation.
Choose your Source of Truth (pick one)
Pick based on team skillset and scale:
- Airtable — great UI, built-in API, good for mid-size teams.
- Google Sheets — easiest to adopt, Zapier/Make native triggers, manual-friendly.
- Postgres / BigQuery — best for enterprise scale and auditability.
Connector options — No-code to code
Two supported implementation tracks:
- No-code / Low-code: Zapier or Make for teams without dev resources.
- Serverless / Custom: Cloud Run or Lambda for teams that need scale, robust error handling and security.
No-code recipe: Zapier (fast, low-maintenance)
Use this when legal/brand owners will edit the list and ops want a fast deployment.
Zap steps (example using Airtable as source)
- Trigger: Airtable - New or Updated Record in exclusions_master.
- Action: Formatter - Normalize the domain/placement entry (strip http(s), lowercase, remove paths).
- Action: Webhooks - POST to Google Ads sync endpoint (cloud function or Zapier’s built-in Google Ads action if available).
- Action: Webhooks - POST to DV360 sync endpoint (Display & Video 360 API via webhook; include OAuth token stored in Zapier).
- Action: HubSpot/Salesforce - Update suppression_list or do_not_contact field.
- Action: Gmail/Slack - Send a digest to the ad-ops channel with operation result.
Notes:
- Zapier supports OAuth2 for many services. For DV360, you may need to use the Webhooks (Custom Request) action and a stored service account token.
- Use Zapier storage for rate-limit backoff counters if you need retries.
No-code recipe: Make (for visual flows & batching)
Make (Integromat) is better when you need batching and advanced transformations.
Make Scenario
- Google Sheets / Airtable Watch Records module triggers every 5 minutes.
- Iterator normalizes inputs; filters remove duplicates or already-synced entries.
- HTTP module: batch request to internal Cloud Function to upsert 50 exclusions at once to Google Ads (reduce API calls).
- HTTP module: call DV360 batch endpoint via service account OAuth.
- CRM module: Update suppression object in bulk.
- Logger module: write results back to a Google Sheet or DataDog for audit.
Serverless recipe: reliable, auditable, scalable
For scale and security build a small sync service. Use Cloud Run (GCP) or AWS Fargate + a cron/AWS EventBridge trigger.
High-level flow
- Webhook or scheduled job reads exclusions_master and computes a diff vs last-synced snapshot.
- Normalize and dedupe entries (domains, app IDs, placement IDs).
- Batch upserts to Google Ads API (account-level placements endpoint).
- Batch upserts to DV360 Inventory/Negative Sites shared list.
- Patch CRM suppression records via CRM API.
- Persist success/failure & create retry queue for failures.
Example Node.js pseudo-code (serverless)
// Pseudo-code: batch upsert to Google Ads and DV360
const rows = await fetchSourceRows();
const normalized = normalize(rows);
const diff = computeDiff(normalized, lastSnapshot);
await upsertGoogleAds(diff.adds, oauthTokenGA);
await upsertDV360(diff.adds, oauthTokenDV);
await updateCRM(diff.adds, crmToken);
saveSnapshot(normalized);
Tips:
- Use incremental snapshots (ETag or timestamp) to avoid reprocessing unchanged rows.
- Respect API rate limits. Batch into sizes recommended by each API — typically 50–200 items per request.
- Store operation IDs so you can match asynchronous job responses back to the source entry.
How to call each platform (practical specifics)
Google Ads (2026 update: account-level placement exclusions)
Use the Google Ads API to manage account-level placement exclusions — centralizing enforcement across Performance Max, Display, YouTube and Demand Gen. If you don't have engineering resources, the Google Ads UI now supports a shared account-level exclusion list you can update via CSV import.
Programmatic approach:
- Authenticate with OAuth2 or service account via OAuth2 service flow.
- Use the Customer-level negative placement resource (Customer Negative Placement endpoint) to upsert domains and placement IDs.
- Batch changes and verify with the API’s response. On 2026 platforms, Google returns per-item status in batch upsert calls.
DV360
DV360 still manages negative sites at the advertiser or company level. The Display & Video 360 API supports updating shared lists of negative sites and apps for an advertiser.
- Authenticate using a Google service account with DV360 access.
- PUT or PATCH the advertiser’s negative sites list with the normalized list. Use batch operations where possible.
- DV360 may accept both domains and app bundle IDs — normalize both types separately.
CRM (HubSpot or Salesforce)
For CRM suppression, either:
- Create/update a suppression_list custom object and attach domains or customer identifiers; or
- Set do_not_contact flags on contacts/accounts if the placement is tied to a known domain owner.
Normalization rules (always do this first)
Common cause of drift is inconsistent formatting. Normalize every entry before sending:
- Lowercase hostnames; strip protocol and path (keep domain and effective TLD+1).
- For YouTube channels/placement IDs, map channel IDs to canonical placement IDs.
- Split mobile app bundle IDs vs. web domains; treat separately.
- Remove wildcards or unsupported patterns that target systems don’t accept; map to closest valid form.
Conflict resolution & dedupe logic
Rule-based conflict handling keeps lists deterministic. Recommended precedence:
- Manual 'block' entries from Legal/Brand (highest priority).
- Automated signals (fraud detection tools).
- Historical campaign-level blocks (lowest priority).
If an entry is removed in the master list, the middleware should soft-delete in targets (mark as archived) rather than immediate hard delete. That preserves an audit trail and reduces risk.
Rate limits, batching and retry strategy
APIs throttle. Protect your sync:
- Batch writes: group by 50–200 items depending on API recommendations.
- Exponential backoff for 429s and 5xx responses.
- Use a retry queue so failed items are retried without reprocessing successful items.
Monitoring, reconciliation and auditing
Monitoring matters more than the initial sync. Implement:
- Sync logs with per-item status and timestamps stored in BigQuery or a log store.
- Daily reconciliation job that reads the target platform lists and compares them to the master source; report diffs to Slack/email.
- Alert on omissions and API errors above a threshold.
Sample reconciliation check (pseudo-SQL)
-- Items in master not in Google Ads
SELECT m.domain
FROM master_exclusions m
LEFT JOIN google_ads_exclusions g ON m.domain = g.domain
WHERE g.domain IS NULL;
Security & permissions
- Use least-privilege service accounts for APIs (scoped tokens for Google Ads & DV360).
- Rotate credentials and keep them in a secrets manager (GCP Secret Manager, AWS Secrets Manager).
- Enable audit logs for changes in the source of truth and for API operations.
Testing & rollout checklist
- Run in a staging advertiser/Google Ads test account first.
- Dry-run mode: generate diffs and send only to Slack without applying changes.
- Apply to a limited advertiser subset (canary) and monitor carefully for 24–72 hours.
- Gradually scale to all advertisers once stable.
Zapier & Make recipe examples (copy/paste friendly)
Zapier (Airtable & Google Ads)
- Airtable: New/Updated Record trigger.
- Formatter: Extract domain: use Regex to remove protocol (https?://) and paths.
- Webhooks: POST JSON to your Cloud Function endpoint /sync, body:
{ "action": "upsert", "domain": "{{Formatter_output}}", "source": "airtable:brand-team" } - Cloud Function returns per-target status; Zap logs and posts success/failure to Slack.
Make (Google Sheets & DV360 + Google Ads)
- Google Sheets: Watch rows module (poll every 5 minutes).
- Aggregator: collect up to 100 rows per run.
- Router: dedupe and separate by type (web domain, app bundle, youtube).
- HTTP: call DV360 batch update endpoint with OAuth2 token (service account).
- HTTP: call Google Ads account-level upsert endpoint.
- Logger: append results to an audit sheet and send a Slack summary.
Common pitfalls and how to avoid them
- Mixing formats — always normalize (domains vs. full URLs vs. placement IDs).
- Not honoring platform-specific constraints — run tests to confirm the platform accepts your format.
- Lack of soft-delete policy — prefer archiving in targets to allow rollback.
- Not reconciling — daily reconciliation uncovers drift before it costs ad spend.
Real-world example (case study)
One mid-market ecommerce client in late 2025 consolidated legal and ops blocks into an Airtable master list and ran a Make scenario to sync to Google Ads and DV360. Within two weeks:
- Blocked placements decreased mismatches by 92%.
- Manual time spent on synchronization dropped from 8 hours/week to 40 minutes/week (mostly monitoring).
- Brand-safety incidents tied to unwanted placements dropped to zero in the monitored period.
Future-proofing & 2026 trends
Expect these developments through 2026–2027:
- More ad platforms will expose account/advertiser-level exclusion APIs (Google led in Jan 2026).
- Standardization of negative lists across programmatic supply chains will improve (shared negative list standards).
- Privacy-first signals and contextual targeting will make brand-safe exclusion lists more important — you'll need to sync lists with contextual providers and consent-management platforms.
Quick checklist to ship this in 2 weeks
- Pick a source of truth (Airtable or Google Sheets). Add fields: domain, type, reason, owner, status.
- Create a Zapier or Make scenario that triggers on new/updated rows and normalizes entries.
- Wire Zapier/Make to call a small Cloud Function that upserts to Google Ads and DV360 (start with Google Ads only if you must lower scope).
- Add CRM update action in Zapier/Make and a Slack digest for failures.
- Run canary on a single advertiser/campaign for 72 hours and reconcile daily.
Wrapping up — what you can do this afternoon
If you have 60 minutes right now, do this:
- Create the master sheet with canonical columns.
- Set up a Zap that sends newly added rows to a Slack channel (quick visibility).
- Open a staging Google Ads account and try a manual account-level exclusion to understand the shape required.
Final takeaways
In 2026, centralized, automated exclusion syncs are low-hanging fruit for reducing wasted ad spend and brand-safety risk. Use a single source of truth, normalize entries, batch operations, and instrument reconciliation. Whether you choose Zapier/Make for speed or a serverless connector for scale, this workflow will save time and create auditability across Google Ads, DV360 and your CRM.
Ready to implement? If you want a starter repo, a tested Cloud Function template, or a Make scenario copy we use with mid-market teams, request the quicks.pro automation bundle and we’ll send the scripts and recipes that match your stack.
Related Reading
- Integrating CRM Customer Data into Quant Models: Use Cases and Pitfalls
- Retailer Tie-Ins & Unlock Codes: Best Practices from Nintendo Crossovers
- How to Spot Loan Applications Sourced From Deepfakes or AI-Generated Documents
- Workshop Plan: Teach a Small-Batch Syrup Making Class for Aspiring Bartenders
- Micro-Retreats in Mountain Towns: Planning a Relaxing Long Weekend in Whitefish or the Drakensberg
Related Topics
Unknown
Contributor
Senior editor and content strategist. Writing about technology, design, and the future of digital media. Follow along for deep dives into the industry's moving parts.
Up Next
More stories handpicked for you
Checklist: 10 Steps to Implement Account-Level Placement Exclusions Without Breaking Campaigns
How to Build an Account-Level Placement Exclusions Template for Google Ads (Ready-to-Use)

Which Collaboration Tools Replace VR Workrooms? A Marketer’s Pick List
Mini-Toolkit: Prompt Library for Building Micro-Apps and Marketing Automations
Checklist: 12 Email Elements Gmail’s AI Will Highlight — And How to Optimize Them
From Our Network
Trending stories across our publication group