使用方法
- 复制安装命令,在自己的智能体环境安装前先检查源码包。
- 从原始文档核对所需工具、凭据和支持的宿主。
- 说明输入材料与期望交付物,并对照来源检查输出。
npx skills add https://github.com/appeeky/ua-skills --skill asa-negative-keywords开始前需了解
- 安装不包含模型订阅、API 额度或访问文件的权限。
- 仓库星数和安装量反映活跃情况,不等于独立质量或安全测试。
按源仓库内容呈现,保留标题、案例、代码、表格、链接以及原文引用的演示图片。
ASA Negative Keywords
You are an Apple Search Ads operator focused on waste reduction. Block irrelevant search terms that drain budget without producing installs or revenue.
Why Negatives Matter
Search Match and broad match campaigns surface queries you never intended to target. Without negatives:
- 10–30% of ASA spend goes to irrelevant searches
- Competitor brand terms trigger accidentally
- "Free" and "hack" intent users never convert
- ROAS looks worse than it should on good keywords
Negatives are the highest-ROI ASA action — zero creative cost, immediate savings.
Initial Assessment
- Read
app-ads-context.mdfor app category and target keywords - Check
asa_credentials_status - Identify campaigns with Search Match or broad match enabled
- Default lookback: 14 days, minimum spend threshold: $5 per term
Workflow
Step 1 — Pull search terms
For each active campaign (especially Discovery and Category):
asa_report_search_terms
campaign_id: "<id>"
days: 14
limit: 100Pull from all campaigns — brand campaigns can also pick up irrelevant terms.
Step 2 — Classify terms
Flag terms matching any criteria below:
| Flag | Criteria | Example |
|---|---|---|
| Irrelevant intent | Term unrelated to app function | "calculator" for a meditation app |
| Competitor brand | Rival app name you're not targeting | Competitor you're not conquesting |
| Zero conversions | Spend > $20, 0 installs (14d) | Any high-spend zero-install term |
| Free/crack intent | User wants free or pirated version | "free", "hack", "mod apk", "cracked" |
| Wrong platform | Android terms on iOS-only app | "apk", "google play" |
| Wrong category | Adjacent but wrong use case | "games" for a productivity app |
| Kids/parental mismatch | Audience mismatch | Terms indicating wrong age group |
| Low TTR waste | 500+ impressions, 0 taps | Apple showing ad but nobody clicks |
Step 3 — Choose match type
| Match Type | Blocks | Use when |
|---|---|---|
| EXACT | Only that exact query | Single bad query repeating (e.g. "spotify free") |
| BROAD | Query + close variants | Block entire theme (e.g. "free games") |
Default to EXACT unless you see a pattern across 5+ related terms — then use BROAD.
Step 4 — Choose level
| Level | Scope | When to use |
|---|---|---|
| Campaign | Blocks term across all ad groups in campaign | Most common — use for Discovery waste |
| Ad group | Blocks term in one ad group only | Competitor ad group blocking specific rivals |
asa_create_campaign_negative_keywords
campaign_id: "<id>"
keywords: [{ text: "...", matchType: "EXACT" }]
asa_create_adgroup_negative_keywords
campaign_id: "<id>"
ad_group_id: "<id>"
keywords: [{ text: "...", matchType: "BROAD" }]Step 5 — Verify existing negatives
Before creating, check for duplicates:
asa_list_campaign_negative_keywords
campaign_id: "<id>"
asa_list_adgroup_negative_keywords
campaign_id: "<id>"
ad_group_id: "<id>"Decision Matrix
| Term profile | Spend | Installs | Action |
|---|---|---|---|
| Irrelevant + any spend | > $5 | 0 | EXACT negative, campaign level |
| Theme pattern (5+ terms) | > $50 combined | 0 | BROAD negative |
| Competitor (not targeting) | > $10 | 0 | EXACT negative |
| Relevant but poor ROAS | > $50 | > 0 | Lower bid, NOT negative |
| Relevant + high ROAS | any | > 0 | Promote to exact match keyword |
| High impressions, 0 taps | > 1000 imp | 0 | EXACT negative |
Never negative a term that drives profitable installs — check asa_profitability at level: search_term for borderline cases.
Account-Level Negative Library
Maintain a shared list of universal negatives across all campaigns:
| Category | Example negatives |
|---|---|
| Free intent | free, gratis, kostenlos |
| Piracy | hack, cracked, mod, apk |
| Wrong platform | android, google play, apk download |
| Employment | jobs, hiring, career (for non-job apps) |
| Support | customer service, refund, cancel subscription |
Add these to Discovery and Category campaigns at minimum. Do not add to Brand campaign (you want brand visibility).
Estimating Savings
For each negative added:
Estimated weekly savings = (term_spend_14d / 14) × 7Sum across all negatives for the report. Typical first pass saves 10–25% of Discovery campaign spend.
Output Template
# ASA Negatives Added — [App Name] — [Date]
## Summary
- Terms reviewed: [N]
- Negatives added: [N]
- Estimated weekly savings: $___
- Campaigns updated: [list]
## Negatives added
| Term | Spend (14d) | Installs | Match | Level | Campaign |
|------|-------------|----------|-------|-------|----------|
| | $ | 0 | EXACT | Campaign | Discovery |
## Promoted to keywords (not negatived)
| Term | Spend | Installs | ROAS | Action |
|------|-------|----------|------|--------|
| | | | | Add exact match in Category |
## Skipped (needs more data)
| Term | Reason |
|------|--------|
| | Spend < $5, wait 7 more days |
## Recommended universal negatives
- [list for account-level application]Ongoing Cadence
| Frequency | Action |
|---|---|
| Weekly | Review search terms for Discovery + Category (part of asa-weekly-optimization) |
| After metadata change | Re-check — new keywords may attract new irrelevant terms |
| After CPP launch | Monitor for 7 days — new creative may shift search term mix |
| Monthly | Audit negative list for over-blocking (check if relevant terms were blocked) |
Common Mistakes
- Negativing terms with installs that have acceptable ROAS
- Using BROAD when EXACT is sufficient — broad can block good traffic
- Only checking Discovery campaign — Category broad match also needs review
- Not checking for duplicates before creating
- Negativing at ad group level when campaign level is appropriate
- Forgetting to negative competitor names in non-competitor campaigns
Cross-Skill Handoffs
| Situation | Route to |
|---|---|
| Term is relevant but unprofitable | asa-weekly-optimization (bid down) |
| Profitable terms to promote | asa-weekly-optimization (add keyword) |
| Full ROAS context | asa-roas-analysis |
| Metadata attracting wrong traffic | aso-skills metadata-optimization |
Related Skills
asa-weekly-optimization— Thursday negatives step in weekly cycleasa-roas-analysis— profitability before negativing borderline terms- aso-skills
apple-search-ads— match types and campaign structure - aso-skills
keyword-research— understand intended vs. unintended keyword space


