App-inventory spend, gone . Drift, caught.
Mobile App Category Exclusion applies account-level negative criteria for 136 mobile-app categories across Google Play and Apple App Store. Run it once to set up. Run it in verify mode to catch drift — and re-apply anything that has fallen off.
A receipt of what was applied, and what drifted off.
Apply mode sets the exclusions. Verify mode is what keeps them there — run it monthly and any category that's fallen off the account gets put back.
Sample · one account · verify_existing runApply once , verify forever.
The tool doesn't monitor placements. It makes sure the exclusions you asked for are still the exclusions Google has on file — and puts them back if they're not.
Write the exclusion set to the account.
In apply_new mode, the tool creates CustomerNegativeCriterion entries for the category IDs you chose (or all 136 if you're excluding the lot). Takes seconds per account. State is recorded in mobile_app_category_exclusions so the next verify run knows what to expect.
API surface: Google Ads v23 · CustomerNegativeCriterionCheck what Google actually has, restore what's missing.
In verify_existing mode, the tool re-fetches the account's current negative criterion list, compares it to the expected set in mobile_app_category_exclusions, and re-applies any category that has been removed since the last apply. Drift recovery, no manual audit.
Mode: verify_existing · run on your cadencePer-category status, per customer.
Every category-customer pair is tracked in mobile_app_category_exclusions with its exclusion_status and verification_status. Queryable — you can see exactly what's excluded, what's drifted, and when each state changed.
Storage: mobile_app_category_exclusions · per customer, per categoryThe questions we always get asked first.
Does this affect my Search campaigns?
No. Search ads don't serve on mobile-app inventory. The exclusions are applied at the account level via CustomerNegativeCriterion, but they only change where ads serve on inventory that includes apps — Display, Performance Max, and similar networks.
Why does the tool default to excluding all 136?
Because that's what most accounts need. App inventory — even the well-known categories — generates a meaningful share of accidental clicks, and conversions from those clicks are rare. The default is blanket, the knob is custom: pick a subset if you want to keep certain categories on.
Does the tool tell me how much I saved?
No. We don't synthesise a saved-spend number from the exclusion action itself — that would require counterfactual modelling we won't fake. For visibility into where spend was going before/after, look at Google Ads' placement report or use Campaign Health Analyzer.
How often should I run verify_existing?
Monthly is common. Drift is rare but real — changes in the account, Google's own maintenance, or manual edits can all remove entries. A monthly verify run catches anything that has slipped off and puts it back.
Is there a way to see which categories each campaign was spending on?
Not from this tool — placement-level attribution lives in Google Ads' reporting, not in our exclusion tracker. The tool is a lever, not a dashboard.
Run the audit.
Keep the findings.
Connect your account and let Lyra run its 18 tools for 14 days. If the projected waste recovery isn't worth at least 10× the $49, don't pay. You keep every insight either way.
Read-only connect · write access opt-in per tool · SOC 2 in progress · GDPR + CCPA compliant