[**Added in Android UpsideDownCakePrivacySandbox**](https://developer.android.com/preview)  
Summary:[Nested Classes](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/common/KeyedFrequencyCap#nestedclasses)\|[Inherited Constants](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/common/KeyedFrequencyCap#inhconstants)\|[Fields](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/common/KeyedFrequencyCap#lfields)\|[Methods](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/common/KeyedFrequencyCap#pubmethods)\|[Inherited Methods](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/common/KeyedFrequencyCap#inhmethods)  

# KeyedFrequencyCap

`
public

final

class
KeyedFrequencyCap
`  
`

extends `[Object](https://developer.android.com/reference/java/lang/Object)`


``


implements

`[Parcelable](https://developer.android.com/reference/android/os/Parcelable)`


`

|---|---------------------------------------------|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.adservices.common.KeyedFrequencyCap |

<br />

*** ** * ** ***

A frequency cap for a specific ad counter key.

Frequency caps define the maximum rate an event can occur within a given time interval. If the frequency cap is exceeded, the associated ad will be filtered out of ad selection.

## Summary

|                                                                                                                                                     ### Nested classes                                                                                                                                                      ||
|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` class` | [KeyedFrequencyCap.Builder](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/common/KeyedFrequencyCap.Builder) Builder for creating[KeyedFrequencyCap](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/common/KeyedFrequencyCap)objects. |

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ### Inherited constants                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| From interface[android.os.Parcelable](https://developer.android.com/reference/android/os/Parcelable) |-------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `int` | [CONTENTS_FILE_DESCRIPTOR](https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR) Descriptor bit used with[describeContents()](https://developer.android.com/reference/android/os/Parcelable#describeContents()): indicates that the Parcelable object's flattened representation includes a file descriptor.                                                                                                                                            | | `int` | [PARCELABLE_WRITE_RETURN_VALUE](https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE) Flag for use with[writeToParcel(Parcel, int)](https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)): the object being written is a return value, that is the result of a function such as "`Parcelable someFunction()`", "`void someFunction(out Parcelable)`", or "`void someFunction(inout Parcelable)`". | |

|                                                                                                                                                                                        ### Fields                                                                                                                                                                                        ||
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------|
| ` public static final `[Creator](https://developer.android.com/reference/android/os/Parcelable.Creator)`<`[KeyedFrequencyCap](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/common/KeyedFrequencyCap)`>` | [CREATOR](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/common/KeyedFrequencyCap#CREATOR) <br /> |

|                                                                                                                                                                                                                                         ### Public methods                                                                                                                                                                                                                                          ||
|---------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` boolean`                                                                | ` `[equals](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/common/KeyedFrequencyCap#equals(java.lang.Object))`(`[Object](https://developer.android.com/reference/java/lang/Object)` o) ` Checks whether the[KeyedFrequencyCap](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/common/KeyedFrequencyCap)objects contain the same information. |
| ` int`                                                                    | ` `[getAdCounterKey](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/common/KeyedFrequencyCap#getAdCounterKey())`() ` Returns the ad counter key that the frequency cap is applied to.                                                                                                                                                                                              |
| ` `[Duration](https://developer.android.com/reference/java/time/Duration) | ` `[getInterval](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/common/KeyedFrequencyCap#getInterval())`() ` Returns the interval, as a[Duration](https://developer.android.com/reference/java/time/Duration)which will be truncated to the nearest second, over which the frequency cap is calculated.                                                                            |
| ` int`                                                                    | ` `[getMaxCount](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/common/KeyedFrequencyCap#getMaxCount())`() ` Returns the maximum count of event occurrences allowed within a given time interval.                                                                                                                                                                                  |
| ` int`                                                                    | ` `[hashCode](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/common/KeyedFrequencyCap#hashCode())`() ` Returns the hash of the[KeyedFrequencyCap](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/common/KeyedFrequencyCap)object's data.                                                                                                     |
| ` `[String](https://developer.android.com/reference/java/lang/String)     | ` `[toString](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/common/KeyedFrequencyCap#toString())`() ` Returns a string representation of the object.                                                                                                                                                                                                                              |
| ` void`                                                                   | ` `[writeToParcel](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/common/KeyedFrequencyCap#writeToParcel(android.os.Parcel,%20int))`(`[Parcel](https://developer.android.com/reference/android/os/Parcel)` dest, int flags) ` Flatten this object in to a Parcel.                                                                                                                  |

| ### Inherited methods |
|-----------------------|---|
| From class` `[java.lang.Object](https://developer.android.com/reference/java/lang/Object)` ` |--------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ` `[Object](https://developer.android.com/reference/java/lang/Object)          | ` `[clone](https://developer.android.com/reference/java/lang/Object#clone())`() ` Creates and returns a copy of this object.                                                                                                                                                      | | ` boolean`                                                                     | ` `[equals](https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object))`(`[Object](https://developer.android.com/reference/java/lang/Object)` obj) ` Indicates whether some other object is "equal to" this one.                                           | | ` void`                                                                        | ` `[finalize](https://developer.android.com/reference/java/lang/Object#finalize())`() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.                                                          | | ` final `[Class](https://developer.android.com/reference/java/lang/Class)`<?>` | ` `[getClass](https://developer.android.com/reference/java/lang/Object#getClass())`() ` Returns the runtime class of this`Object`.                                                                                                                                                | | ` int`                                                                         | ` `[hashCode](https://developer.android.com/reference/java/lang/Object#hashCode())`() ` Returns a hash code value for the object.                                                                                                                                                 | | ` final void`                                                                  | ` `[notify](https://developer.android.com/reference/java/lang/Object#notify())`() ` Wakes up a single thread that is waiting on this object's monitor.                                                                                                                            | | ` final void`                                                                  | ` `[notifyAll](https://developer.android.com/reference/java/lang/Object#notifyAll())`() ` Wakes up all threads that are waiting on this object's monitor.                                                                                                                         | | ` `[String](https://developer.android.com/reference/java/lang/String)          | ` `[toString](https://developer.android.com/reference/java/lang/Object#toString())`() ` Returns a string representation of the object.                                                                                                                                            | | ` final void`                                                                  | ` `[wait](https://developer.android.com/reference/java/lang/Object#wait(long,%20int))`(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being*notified* or*interrupted*, or until a certain amount of real time has elapsed. | | ` final void`                                                                  | ` `[wait](https://developer.android.com/reference/java/lang/Object#wait(long))`(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being*notified* or*interrupted*, or until a certain amount of real time has elapsed.                   | | ` final void`                                                                  | ` `[wait](https://developer.android.com/reference/java/lang/Object#wait())`() ` Causes the current thread to wait until it is awakened, typically by being*notified* or*interrupted*.                                                                                             | ||
| From interface` `[android.os.Parcelable](https://developer.android.com/reference/android/os/Parcelable)` ` |------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ` abstract int`  | ` `[describeContents](https://developer.android.com/reference/android/os/Parcelable#describeContents())`() ` Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.                                    | | ` abstract void` | ` `[writeToParcel](https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int))`(`[Parcel](https://developer.android.com/reference/android/os/Parcel)` dest, int flags) ` Flatten this object in to a Parcel. | ||

## Fields

### CREATOR

[**Added in Android UpsideDownCakePrivacySandbox**](https://developer.android.com/preview)  

```
public static final Creator<KeyedFrequencyCap> CREATOR
```

<br />

<br />

## Public methods

### equals

[**Added in Android UpsideDownCakePrivacySandbox**](https://developer.android.com/preview)  

```
public boolean equals (Object o)
```

Checks whether the[KeyedFrequencyCap](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/common/KeyedFrequencyCap)objects contain the same information.

<br />

|                            Parameters                             ||
|-----|--------------------------------------------------------------|
| `o` | `Object`: the reference object with which to compare. <br /> |

|                                         Returns                                          ||
|-----------|-------------------------------------------------------------------------------|
| `boolean` | `true`if this object is the same as the obj argument;`false`otherwise. <br /> |

### getAdCounterKey

[**Added in Android UpsideDownCakePrivacySandbox**](https://developer.android.com/preview)  

```
public int getAdCounterKey ()
```

Returns the ad counter key that the frequency cap is applied to.

The ad counter key is defined by an adtech and is an arbitrary numeric identifier which defines any criteria which may have previously been counted and persisted on the device. If the on-device count exceeds the maximum count within a certain time interval, the frequency cap has been exceeded.

<br />

|                  Returns                  ||
|-------|------------------------------------|
| `int` | This value cannot be`null`. <br /> |

### getInterval

[**Added in Android UpsideDownCakePrivacySandbox**](https://developer.android.com/preview)  

```
public Duration getInterval ()
```

Returns the interval, as a[Duration](https://developer.android.com/reference/java/time/Duration)which will be truncated to the nearest second, over which the frequency cap is calculated.

When this frequency cap is computed, the number of persisted events is counted in the most recent time interval. If the count of previously occurring matching events for an adtech is greater than the number returned by[getMaxCount()](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/common/KeyedFrequencyCap#getMaxCount()), the frequency cap has been exceeded, and the ad will not be eligible for ad selection.

<br />

|                                                  Returns                                                   ||
|------------------------------------------------------------------------|------------------------------------|
| [Duration](https://developer.android.com/reference/java/time/Duration) | This value cannot be`null`. <br /> |

### getMaxCount

[**Added in Android UpsideDownCakePrivacySandbox**](https://developer.android.com/preview)  

```
public int getMaxCount ()
```

Returns the maximum count of event occurrences allowed within a given time interval.

If there are more events matching the ad counter key and ad event type counted on the device within the time interval defined by[getInterval()](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/common/KeyedFrequencyCap#getInterval()), the frequency cap has been exceeded, and the ad will not be eligible for ad selection.

For example, an ad that specifies a filter for a max count of two within one hour will not be eligible for ad selection if the event has been counted two or more times within the hour preceding the ad selection process.

<br />

|    Returns    ||
|-------|--------|
| `int` | <br /> |

### hashCode

[**Added in Android UpsideDownCakePrivacySandbox**](https://developer.android.com/preview)  

```
public int hashCode ()
```

Returns the hash of the[KeyedFrequencyCap](https://developer.android.com/design-for-safety/privacy-sandbox/reference/adservices/common/KeyedFrequencyCap)object's data.

<br />

|                     Returns                      ||
|-------|-------------------------------------------|
| `int` | a hash code value for this object. <br /> |

### toString

[**Added in Android UpsideDownCakePrivacySandbox**](https://developer.android.com/preview)  

```
public String toString ()
```

Returns a string representation of the object. In general, the`toString`method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.

The`toString`method for class`Object`returns a string consisting of the name of the class of which the object is an instance, the at-sign character \``@`', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:
>
> ```
>  getClass().getName() + '@' + Integer.toHexString(hashCode())
>  
> ```

<br />

<br />

|                                                      Returns                                                      ||
|--------------------------------------------------------------------|-----------------------------------------------|
| [String](https://developer.android.com/reference/java/lang/String) | a string representation of the object. <br /> |

### writeToParcel

[**Added in Android UpsideDownCakePrivacySandbox**](https://developer.android.com/preview)  

```
public void writeToParcel (Parcel dest, 
                int flags)
```

Flatten this object in to a Parcel.

<br />

|                                                                                                                                                                                                                               Parameters                                                                                                                                                                                                                                ||
|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `dest`  | `Parcel`: This value cannot be`null`. <br />                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `flags` | `int`: Additional flags about how the object should be written. May be 0 or[Parcelable.PARCELABLE_WRITE_RETURN_VALUE](https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE). Value is either`0`or a combination of[Parcelable.PARCELABLE_WRITE_RETURN_VALUE](https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE), and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES <br /> |