> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getchatads.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Targeting

> Control what ChatAds matches and how it filters your traffic

ChatAds provides several targeting controls in your [dashboard under Rules](https://app.getchatads.com/api/rules). These let you fine-tune which products get matched, which messages get processed, and what gets filtered out automatically.

## Allowed Affiliate Categories

Restrict affiliate results to only the categories relevant to your product. If you run a fitness app, you might allow only **Sports, Fitness, & Outdoors** and **Health & Beauty** — anything outside those categories gets filtered out.

Not 100% perfect and decreases fill rates, but leads to a better user experience. ChatAds may auto-populate this based on your traffic patterns.

## Excluded Affiliate Categories

The inverse of allowed categories. All categories are included by default — use this to block specific ones you want to avoid. More permissive than defining allowed categories.

Use **allowed** when you know exactly what fits. Use **excluded** when most things are fine but a few don't belong.

## Skip Keywords

Keywords added here will be stripped and not used for affiliate matching. Case insensitive, up to 20 keywords, max 25 characters each.

Useful when ChatAds consistently picks up low-value or irrelevant terms from your messages — for example, if your app frequently mentions a product by name that you don't want to monetize.

## Hard Stop Keywords

If any of these keywords appear in a message, the request stops immediately and returns with no offer. You are **not charged** for blocked requests.

Use this for compliance or security — block terms related to sensitive topics you never want associated with affiliate links.

## Brand Only Mode

When enabled, ChatAds prioritizes branded product mentions (e.g., "Lululemon yoga mat") over generic terms (e.g., "yoga mat"). Lowers fill rates but can improve conversion rates since branded recommendations feel more specific and trustworthy. Requests filtered by this setting are **billed** (same as other "no offer" responses).

## Country Targeting

ChatAds currently supports US and UK affiliate partners. You can send traffic from other countries, but offers may not be relevant for those users.

For identifying country, you can either:

* Send a `country` parameter (e.g., `"US"`) to hardcode it
* Send an `ip` parameter and let ChatAds detect the country automatically

Only traffic from your enabled countries — or requests with both `country` and `ip` missing — will be matched to affiliate partners. You are **not charged** for traffic that gets proactively blocked.

## Language Targeting

By default, ChatAds only processes English content — non-English messages are auto-detected and blocked. You are **not charged** for non-English requests.

If your product serves multilingual audiences, you can expand the allowed language list in the [Rules tab](https://app.getchatads.com/api/rules) under **Language Targeting**. Add ISO 639-1 two-letter codes (e.g., `fr`, `es`, `de`) to permit those languages. The list must contain at least one entry — you cannot remove all languages.

## Auto-Blocked Categories

ChatAds automatically excludes low-value, noisy categories from all results:

* Amazon Programs (Alexa Skills, Amazon Explore, Amazon Pharmacy, Amazon Warehouse, AWS Courses, Just for Prime)
* Apps & Games
* Books & Kindle
* Collectibles
* Credit & Payment Cards
* Digital & Physical Media (Music, Movies, Video, VHS)
* Gift Cards
* Grocery
* Handmade Products
* Scientific & Industrial
* Software
* Subscription Services (Subscribe & Save, Subscription Boxes)

No configuration needed — these are always filtered.

## Product Quality Filters

Set minimum thresholds for the products ChatAds returns. These filters run after affiliate resolution and drop any product that doesn't meet your standards:

| Filter              | What It Does                               |
| ------------------- | ------------------------------------------ |
| **Min Price**       | Exclude products below a dollar amount     |
| **Min Reviews**     | Exclude products with fewer than N reviews |
| **Min Star Rating** | Exclude products rated below N stars       |

All three are optional and default to no filtering (ChatAds returns whatever it finds). Configure them in the [Rules tab](https://app.getchatads.com/api/rules) under **Product Quality Filters**.

<Note>
  Stricter filters reduce fill rate. If you set a high minimum review count, newer or niche products won't make it through even if they're a good match for the message.
</Note>

## PII Scrubbing

ChatAds automatically strips personally identifiable information before analyzing text for affiliate matching. This includes content that looks like API keys, emails, SSNs, phone numbers, and credit card numbers. Always on — cannot be disabled.

## FAQ

<AccordionGroup>
  <Accordion title="How do I set up geo-targeting?">
    Pass the `country` parameter with an ISO 3166-1 alpha-2 code:

    ```json theme={null}
    {
      "message": "Best running shoes",
      "country": "US"
    }
    ```

    You can also pass `ip` for automatic geo-detection. If you already know the user's country, pass `country` directly — otherwise pass `ip` and ChatAds will detect it.
  </Accordion>

  <Accordion title="What happens if I send non-US or non-English traffic?">
    Non-US and non-English requests are blocked and **not billed**. The response will show the relevant status (`country_not_allowed`, `ip_country_not_allowed`, or `language_not_allowed`) with an empty offers array.
  </Accordion>

  <Accordion title="What's the difference between Skip Keywords and Hard Stop Keywords?">
    **Skip Keywords** are stripped from the message before analysis. The request continues, but these words won't influence ad matching. Use this for words that shouldn't affect targeting but aren't problematic.

    **Hard Stop Keywords** block the entire request if detected (returns early without analysis). Use this for content that should never receive affiliate links. Blocked requests are not billed.

    Both have limits: max 20 keywords per list, max 25 characters per keyword, alphanumeric only.
  </Accordion>

  <Accordion title="How do product quality filters affect billing?">
    Product quality filters run **after** the request is processed, so filtered requests are still billed. The filters control which resolved products are returned to you, not whether the request is analyzed. If you want to reduce billable requests, use country targeting, keyword blocking, or brand-only mode instead.
  </Accordion>

  <Accordion title="Will ChatAds expand to other countries besides US?">
    Currently, ChatAds supports US and UK affiliate partners. Further international expansion is on our roadmap.

    If you have specific country requirements, contact [team@getchatads.com](mailto:team@getchatads.com) to discuss timeline and priorities.
  </Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Configure Rules" icon="sliders" href="https://app.getchatads.com/api/rules">
    Set up targeting in your dashboard
  </Card>

  <Card title="Improving Offer Quality" icon="sparkles" href="/chatads_api/improving-offer-quality">
    More tips for better affiliate matches
  </Card>
</CardGroup>
