> For the complete documentation index, see [llms.txt](https://docs.wortise.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.wortise.com/en/ios-sdk/user-consent.md).

# User consent

The Wortise SDK includes support for Google Ads **Consent Manager** (**CMP**) to request the consent of every user.

Obtaining the user consent is important to comply with the privacy policies and qualify for higher CPMs.

## Request consent

To request the user consent, it is needed to invoke the method `WAConsentManager.request(ifRequired:)` at an appropriate moment of the app. This will show a dialog, only when it is required (normally during the first app launch), so the user can grant or deny consent.

There is also the `WAConsentManager.request` method to always show the dialog, and not only when required (for example, to provide an option in the app settings to allow the user change the consent at anytime).

### Example

{% tabs %}
{% tab title="Swift" %}

```swift
// Example with WortiseAds.shared.initialize
WortiseAds.shared.initialize(assetKey: "your app key") {
    WAConsentManager.request(ifRequired: self)
}

// Example with WortiseAds.shared.wait
WortiseAds.shared.wait {
    WAConsentManager.request(ifRequired: self)
}
```

{% endtab %}
{% endtabs %}

### Delegate configuration

It is possible to pass a delegate, to both `request` and `request(ifRequired:)`, to know when the consent requested has finished (and if it has been shown). To achieve this, just pass a listener as the last parameter of both methods.

{% tabs %}
{% tab title="Swift" %}

```swift
WAConsentManager.request(ifRequired: self) {
    // This delegate will be invoked when the request finishes 
}
```

{% endtab %}
{% endtabs %}
