# SDK Privacy Methods

Chartboost requires publishers to obtain consent from their users in order to process personal data and provide relevant ads. Apps under the **Google Play Designed for Families** policy **MUST** set the COPPA privacy flag to `true`. Review our [COPPA FAQs](/en/faq/coppa/) for more information on behavior targeting.

Use the `addDataUseConsent` API to set consent values. This API provides user consent data for privacy laws currently in existence or future laws.

## GDPR

<ul class="tab" data-tab="a5272ce4-e823-415a-88db-1297455f8431" data-name="androidGDPR">
  
      <li class="active">
          <a href="#">Kotlin </a>
      </li>
  
      <li>
          <a href="#">Java </a>
      </li>
  
</ul>
<ul class="tab-content" id="a5272ce4-e823-415a-88db-1297455f8431" data-name="androidGDPR">
  
      <li class="active">
<div class="language-kotlin highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cm">/** 
* GDPR support settings: 
* NON_BEHAVIORAL(0) means the user does not consent to targeting (Contextual ads) 
* BEHAVIORAL(1) means the user consents (Behavioral and Contextual Ads) 
*/</span> 
<span class="kd">val</span> <span class="py">dataUseConsent</span> <span class="p">=</span> <span class="nc">GDPR</span><span class="p">(</span><span class="nc">GDPR</span><span class="p">.</span><span class="nc">GDPR_CONSENT</span><span class="p">.</span><span class="nc">BEHAVIORAL</span><span class="p">)</span>
<span class="nc">Chartboost</span><span class="p">.</span><span class="nf">addDataUseConsent</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="n">dataUseConsent</span><span class="p">)</span>
</code></pre></div></div>
</li>
  
      <li>
<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cm">/**
* GDPR support settings:
* NON_BEHAVIORAL(0) means the user does not consent to targeting (Contextual ads)
* BEHAVIORAL(1) means the user consents (Behavioral and Contextual Ads)
*/</span>
<span class="nc">DataUseConsent</span> <span class="n">dataUseConsent</span> <span class="o">=</span> <span class="k">new</span> <span class="no">GDPR</span><span class="o">(</span><span class="no">GDPR</span><span class="o">.</span><span class="na">GDPR_CONSENT</span><span class="o">.</span><span class="na">BEHAVIORAL</span><span class="o">);</span>
<span class="nc">Chartboost</span><span class="o">.</span><span class="na">addDataUseConsent</span><span class="o">(</span><span class="n">context</span><span class="o">,</span> <span class="n">dataUseConsent</span><span class="o">);</span>
</code></pre></div></div>
</li>
  
</ul>




## CCPA

<ul class="tab" data-tab="789c7479-1067-4ec2-97db-caa6eb1964d2" data-name="androidCCPA">
  
      <li class="active">
          <a href="#">Kotlin </a>
      </li>
  
      <li>
          <a href="#">Java </a>
      </li>
  
</ul>
<ul class="tab-content" id="789c7479-1067-4ec2-97db-caa6eb1964d2" data-name="androidCCPA">
  
      <li class="active">
<div class="language-kotlin highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cm">/**
* CCPA support settings:
* OPT_IN_SALE(1YN-) means the user consents (Behavioral and Contextual Ads)
* OPT_OUT_SALE(1YY-) means the user does not consent to targeting (Contextual ads)
*/</span>
<span class="kd">val</span> <span class="py">dataUseConsent</span> <span class="p">=</span> <span class="nc">CCPA</span><span class="p">(</span><span class="nc">CCPA</span><span class="p">.</span><span class="nc">CCPA_CONSENT</span><span class="p">.</span><span class="nc">OPT_IN_SALE</span><span class="p">)</span>
<span class="nc">Chartboost</span><span class="p">.</span><span class="nf">addDataUseConsent</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="n">dataUseConsent</span><span class="p">)</span>
</code></pre></div></div>
</li>
  
      <li>
<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cm">/**
* CCPA support settings:
* OPT_IN_SALE(1YN-) means the user consents (Behavioral and Contextual Ads)
* OPT_OUT_SALE(1YY-) means the user does not consent to targeting (Contextual ads)
*/</span>
<span class="nc">DataUseConsent</span> <span class="n">dataUseConsent</span> <span class="o">=</span> <span class="k">new</span> <span class="no">CCPA</span><span class="o">(</span><span class="no">CCPA</span><span class="o">.</span><span class="na">CCPA_CONSENT</span><span class="o">.</span><span class="na">OPT_IN_SALE</span><span class="o">);</span>
<span class="nc">Chartboost</span><span class="o">.</span><span class="na">addDataUseConsent</span><span class="o">(</span><span class="n">context</span><span class="o">,</span> <span class="n">dataUseConsent</span><span class="o">);</span>

</code></pre></div></div>
</li>
  
</ul>





## COPPA

If an app is child-directed, a value of true or false must be set to define proper behavior.

<ul class="tab" data-tab="9ea5f4e5-1a5b-4098-bb88-766a58565951" data-name="androidCOPPA">
  
      <li class="active">
          <a href="#">Kotlin </a>
      </li>
  
      <li>
          <a href="#">Java </a>
      </li>
  
</ul>
<ul class="tab-content" id="9ea5f4e5-1a5b-4098-bb88-766a58565951" data-name="androidCOPPA">
  
      <li class="active">
<div class="language-kotlin highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cm">/**
* COPPA:
* true means that COPPA restrictions apply and the android advertising identifier is not transmitted. (Contextual ads)
* false means that COPPA restrictions do not apply. (Behavioral and Contextual Ads)
*/</span>
<span class="kd">val</span> <span class="py">dataUseConsent</span> <span class="p">=</span> <span class="nc">COPPA</span><span class="p">(</span><span class="k">true</span><span class="p">)</span>
<span class="nc">Chartboost</span><span class="p">.</span><span class="nf">addDataUseConsent</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="n">dataUseConsent</span><span class="p">)</span>
</code></pre></div></div>
</li>
  
      <li>
<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cm">/**
* COPPA:
* true means that COPPA restrictions apply and the android advertising identifier is not transmitted. (Contextual ads)
* false means that COPPA restrictions do not apply. (Behavioral and Contextual Ads)
*/</span>
<span class="nc">DataUseConsent</span> <span class="n">dataUseConsent</span> <span class="o">=</span> <span class="k">new</span> <span class="no">COPPA</span><span class="o">(</span><span class="kc">true</span><span class="o">);</span>
<span class="nc">Chartboost</span><span class="o">.</span><span class="na">addDataUseConsent</span><span class="o">(</span><span class="n">context</span><span class="o">,</span> <span class="n">dataUseConsent</span><span class="o">);</span>
</code></pre></div></div>
</li>
  
</ul>


<div class="alert alert-warning" role="alert">
  Apps under the <b>Google Play Designed for Families</b> policy <b>MUST</b> set the COPPA privacy flag to <code>true</code> in order to restrict transmitting the android advertising identifier.
</div>




## LGPD

<ul class="tab" data-tab="14f6cedb-da07-464a-be58-b58e6ecf7431" data-name="androidLGPD">
  
      <li class="active">
          <a href="#">Kotlin </a>
      </li>
  
      <li>
          <a href="#">Java </a>
      </li>
  
</ul>
<ul class="tab-content" id="14f6cedb-da07-464a-be58-b58e6ecf7431" data-name="androidLGPD">
  
      <li class="active">
<div class="language-kotlin highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cm">/**
* LGPD (Brazil's General Data Protection Law):
* true means the user allows behavioral targeting (Behavioral and Contextual Ads)
* false means the user does not allow behavioral targeting (Contextual ads)
*/</span>
<span class="kd">val</span> <span class="py">dataUseConsent</span> <span class="p">=</span> <span class="nc">LGPD</span><span class="p">(</span><span class="k">true</span><span class="p">)</span>
<span class="nc">Chartboost</span><span class="p">.</span><span class="nf">addDataUseConsent</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="n">dataUseConsent</span><span class="p">)</span>
</code></pre></div></div>
</li>
  
      <li>
<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cm">/**
* LGPD (Brazil's General Data Protection Law):
* true means the user allows behavioral targeting (Behavioral and Contextual Ads)
* false means the user does not allow behavioral targeting (Contextual ads)
*/</span>
<span class="nc">DataUseConsent</span> <span class="n">dataUseConsent</span> <span class="o">=</span> <span class="k">new</span> <span class="no">LGPD</span><span class="o">(</span><span class="kc">true</span><span class="o">);</span>
<span class="nc">Chartboost</span><span class="o">.</span><span class="na">addDataUseConsent</span><span class="o">(</span><span class="n">context</span><span class="o">,</span> <span class="n">dataUseConsent</span><span class="o">);</span>
</code></pre></div></div>
</li>
  
</ul>




## Custom Consent

Chartboost allows publishers to provide custom consent information, besides the predefined GDPR and CCPA values. Custom consent values must be non-empty strings of fewer than 100 characters. Reserved standard names such as `gdpr` cannot be used as custom privacy standard names.

For example:

<ul class="tab" data-tab="cd94513c-9076-4afe-85c7-7c3d0618ee48" data-name="androidCustomConsent">
  
      <li class="active">
          <a href="#">Kotlin </a>
      </li>
  
      <li>
          <a href="#">Java </a>
      </li>
  
</ul>
<ul class="tab-content" id="cd94513c-9076-4afe-85c7-7c3d0618ee48" data-name="androidCustomConsent">
  
      <li class="active">
<div class="language-kotlin highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// customPrivacyStandard: the name of your privacy framework (e.g. "my_framework")</span>
<span class="c1">// customConsent: the consent value to associate with that standard (e.g. "1")</span>
<span class="kd">val</span> <span class="py">dataUseConsent</span> <span class="p">=</span> <span class="nc">Custom</span><span class="p">(</span><span class="n">customPrivacyStandard</span> <span class="p">=</span> <span class="s">"my_framework"</span><span class="p">,</span> <span class="n">customConsent</span> <span class="p">=</span> <span class="s">"1"</span><span class="p">)</span>
<span class="nc">Chartboost</span><span class="p">.</span><span class="nf">addDataUseConsent</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="n">dataUseConsent</span><span class="p">)</span>
</code></pre></div></div>
</li>
  
      <li>
<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// First argument: the name of your privacy framework</span>
<span class="c1">// Second argument: the consent value to associate with that standard</span>
<span class="nc">DataUseConsent</span> <span class="n">dataUseConsent</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Custom</span><span class="o">(</span><span class="s">"my_framework"</span><span class="o">,</span> <span class="s">"1"</span><span class="o">);</span>
<span class="nc">Chartboost</span><span class="o">.</span><span class="na">addDataUseConsent</span><span class="o">(</span><span class="n">context</span><span class="o">,</span> <span class="n">dataUseConsent</span><span class="o">);</span>
</code></pre></div></div>
</li>
  
</ul>





## TCF v2.0

The `TCFv2` class provides a helper to read the IAB TCF v2.0 consent string (`IABTCF_TCString`) from your app's default `SharedPreferences`. This is useful when your CMP writes the TCF string to SharedPreferences and you want to inspect it.

<ul class="tab" data-tab="1ed68c42-2deb-4375-bc93-e4df4fe4eeb4" data-name="androidTCFv2">
  
      <li class="active">
          <a href="#">Kotlin </a>
      </li>
  
      <li>
          <a href="#">Java </a>
      </li>
  
</ul>
<ul class="tab-content" id="1ed68c42-2deb-4375-bc93-e4df4fe4eeb4" data-name="androidTCFv2">
  
      <li class="active">
<div class="language-kotlin highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">val</span> <span class="py">tcfv2</span> <span class="p">=</span> <span class="nc">TCFv2</span><span class="p">(</span><span class="nc">PreferenceManager</span><span class="p">.</span><span class="nf">getDefaultSharedPreferences</span><span class="p">(</span><span class="n">context</span><span class="p">))</span>
<span class="kd">val</span> <span class="py">tcfString</span><span class="p">:</span> <span class="nc">String</span><span class="p">?</span> <span class="p">=</span> <span class="n">tcfv2</span><span class="p">.</span><span class="nf">getTCFString</span><span class="p">()</span>
</code></pre></div></div>
</li>
  
      <li>
<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">TCFv2</span> <span class="n">tcfv2</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">TCFv2</span><span class="o">(</span><span class="nc">PreferenceManager</span><span class="o">.</span><span class="na">getDefaultSharedPreferences</span><span class="o">(</span><span class="n">context</span><span class="o">));</span>
<span class="nc">String</span> <span class="n">tcfString</span> <span class="o">=</span> <span class="n">tcfv2</span><span class="o">.</span><span class="na">getTCFString</span><span class="o">();</span>
</code></pre></div></div>
</li>
  
</ul>




## GPP (Global Privacy Platform)

The `GPP` class provides helpers to read the IAB GPP consent string (`IABGPP_HDR_GppString`) and the GPP section ID string (`IABGPP_GppSID`) from your app's default `SharedPreferences`. This is useful when your CMP writes the GPP strings to SharedPreferences and you want to inspect them.

<ul class="tab" data-tab="ccd6fbcb-7871-4cbc-aa91-235deb7c3b19" data-name="androidGPP">
  
      <li class="active">
          <a href="#">Kotlin </a>
      </li>
  
      <li>
          <a href="#">Java </a>
      </li>
  
</ul>
<ul class="tab-content" id="ccd6fbcb-7871-4cbc-aa91-235deb7c3b19" data-name="androidGPP">
  
      <li class="active">
<div class="language-kotlin highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">val</span> <span class="py">gpp</span> <span class="p">=</span> <span class="nc">GPP</span><span class="p">(</span><span class="nc">PreferenceManager</span><span class="p">.</span><span class="nf">getDefaultSharedPreferences</span><span class="p">(</span><span class="n">context</span><span class="p">))</span>
<span class="kd">val</span> <span class="py">gppString</span><span class="p">:</span> <span class="nc">String</span><span class="p">?</span> <span class="p">=</span> <span class="n">gpp</span><span class="p">.</span><span class="nf">getGppString</span><span class="p">()</span>
<span class="kd">val</span> <span class="py">gppSid</span><span class="p">:</span> <span class="nc">String</span><span class="p">?</span> <span class="p">=</span> <span class="n">gpp</span><span class="p">.</span><span class="nf">getGppSid</span><span class="p">()</span>
</code></pre></div></div>
</li>
  
      <li>
<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="no">GPP</span> <span class="n">gpp</span> <span class="o">=</span> <span class="k">new</span> <span class="no">GPP</span><span class="o">(</span><span class="nc">PreferenceManager</span><span class="o">.</span><span class="na">getDefaultSharedPreferences</span><span class="o">(</span><span class="n">context</span><span class="o">));</span>
<span class="nc">String</span> <span class="n">gppString</span> <span class="o">=</span> <span class="n">gpp</span><span class="o">.</span><span class="na">getGppString</span><span class="o">();</span>
<span class="nc">String</span> <span class="n">gppSid</span> <span class="o">=</span> <span class="n">gpp</span><span class="o">.</span><span class="na">getGppSid</span><span class="o">();</span>
</code></pre></div></div>
</li>
  
</ul>




## Clear Data Use Consent

To clear any of the privacy data use consent, use the following method:

<ul class="tab" data-tab="a8e1aaea-7be4-4f30-bc13-fd3be9e57ffa" data-name="androidClearConsent">
  
      <li class="active">
          <a href="#">Kotlin </a>
      </li>
  
      <li>
          <a href="#">Java </a>
      </li>
  
</ul>
<ul class="tab-content" id="a8e1aaea-7be4-4f30-bc13-fd3be9e57ffa" data-name="androidClearConsent">
  
      <li class="active">
<div class="language-kotlin highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">Chartboost</span><span class="p">.</span><span class="nf">clearDataUseConsent</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="n">dataUseConsent</span><span class="p">.</span><span class="n">privacyStandard</span><span class="p">)</span>
</code></pre></div></div>
</li>
  
      <li>
<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">Chartboost</span><span class="o">.</span><span class="na">clearDataUseConsent</span><span class="o">(</span><span class="n">context</span><span class="o">,</span> <span class="n">dataUseConsent</span><span class="o">.</span><span class="na">getPrivacyStandard</span><span class="o">());</span>
</code></pre></div></div>
</li>
  
</ul>


