---
description: Provide key-value targeting information to ad requests
---

# Key-Value Targeting

### General Information

Some networks support adding additional information to improve the ads for the current app context. Keywords can be passed to AATKit in the form of `Map<String, List<String>>`



{% tabs %}
{% tab title="Java" %}
```java
Map<String, List<String>> targeting = new HashMap<>();
targeting.put("interests", Arrays.asList("sports", "stocks"));
targeting.put("gender", Collections.singletonList("female"));
```
{% endtab %}

{% tab title="Kotlin" %}
```kotlin
val targeting: MutableMap<String, List<String>> = HashMap()
targeting["interests"] = listOf("sports", "stocks")
targeting["gender"] = listOf("female")
```
{% endtab %}
{% endtabs %}

{% hint style="info" %}
If you are using the [infeed banner placement](../../formats/banner/infeed-banner) or the [banner cache](../../formats/banner/banner-cache), then all targeting settings have to be configured for the used ad request object. The global or placement-specific settings described below will not be applied there.
{% endhint %}

Please contact the support team for help when defining targeting information.

{% hint style="info" %}
Setting the keyword targeting must be done after initializing AATKit.
{% endhint %}

### Set Global Targeting Keywords

To set the keyword targeting globally for all placements, you have to pass them to AATKit by calling the following method:

```kotlin
setTargetingInfo(info: Map<String, List<String>>?)
```

**Usage**

{% tabs %}
{% tab title="Java" %}
```java
AATKit.setTargetingInfo(targeting);
```
{% endtab %}

{% tab title="Kotlin" %}
```kotlin
AATKit.setTargetingInfo(targeting)
```
{% endtab %}
{% endtabs %}

### Set Placement specific Keywords

Enables usage of keywords for specific placement in your application. The general setting of the targeting info will be overwritten for this placement.

**Usage**

{% tabs %}
{% tab title="Java" %}
```java
placement.setTargetingInfo(targeting);
```
{% endtab %}

{% tab title="Kotlin" %}
```kotlin
placement.targetingInfo = targeting
```
{% endtab %}
{% endtabs %}

{% hint style="info" %}
The specified keywords are used for all networks by default. If you want to restrict keyword usage to only specific networks, you need to continue reading.
{% endhint %}

### Limit Ad Network specific Keywords

If you want to restrict keyword usage to specific ad networks, you have to use the following methods:

```kotlin
addAdNetworkForKeywordTargeting(network: AdNetwork)
```

Enables previously set keywords for a specific ad network only. When setting global and placement-specific keywords, the latter will take precedence.

Ad networks are specified using a value of the enumeration `AdNetwork`.

**Usage**

{% tabs %}
{% tab title="Java" %}
```java
AATKit.addAdNetworkForKeywordTargeting(AdNetwork.ADMOB);
```
{% endtab %}

{% tab title="Kotlin" %}
```kotlin
AATKit.addAdNetworkForKeywordTargeting(AdNetwork.ADMOB)
```
{% endtab %}
{% endtabs %}

You can also remove ad networks that were targeted before. The collection of ad network enumeration is a white list only. This means you cannot add networks to be excluded from keyword targeting.

```kotlin
removeAdNetworkForKeywordTargeting(network: AdNetwork)
```

**Usage**

{% tabs %}
{% tab title="Java" %}
```java
AATKit.removeAdNetworkForKeywordTargeting(AdNetwork.ADMOB);
```
{% endtab %}

{% tab title="Kotlin" %}
```kotlin
AATKit.removeAdNetworkForKeywordTargeting(AdNetwork.ADMOB)
```
{% endtab %}
{% endtabs %}
