> For the complete documentation index, see [llms.txt](https://aatkit.gitbook.io/aatkit-ionic-integration/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://aatkit.gitbook.io/aatkit-ionic-integration/start/consent/managed-consent.md).

# Managed Consent

Handle consent using managed consent

### Introduction

AATKit’s Managed Consent is an easy way to facilitate [IAB TCF](https://iabeurope.eu/transparency-consent-framework/) compliant third-party [Consent Management Platforms](https://iabeurope.eu/tcf-for-cmps/) (CMPs) by providing a unified API and wrappers. In order to make use of Managed Consent, AATKit Ionic plugin provides CMP implementations.

### **Google CMP Usage**

Android requires `appId` to be added to `AndroidManifest`, like

```xml
<meta-data
          android:name="com.google.android.gms.ads.APPLICATION_ID"
          android:value="YOUR-APP-ID"/>
```

For iOS you need to set the `GADApplicationIdentifier` value to the `Info.plist` file, like:

```xml
<key>GADApplicationIdentifier</key>
<string>YOUR-APP-ID</string>
```

Set Google CMP consent type when initializing AATKit:

```typescript
AATKitIonic.initialize({
  consent: {
    type: "cmpGoogle"
  }
});

...

document.addEventListener('managedConsentNeedsUserInterface', (data: any) => {
  // CMP is loaded and ready to be shown
  AATKitIonic.showConsentDialogIfNeeded();
});

document.addEventListener('managedConsentCMPFinished', (data: any) => {
  // The user finished his action with CMP with the state as the user chosen state
});

document.addEventListener('managedConsentCMPFailedToLoad', (data: any) => {
  // CMP failed to load with the error message.
  // Reload the CMP.
  AATKitIonic.reloadConsent();
});

document.addEventListener('managedConsentCMPFailedToShow', (data: any) => {
  // CMP failed to show with the error message
  console.log('managedConsentCMPFailedToShow error: ' + data.error);
});
```

### **SourcePoint CMP Usage**

Pass all required SourcePoint values as configuration parameters when initializing AATKit.

```typescript
AATKitIonic.initialize({
  consent: {
    type: "cmpSourcePoint",
    accountId: "your-account-id",
    propertyId: "your-property-id",
    propertyName: "your-property-name",
    pmId: "your-pm-id",
  }
});

...

document.addEventListener('managedConsentNeedsUserInterface', (data: any) => {
  // CMP is loaded and ready to be shown
  AATKitIonic.showConsentDialogIfNeeded();
});

document.addEventListener('managedConsentCMPFinished', (data: any) => {
  // The user finished his action with CMP with the state as the user chosen state
});

document.addEventListener('managedConsentCMPFailedToLoad', (data: any) => {
  // CMP failed to load with the error message.
  // Reload the CMP.
  AATKitIonic.reloadConsent();
});

document.addEventListener('managedConsentCMPFailedToShow', (data: any) => {
  // CMP failed to show with the error message
  console.log('managedConsentCMPFailedToShow error: ' + data.error);
});
```

### SFBX/AppConsent

Make sure, your SFBX CMP has been set up at its backend dashboard. Our support recommends certain vendors to be included in your server-side setup in order to yield optimal revenues.

Pass API Key as configuration parameter when initializing AATKit.

```javascript
AATKitIonic.initialize({
  consent: {
    type: "cmpAppConsent",
    appConsentAppKey: "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
});

...

document.addEventListener('managedConsentNeedsUserInterface', (data: any) => {
  // CMP is loaded and ready to be shown
  AATKitIonic.showConsentDialogIfNeeded();
});

document.addEventListener('managedConsentCMPFinished', (data: any) => {
  // The user finished his action with CMP with the state as the user chosen state
});

document.addEventListener('managedConsentCMPFailedToLoad', (data: any) => {
  // CMP failed to load with the error message.
  // Reload the CMP.
  AATKitIonic.reloadConsent();
});

document.addEventListener('managedConsentCMPFailedToShow', (data: any) => {
  // CMP failed to show with the error message
  console.log('managedConsentCMPFailedToShow error: ' + data.error);
});
```
