> For the complete documentation index, see [llms.txt](https://community.commandersact.com/customer-success/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://community.commandersact.com/customer-success/faqs/consent-and-preference-management/sdk-cmp-introduction.md).

# SDK CMP : Introduction

<details>

<summary>CMP: Can we customize JSON?</summary>

* You can choose a color for the buttons, and the content.&#x20;
* You can write an introductory text.&#x20;
* Category titles and texts (subcategories are also possible)&#x20;
* A link to the strategy's privacy page.&#x20;
* You can set up custom providers and categories if needed.

</details>

<details>

<summary>CMP: What is not possible?</summary>

* There is no way to have a category blocked on optin, and you will have to mention it in the introduction text&#x20;
* The neutral buttons function does not exist, it is disabled by default&#x20;
* You can't add a logo, change the style/position of the buttons or any type of custom css as you are used to doing for the web.

</details>

<details>

<summary>JSON CMP: where should I host it?</summary>

* Yes, it is possible!
* If you want to design your own e-privacy management user interface, json is not necessary.
* Simply follow the section of the documentation entitled "**manually posted consent**".
  * [https://github.com/TagCommander/pods/tree/master/TCPrivacy#manually-displayed-consent](https://github.com/TagCommander/pods/tree/master/TCPrivacy)
  * [https://github.com/TagCommander/Android/tree/master/TCPrivacy#manually-displayed-consent](https://github.com/TagCommander/Android/tree/master/TCPrivacy)

</details>

<details>

<summary>Why set up multiple SDK banners on the CMP?</summary>

* In the CMP, we recommend you to make 2 banners for SDK (1 iOS and 1 Android)&#x20;
* You don't need to enter text on your banner, just attach the right categories to your banner. Generating and deploying is not necessary either.&#x20;
* These banners are necessary to get statistics on the Dashoboards tab (they create a link between the application and the interface).&#x20;
* Making 1 banner for each device will allow you to have separate statistics on the dashboards.&#x20;
* Get the ID for each banner, you will need it in the deployment phase.&#x20;

*NB. If it is an iAB banner, don't forget to select the appropriate template from the library*

</details>

<details>

<summary>Is there a first banner display before e-privacy?</summary>

* Our SDK was not designed to display a "normal" first banner"
* If necessary, you will need to create your own user interface and use our callbacks on CTAs, as follows:
  * If you use the json Commanders Act :
    * \[\[TCMobilePrivacy sharedInstance] refuseAllConsent];
    * \[\[TCMobilePrivacy sharedInstance] acceptAllConsent];
  * If you use the json Commanders Act :
    * If you are not using json (displaying the consent manually), you will have to create an array and send the value, as explained here :
      * [https://github.com/TagCommander/pods/tree/master/TCPrivacy#manually-displayed-consent](https://github.com/TagCommander/pods/tree/master/TCPrivacy)

</details>

<details>

<summary>What is the use of the consent ID?</summary>

* To track unique consent and be able to provide proof of consent, a unique identifier is required for each user
* Our sdk can create this unique IDENTIFIER, it is called the TC\_SDK\_ID
* You can also use another identifier, such as the account identifier or the user identifier (note: the user must be logged in before giving consent for this to work)\
  \
  Please refer to the following part of the documentation:

  * [https://github.com/TagCommander/pods/tree/master/TCPrivacy#retaining-consent](https://github.com/TagCommander/pods/tree/master/TCPrivacy)
  * [https://github.com/TagCommander/Android/tree/master/TCPrivacy#retaining-consent](https://github.com/TagCommander/Android/tree/master/TCPrivacy)

  *NB. You must leave this identifier visible to the user (somewhere in the application), in case the user wishes to obtain his proof of consent*

</details>

<details>

<summary>Will tags (such as ad sdk) hard-coded into the application be automatically constrained by our SDK?</summary>

NO: this must be done manually by your IT

</details>

<details>

<summary>Will the tags in the server-side container be automatically constrained by our SDK?</summary>

NO: this must be done manually by YOU

</details>

<details>

<summary>When will the WPC be posted?</summary>

* When you first open the application&#x20;
* if the user uninstalls and reinstalls the application&#x20;
* if the consent is obsolete (due to the duration of the consent)&#x20;
* if the IT department uses one of these callbacks: (void) consentOutdated; (void) consentCategoryChanged; (void) significantChangesInPrivacy;

</details>

<details>

<summary>Where is the proof of consent saved?</summary>

In the users' device and in our database

</details>

<details>

<summary>If I don't use your json, do I have to activate/deactivate the data collected by myself?</summary>

Data collection is not automatic! So, yes, you have to configure the collection by yourself (based on the consentUpdated method)

</details>

<details>

<summary>Is there a demo environment?</summary>

* We have created a demo version of our SDK, for each device
* This can be very useful for IT teams, so don't hesitate to use it!
  * <https://github.com/TagCommander/Privacy-Demo/tree/master/iOS>
  * <https://github.com/TagCommander/Privacy-Demo/tree/master/Android>

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://community.commandersact.com/customer-success/faqs/consent-and-preference-management/sdk-cmp-introduction.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
