# Keywords Management

Keywords provide more advanced and personalized line item targeting in waterfalls. Utilize our selection of pre-defined **reserved keywords** or create your own **custom keywords**.

Example Use Cases:
- Use version targeting to disable certain SDK adapter versions or app versions if those versions are causing issues.
- Use device targeting to customize your audience.

## Using Keywords

Before you begin, make sure your app has waterfall placements and line items set up. Refer to our [Network Guide](/en/mediation/manage-networks/) for a list of available partners supporting waterfall and instructions on how to set up placements for each partner.

To apply keyword rules, navigate from your [Chartboost Platform](https://platform.chartboost.com/) to **Mediation** > **Placements**.

1. Select the **app** with a waterfall setup from the top right dropdown.
2. Find the placement with a waterfall setup and click on the **three-dot icon** to the very right.
3. Select **Edit Placement**.
4. In the **Line Items** table under **Waterfall**, choose a line item to add keyword rules and click on the **three-dot icon** to the very right.
5. Select **Edit Line Item**.
6. Click **Add new rule** under **Targeting Rules**.
7. Select a **keyword** from the dropdown and set up the rule operation and value. Both [custom](#custom-keywords) and [reserved keywords](#reserved-keywords) will be available. See [Keyword Types and Operations](#keyword-types--operations) and our list of [reserved keywords](#reserved-keywords) for more information.
8. Click **Add** to complete.

### Creating grouped conditions

You can group specific rules to set up various combinations of **AND/OR** conditions.

- **AND** conditions require that all the rules must be met. 
- **OR** conditions require that at least one of the rules must be met. **OR** conditions can also compare groups of **AND** conditions in which all of the **AND** conditions must be met within that group.

The following requires at least one keyword rule to be created first.

- To create a group of **AND** rules, click on **Add Predicate** in the row of keywords.
- To create **OR** conditions, click **Add new rule** underneath the **OR** bar.


## Keyword Types & Operations

Value input is limited to 256 characters.

|Keyword Type|Operation|Value Input                                                    |Expected Result                                  |
|------------|---------|---------------------------------------------------------------|-------------------------------------------------|
|Boolean     |`==`     | `true` or `false`                                             | Is **equal** to the value input                 |
|Boolean     |`!=`     | `true` or `false`                                             | Is **not equal** to the value input             |
|String      |`==`     | any text                                                      | Is **equal** to the value input                 |
|String      |`!=`     | any text                                                      | Is **not equal** to the value input             |
|Number      |`==`     | any number 0-9 including decimals and negative numbers        | Is **equal** to the value input                 |
|Number      |`!=`     | any number 0-9 including decimals and negative numbers        | Is **not equal** to the value input             |
|Number      |`>`      | any number 0-9 including decimals and negative numbers        | Is **greater than** the value input             |
|Number      |`<`      | any number 0-9 including decimals and negative numbers        | Is **less than** the value input                |
|Number      |`>=`     | any number 0-9 including decimals and negative numbers        | Is **greater than or equal to** the value input |
|Number      |`<=`     | any number 0-9 including decimals and negative numbers        | Is **less than or equal to** the value input    |
|Version     |`==`     | any semantic versioned number (e.g. `123.456.789` or `1.2.3`) | Is **equal** to the value input                 |
|Version     |`!=`     | any semantic versioned number (e.g. `123.456.789` or `1.2.3`) | Is **not equal** to the value input             |
|Version     |`>`      | any semantic versioned number (e.g. `123.456.789` or `1.2.3`) | Is **greater than** the value input             |
|Version     |`<`      | any semantic versioned number (e.g. `123.456.789` or `1.2.3`) | Is **less than** the value input                |
|Version     |`>=`     | any semantic versioned number (e.g. `123.456.789` or `1.2.3`) | Is **greater than or equal to** the value input |
|Version     |`<=`     | any semantic versioned number (e.g. `123.456.789` or `1.2.3`) | Is **less than or equal to** the value input    |

## Custom Keywords

Create your own keywords and assign one of the four types: number, string, version, and boolean.

Restrictions:
- Keyword name is limited to letters `A-Z` `a-z`, numbers `0-9`, and underscores `_`.
- Keyword name cannot re-use any of the reserved keyword names.

## Reserved Keywords

Reserved keywords are pre-defined and can be used without any additional setup.

### Ad Tracking

|Keyword|Type|Definition|
|--|--|--|
|Limited Ad Tracking |Number| Input `0` to target users with unrestricted tracking, input `1` to target users with limited tracking. <br><br><b>Note:</b> Specific device model/OS and location may require additional [privacy setting targeting](#privacy-setting-targeting). For iOS 15+ devices, Limited Ad Tracking is enabled by default. For [EEA](https://en.wikipedia.org/wiki/European_Economic_Area){:target="_blank"} devices, personalized ad consent is disabled by default. |

### Country Targeting

|Keyword|Type|Definition|
|--|--|--|
|Mobile Country Code | String | Input a valid [Mobile Country Code (MCC)](https://en.wikipedia.org/wiki/Mobile_country_code){:target="_blank"} |
|Mobile Country Code and Mobile Network Code | String | Input a valid [Mobile Country Code (MCC) and Mobile Network Code (MNC)](https://en.wikipedia.org/wiki/Mobile_network_codes_in_ITU_region_3xx_(North_America)){:target="_blank"}  separated with a dash. (e.g. `310-004` targets USA-Verizon)|

### Device Specific Targeting

|Keyword|Type|Definition|
|--|--|--|
|Device Language | String | Input a valid device language to target |
|Device Make | String | Input a valid device make to target |
|Device Model | String | Input a valid device model to target |
|Device OS | String | Input a valid device OS to target|

### Other

|Keyword|Type|Definition|
|--|--|--|
|Impression Depth| Number | Number of shown impressions per device for a given ad type |

### Privacy Setting Targeting

|Keyword|Type|Definition|
|--|--|--|
|Is CCPA| Boolean | Input `true` to include or `false` to exclude CCPA compliant ads |
|Is COPPA| Boolean | Input `true` to include or `false` to exclude COPPA compliant ads |
|Is GDPR| Boolean | Input `true` to include or `false` to exclude GDPR compliant ads |
|Is GDPR Consent| Boolean | Input `true` to include or `false` to exclude GDPR consent-yes users|
|Is IFA| Boolean | Input `true` to target users with Identifier for Advertisers (IFA) or `false` to target users without Identifier for Advertisers (IFA)|

### General Version Targeting

|Keyword|Type|Definition|
|--|--|--|
|App Version | Version | Input a valid app version number to target |
|Device OS Version | Version | Input a valid device OS version number to target |
|SDK Version | Version | Use this keyword if your Mediation SDK is 4.x or newer. Input a valid Mediation SDK version number to target. |
|Helium SDK Version | Version | Use this keyword if your Mediation SDK is 3.x or older. Input a valid Mediation SDK version number to target. |

### Network Adapter Version Targeting (v4.x+)
Use these keywords if your Mediation SDK is on version 4.x or newer.  
Refer to our [Network Adapter chart](https://adapters.chartboost.com/) for a list of valid compatible adapter versions.

|Keyword|Type|Definition|
|--|--|--|
|AdMob Adapter Version | Version | Input a valid adapter version number to target |
|Amazon APS Adapter Version | Version | Input a valid adapter version number to target |
|Applovin Adapter Version | Version | Input a valid adapter version number to target |
|Bidmachine Adapter Version | Version | Input a valid adapter version number to target |
|Chartboost Adapter Version | Version | Input a valid adapter version number to target |
|Meta Audience Network Adapter Version | Version | Input a valid adapter version number to target |
|Fyber Adapter Version | Version | Input a valid adapter version number to target |
|Google Bidding Adapter Version | Version | Input a valid adapter version number to target |
|HyprMX Adapter Version | Version | Input a valid adapter version number to target |
|HyprMX Helium SDK Version | Version | Input a valid adapter version number to target |
|InMobi Adapter Version | Version | Input a valid adapter version number to target |
|ironSource Adapter Version | Version | Input a valid adapter version number to target |
|Mintegral Adapter Version | Version | Input a valid adapter version number to target |
|Mobilefuse Adapter Version | Version | Input a valid adapter version number to target |
|Pangle Adapter Version | Version | Input a valid adapter version number to target |
|Unity Ads Adapter Version | Version | Input a valid adapter version number to target |
|Verve Adapter Version | Version | Input a valid adapter version number to target |
|Vungle Adapter Version | Version | Input a valid adapter version number to target |


### Network Adapter Version Targeting (v3.x-)
Use these keywords if your Mediation SDK is on version 3.x or older.  
Refer to our [Network Adapter chart](https://adapters.chartboost.com/) for a list of valid compatible adapter versions.

|Keyword|Type|Definition|
|--|--|--|
|AdMob Helium SDK Version | Version | Input a valid network SDK version number to target |
|Amazon APS Helium SDK Version | Version | Input a valid network SDK version number to target |
|Applovin Helium SDK Version | Version | Input a valid network SDK version number to target |
|Bidmachine Helium SDK Version | Version | Input a valid network SDK version number to target |
|Chartboost Helium SDK Version | Version | Input a valid network SDK version number to target |
|Meta Audience Network Helium SDK Version | Version | Input a valid network SDK version number to target |
|Fyber Helium SDK Version | Version | Input a valid network SDK version number to target |
|Google Bidding Helium SDK Version | Version | Input a valid network SDK version number to target |
|InMobi Helium SDK Version | Version | Input a valid network SDK version number to target |
|ironSource Helium SDK Version | Version | Input a valid network SDK version number to target |
|Mintegral Helium SDK Version | Version | Input a valid network SDK version number to target |
|Mobilefuse Helium SDK Version | Version | Input a valid network SDK version number to target |
|Pangle Helium SDK Version | Version | Input a valid network SDK version number to target |
|Unity Ads Helium SDK Version | Version | Input a valid network SDK version number to target |
|Verve Helium SDK Version | Version | Input a valid network SDK version number to target |
|Vungle Helium SDK Version | Version | Input a valid network SDK version number to target |



