# Configure Mediation

## Test Mode

The Mediation SDK includes a **Test Mode** method that will allow you to test your partner integrations and get their test ads. To enable **Test Mode**, simply set the following method to `true` after starting the Mediation SDK. Remember to remove it or set the method to `false` before releasing your app.

<ul class="tab" data-tab="af38d6d5-bfbe-49e7-b210-90ba9f16946f" data-name="testMode">
  
      <li class="active">
          <a href="#">Kotlin </a>
      </li>
  
      <li>
          <a href="#">Java </a>
      </li>
  
</ul>
<ul class="tab-content" id="af38d6d5-bfbe-49e7-b210-90ba9f16946f" data-name="testMode">
  
      <li class="active">
<div class="language-kotlin highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">HeliumSdk</span><span class="p">.</span><span class="nf">setTestMode</span><span class="p">(</span><span class="k">true</span><span class="p">)</span>
<span class="nc">HeliumSdk</span><span class="p">.</span><span class="nf">setTestMode</span><span class="p">(</span><span class="k">false</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">HeliumSdk</span><span class="o">.</span><span class="na">setTestMode</span><span class="o">(</span><span class="kc">true</span><span class="o">);</span>
<span class="nc">HeliumSdk</span><span class="o">.</span><span class="na">setTestMode</span><span class="o">(</span><span class="kc">false</span><span class="o">);</span>
</code></pre></div></div>

</li>
  
</ul>


## Privacy Methods

The following privacy methods are used to set different privacy settings:

### COPPA

#### `setSubjectToCoppa`

<ul class="tab" data-tab="c26769b8-bc87-42bb-9c99-ee5fc3c322e7" data-name="setSubjectToCoppa">
  
      <li class="active">
          <a href="#">Kotlin </a>
      </li>
  
      <li>
          <a href="#">Java </a>
      </li>
  
</ul>
<ul class="tab-content" id="c26769b8-bc87-42bb-9c99-ee5fc3c322e7" data-name="setSubjectToCoppa">
  
      <li class="active">
<div class="language-kotlin highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">HeliumSdk</span><span class="p">.</span><span class="nf">setSubjectToCoppa</span><span class="p">(</span><span class="k">true</span><span class="p">)</span>
<span class="c1">// or</span>
<span class="nc">HeliumSdk</span><span class="p">.</span><span class="nf">setSubjectToCoppa</span><span class="p">(</span><span class="k">false</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">HeliumSdk</span><span class="o">.</span><span class="na">setSubjectToCoppa</span><span class="o">(</span><span class="kc">true</span><span class="o">);</span>
<span class="c1">// or</span>
<span class="nc">HeliumSdk</span><span class="o">.</span><span class="na">setSubjectToCoppa</span><span class="o">(</span><span class="kc">false</span><span class="o">);</span>
</code></pre></div></div>

</li>
  
</ul>


- By sending `setSubjectToCoppa(true)`, you indicate that you want your content treated as child-directed for purposes of COPPA. We will take steps to disable interest-based advertising for such ad requests.
- By sending `setSubjectToCoppa(false)`, you indicate that you don't want your content treated as child-directed for purposes of COPPA. You represent and warrant that your applications and services are not directed towards children and that you will not provide any information to Mediation from a user under the age of 13.


### GDPR

#### `setSubjectToGDPR`

<ul class="tab" data-tab="f9fa24a0-804d-48e3-bf56-9220894d15a4" data-name="setSubjectToGDPR">
  
      <li class="active">
          <a href="#">Kotlin </a>
      </li>
  
      <li>
          <a href="#">Java </a>
      </li>
  
</ul>
<ul class="tab-content" id="f9fa24a0-804d-48e3-bf56-9220894d15a4" data-name="setSubjectToGDPR">
  
      <li class="active">
<div class="language-kotlin highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">HeliumSdk</span><span class="p">.</span><span class="nf">setSubjectToGDPR</span><span class="p">(</span><span class="k">true</span><span class="p">)</span>
<span class="c1">// or</span>
<span class="nc">HeliumSdk</span><span class="p">.</span><span class="nf">setSubjectToGDPR</span><span class="p">(</span><span class="k">false</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">HeliumSdk</span><span class="o">.</span><span class="na">setSubjectToGDPR</span><span class="o">(</span><span class="kc">true</span><span class="o">);</span>
<span class="c1">// or</span>
<span class="nc">HeliumSdk</span><span class="o">.</span><span class="na">setSubjectToGDPR</span><span class="o">(</span><span class="kc">false</span><span class="o">);</span>
</code></pre></div></div>
</li>
  
</ul>


- By sending `setSubjectToGDPR(true)`, you indicate that GDPR is applied to this user from your application.
- By sending `setSubjectToGDPR(false)`, you indicate that GDPR is not applied to this user from your application.

#### `setUserHasGivenConsent`

<ul class="tab" data-tab="31fd128e-06d2-4151-bc41-16bf18777ff4" data-name="setUserHasGivenConsent">
  
      <li class="active">
          <a href="#">Kotlin </a>
      </li>
  
      <li>
          <a href="#">Java </a>
      </li>
  
</ul>
<ul class="tab-content" id="31fd128e-06d2-4151-bc41-16bf18777ff4" data-name="setUserHasGivenConsent">
  
      <li class="active">
<div class="language-kotlin highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">HeliumSdk</span><span class="p">.</span><span class="nf">setUserHasGivenConsent</span><span class="p">(</span><span class="k">true</span><span class="p">)</span>
<span class="c1">// or</span>
<span class="nc">HeliumSdk</span><span class="p">.</span><span class="nf">setUserHasGivenConsent</span><span class="p">(</span><span class="k">false</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">HeliumSdk</span><span class="o">.</span><span class="na">setUserHasGivenConsent</span><span class="o">(</span><span class="kc">true</span><span class="o">);</span>
<span class="c1">// or</span>
<span class="nc">HeliumSdk</span><span class="o">.</span><span class="na">setUserHasGivenConsent</span><span class="o">(</span><span class="kc">false</span><span class="o">);</span>
</code></pre></div></div>
</li>
  
</ul>


- By sending `setUserHasGivenConsent(true)`, you indicate that this user from your application has given consent to share personal data for behavior-targeted advertising.
- By sending `setUserHasGivenConsent(false)`, you indicate that this user from your application has not given consent to use its personal data for behavior-targeted advertising, so only contextual advertising is allowed.

### CCPA

#### `setCCPAConsent`

<ul class="tab" data-tab="ef8c829e-d0a2-402d-b40f-8a9e26c2192d" data-name="setCCPAConsent">
  
      <li class="active">
          <a href="#">Kotlin </a>
      </li>
  
      <li>
          <a href="#">Java </a>
      </li>
  
</ul>
<ul class="tab-content" id="ef8c829e-d0a2-402d-b40f-8a9e26c2192d" data-name="setCCPAConsent">
  
      <li class="active">
<div class="language-kotlin highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">HeliumSdk</span><span class="p">.</span><span class="nf">setCCPAConsent</span><span class="p">(</span><span class="k">true</span><span class="p">)</span>
<span class="c1">// or</span>
<span class="nc">HeliumSdk</span><span class="p">.</span><span class="nf">setCCPAConsent</span><span class="p">(</span><span class="k">false</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">HeliumSdk</span><span class="o">.</span><span class="na">setCCPAConsent</span><span class="o">(</span><span class="kc">true</span><span class="o">);</span>
<span class="c1">// or</span>
<span class="nc">HeliumSdk</span><span class="o">.</span><span class="na">setCCPAConsent</span><span class="o">(</span><span class="kc">false</span><span class="o">);</span>
</code></pre></div></div>
</li>
  
</ul>


- By sending `setCCPAConsent(true)`, you indicate that this user from your application has given consent to share personal data for behavior-targeted advertising under CCPA regulation.
- By sending `setCCPAConsent(false)`, you indicate that this user from your application has not given consent to allow sharing personal data for behavior-targeted advertising under CCPA regulation.


<div class="alert alert-info" role="alert">
  <b>Note:</b> The Mediation SDK will send CCPA information to the bidding networks via the mediation adapters, where the information is stored.
</div>


## Keywords

Starting in version 2.9.0, the Mediation SDK introduces keywords—key-value pairs that can be set to enable real-time targeting of line items.

### Set Keywords

To set keywords, you will need to first create a Mediation ad object. Then, use the `set()` method to add key-value keywords pair. The set method returns a boolean indicating whether or not the keyword has been successfully set.

<ul class="tab" data-tab="f3551db1-0f41-471d-b6d7-b9b4c318a454" data-name="setKeywords">
  
      <li class="active">
          <a href="#">Kotlin </a>
      </li>
  
      <li>
          <a href="#">Java </a>
      </li>
  
</ul>
<ul class="tab-content" id="f3551db1-0f41-471d-b6d7-b9b4c318a454" data-name="setKeywords">
  
      <li class="active">
<div class="language-kotlin highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// Create a Helium ad object.</span>
<span class="kd">val</span> <span class="py">interstitialAd</span> <span class="p">=</span> <span class="nc">HeliumInterstitialAd</span><span class="p">(</span><span class="n">placementName</span><span class="p">,</span> <span class="n">heliumInterstitialAdListener</span><span class="p">)</span>
  
<span class="kd">val</span> <span class="py">rewardedAd</span> <span class="p">=</span> <span class="nc">HeliumRewardedAd</span><span class="p">(</span><span class="n">placementName</span><span class="p">,</span> <span class="n">heliumRewardedAdListener</span><span class="p">)</span>
  
<span class="kd">val</span> <span class="py">bannerAd</span> <span class="p">=</span> <span class="nc">HeliumBannerAd</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="n">placementName</span><span class="p">,</span> <span class="n">bannerSize</span><span class="p">,</span> <span class="n">heliumBannerAdListener</span><span class="p">)</span>
  
<span class="n">interstitialAd</span><span class="p">.</span><span class="n">keywords</span><span class="p">[</span><span class="s">"i12_keyword1"</span><span class="p">]</span> <span class="p">=</span> <span class="s">"i12_value1"</span>
  
<span class="n">rewardedAd</span><span class="p">.</span><span class="n">keywords</span><span class="p">[</span><span class="s">"rwd_keyword1"</span><span class="p">]</span> <span class="p">=</span> <span class="s">"rwd_value1"</span>
  
<span class="n">bannerAd</span><span class="p">.</span><span class="n">keywords</span><span class="p">[</span><span class="s">"bnr_keyword1"</span><span class="p">]</span> <span class="p">=</span> <span class="s">"bnr_value1"</span>
</code></pre></div></div>
</li>
  
      <li>
<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// Create a Helium ad object.</span>
<span class="nc">HeliumInterstitialAd</span> <span class="n">interstitialAd</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">HeliumInterstitialAd</span><span class="o">(</span><span class="n">placementName</span><span class="o">,</span> <span class="n">heliumInterstitialAdListener</span><span class="o">);</span>
  
<span class="nc">HeliumRewardedAd</span> <span class="n">rewardedAd</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">HeliumRewardedAd</span><span class="o">(</span><span class="n">placementName</span><span class="o">,</span> <span class="n">heliumRewardedAdListener</span><span class="o">);</span>
  
<span class="nc">HeliumBannerAd</span> <span class="n">bannerAd</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">HeliumBannerAd</span><span class="o">(</span><span class="n">context</span><span class="o">,</span> <span class="n">placementName</span><span class="o">,</span> <span class="n">bannerSize</span><span class="o">,</span> <span class="n">heliumBannerAdListener</span><span class="o">);</span>

<span class="n">interstitialAd</span><span class="o">.</span><span class="na">getKeywords</span><span class="o">().</span><span class="na">set</span><span class="o">(</span><span class="s">"i12_keyword1"</span><span class="o">,</span> <span class="s">"i12_value1"</span><span class="o">);</span>
  
<span class="n">rewardedAd</span><span class="o">.</span><span class="na">getKeywords</span><span class="o">().</span><span class="na">set</span><span class="o">(</span><span class="s">"rwd_keyword1"</span><span class="o">,</span> <span class="s">"rwd_value1"</span><span class="o">);</span>
  
<span class="n">bannerAd</span><span class="o">.</span><span class="na">getKeywords</span><span class="o">().</span><span class="na">set</span><span class="o">(</span><span class="s">"bnr_keyword1"</span><span class="o">,</span> <span class="s">"bnr_value1"</span><span class="o">);</span>
</code></pre></div></div>
</li>
  
</ul>


### Remove Keywords

To remove keywords that have been set, simply use the `remove()` method and pass in the key whose value you would like to remove. The remove method returns the value of the key removed.


<ul class="tab" data-tab="81c39f68-d661-4968-b460-bdd948bddf9f" data-name="removeKeywords">
  
      <li class="active">
          <a href="#">Kotlin </a>
      </li>
  
      <li>
          <a href="#">Java </a>
      </li>
  
</ul>
<ul class="tab-content" id="81c39f68-d661-4968-b460-bdd948bddf9f" data-name="removeKeywords">
  
      <li class="active">
<div class="language-kotlin highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// Remove keyword</span>
<span class="n">interstitialAd</span><span class="p">.</span><span class="nf">remove</span><span class="p">(</span><span class="s">"i12_keyword1"</span><span class="p">)</span>
<span class="n">rewardedAd</span><span class="p">.</span><span class="nf">remove</span><span class="p">(</span><span class="s">"rwd_keyword1"</span><span class="p">)</span>
<span class="n">bannerAd</span><span class="p">.</span><span class="nf">remove</span><span class="p">(</span><span class="s">"bnr_keyword1"</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">// Remove keyword</span>
<span class="n">interstitialAd</span><span class="o">.</span><span class="na">remove</span><span class="o">(</span><span class="s">"i12_keyword1"</span><span class="o">);</span>
<span class="n">rewardedAd</span><span class="o">.</span><span class="na">remove</span><span class="o">(</span><span class="s">"rwd_keyword1"</span><span class="o">);</span>
<span class="n">bannerAd</span><span class="o">.</span><span class="na">remove</span><span class="o">(</span><span class="s">"bnr_keyword1"</span><span class="o">);</span>
</code></pre></div></div>
</li>
  
</ul>


<div class="alert alert-info" role="alert">
  <b>Note:</b> The keywords API has restrictions for setting keys and values. The maximum number of characters allowed for each key name is 64 characters. For values, it is 256 characters.
</div>





## Impression Level Revenue Data (ILRD)

Impression Level Revenue Data (ILRD) is data we already collect on the server side and store in our database today. This feature allows publishers to get access to this data.

An ILRD event occurs every time an impression is tracked. The fields that a publisher is interested in are broken down as follows:

| ILRD Key                 |  Value | ILRD Description                                                                                        |
| :----------------------- | :----: | :------------------------------------------------------------------------------------------------------ |
| `"ad_revenue"`           | Double | Double-precision floating point                                                                         |
| `"currency_type"`        | String | Always USD                                                                                              |
| `"country"`              | String | Three-letter country code ISO_3166-1_alpha-3 (ex. "USA")                                                |
| `"impression_id"`        | String | ID                                                                                                      |
| `"line_item_name"`       | String | Mediation line item name                                                                                |
| `"line_item_id"`         | String | Mediation line item id                                                                                  |
| `"network_name"`         | String | Network Name                                                                                            |
| `"network_placement_id"` | String | Partner placement name                                                                                  |
| `"network_type"`         | String | Either `bidding` or `mediation`                                                                         |
| `"placement_name"`       | String | Mediation placement name                                                                                |
| `"placement_type"`       | String | Ad type: <br/>- `interstitial`<br/>- `rewarded`<br/>- `banner`                                          |
| `"precision"`            | String | One of the following: <br/>- `estimated` <br/>- `exact` <br/>- `publisher_defined` <br/>- `undisclosed` |

### Bid Specific ILRD
```json
{
 "network_name": "chartboost",
 "network_type": "bidding",
 "precision": "exact",
 "ad_revenue": 0.099,
 "network_placement_id": "CBRewarded"
}
```

### Ad Response ILRD
```json
{
 "impression_id": "7e4c99a9492c75f3b5fcbb4da8cd8e040794c4fe",
 "currency_type": "USD",
 "country": "USA",
 "placement_name": "CBRewarded",
 "placement_type": "rewarded"
}
```

### Combined ILRD Response
```json
{
 "ad_revenue": 0.055,
 "currency_type": "USD",
 "country": "USA",
 "impression_id": "ae112f3dccf90c705f2d3b1324605e9d16687725",
 "line_item_name": "helium_rv_T1_mintegral_high",
 "line_item_id": "33f6b0ca-1b3c-4e69-80dd-b57db13db159",
 "network_name": "mintegral",
 "network_placement_id": "mintegral_RV_0_25",
 "network_type": "mediation",
 "placement_name": "heliumMintegralTest",
 "placement_type": "rewarded",
 "precision": "publisher_defined"
}
```

Publishers can receive ILRD data in two ways:

1. On Android, we provide a global notification that gives publishers access to ILRD data on each impression event shown in real time.
2. For API access, we can provide an ILRD reporting API where publishers can request a custom report (CSV) of all their ILRD data filtered by `appId`, `min_date`, `max_date`.

Publishers can use ILRD data in several ways:

- You can listen to the data via SDK notifications in real-time and ship it to your own servers or to other MMPs such as AppsFlyer or Adjust.
- You can manually request a report via the API endpoint and analyze it at your convenience.

<div class="alert alert-info" role="alert">
  <b>Meta Audience Network Ad Revenue</b><br>
  <li>Unlike other networks, Meta prohibits Mediation from sharing the real `ad_revenue` value of Meta Audience Network impressions with publishers.</li>
  <li>Instead, Mediation is only allowed to share the average of aggregated eCPMs of Meta Audience Network line items.</li>
</div>



## Rewarded Callbacks

Setting the User ID and Custom Data through the SDK.

### Setting User Identifier

The user identifier property is found on the `HeliumSdk` object. This property may be set anytime after SDK initialization.

```
HeliumSdk.setUserIdentifier("user")
```

### Setting Custom Data

The custom data property is found on the `HeliumRewardedAd` instance, and has a maximum character limit of 1000 characters. In the event that the limit is exceeded, the `customData` property will be set to `null`. 

Custom data may be set at any time before calling `show()`.

**It is recommended to base 64 encode the custom data!**

```
val rewardedAd: HeliumRewardedAd = // create your HeliumRewardedAd

// load ad

val base64EncodedCustomData = "Y3VzdG9tIGRhdGE="
rewarded.customData = base64EncodedCustomData
// show ad
```

**See**: [Mediation SDK: Manage Placement's Rewarded Callbacks](/en/mediation/manage-placements/#rewarded-callbacks) for configuration setup



## Implementation

Create a `HeliumIlrdObserver` object and implement its `onImpression` method. Then, pass the object to the `HeliumSdk.subscribe` and `HeliumSdk.unsubscribe` methods.

<ul class="tab" data-tab="97e4c260-283b-464c-846c-91de4d31ebd3" data-name="ilrdObserver">
  
      <li class="active">
          <a href="#">Kotlin </a>
      </li>
  
      <li>
          <a href="#">Java </a>
      </li>
  
</ul>
<ul class="tab-content" id="97e4c260-283b-464c-846c-91de4d31ebd3" data-name="ilrdObserver">
  
      <li class="active">
<div class="language-kotlin highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">val</span> <span class="py">ilrdObserver</span> <span class="p">=</span> <span class="k">object</span><span class="p">:</span> <span class="nc">HeliumIlrdObserver</span> <span class="p">{</span>
  <span class="k">override</span> <span class="k">fun</span> <span class="nf">onImpression</span><span class="p">(</span><span class="n">impData</span><span class="p">:</span> <span class="nc">HeliumImpressionData</span><span class="p">)</span> <span class="p">{</span>
      <span class="c1">// Placement name</span>
      <span class="kd">val</span> <span class="py">placement</span> <span class="p">=</span> <span class="n">impData</span><span class="p">.</span><span class="n">placementId</span>
      <span class="c1">// JSON</span>
      <span class="kd">val</span> <span class="py">json</span> <span class="p">=</span> <span class="n">impData</span><span class="p">.</span><span class="n">ilrdInfo</span>
  <span class="p">}</span>
<span class="p">}</span>

<span class="k">override</span> <span class="k">fun</span> <span class="nf">onCreate</span><span class="p">(</span><span class="n">savedInstanceState</span><span class="p">:</span> <span class="nc">Bundle</span><span class="p">?)</span> <span class="p">{</span>
  <span class="o">..</span><span class="p">.</span>
  <span class="c1">// Subscribe to ILRD on app startup, e.g. in onCreate()</span>
  <span class="nc">HeliumSdk</span><span class="p">.</span><span class="nf">subscribeIlrd</span><span class="p">(</span><span class="n">ilrdObserver</span><span class="p">)</span>
  <span class="o">..</span><span class="p">.</span>
<span class="p">}</span>

<span class="k">override</span> <span class="k">fun</span> <span class="nf">onDestroy</span><span class="p">()</span> <span class="p">{</span>
  <span class="o">..</span><span class="p">.</span>
  <span class="c1">// Unsubscribe from ILRD on app terminations, e.g. in onDestroy()</span>
  <span class="nc">HeliumSdk</span><span class="p">.</span><span class="nf">unsubscribeIlrd</span><span class="p">(</span><span class="n">ilrdObserver</span><span class="p">)</span>
  <span class="o">..</span><span class="p">.</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">HeliumIlrdObserver</span> <span class="n">ilrdObserver</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">HeliumIlrdObserver</span><span class="o">()</span> <span class="o">{</span>
    <span class="nd">@Override</span>
    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">onImpression</span><span class="o">(</span><span class="nd">@NonNull</span> <span class="nc">HeliumImpressionData</span> <span class="n">heliumImpressionData</span><span class="o">)</span> <span class="o">{</span>
        <span class="c1">// Placement name</span>
        <span class="nc">String</span> <span class="n">placementId</span> <span class="o">=</span> <span class="n">heliumImpressionData</span><span class="o">.</span><span class="na">getPlacementId</span><span class="o">();</span>
        <span class="c1">// JSON</span>
        <span class="nc">JSONObject</span> <span class="n">json</span> <span class="o">=</span> <span class="n">heliumImpressionData</span><span class="o">.</span><span class="na">getIlrdInfo</span><span class="o">();</span>
    <span class="o">}</span>
<span class="o">};</span>

<span class="nd">@Override</span>
<span class="kd">protected</span> <span class="kt">void</span> <span class="nf">onCreate</span><span class="o">(</span><span class="nc">Bundle</span> <span class="n">savedInstanceState</span><span class="o">)</span> <span class="o">{</span>
  <span class="o">...</span>
  <span class="c1">// Subscribe to ILRD on app startup, e.g. in onCreate()</span>
  <span class="nc">HeliumSdk</span><span class="o">.</span><span class="na">subscribeIlrd</span><span class="o">(</span><span class="n">ilrdObserver</span><span class="o">);</span>
  <span class="o">...</span>
<span class="o">}</span>

<span class="nd">@Override</span>
<span class="kd">protected</span> <span class="kt">void</span> <span class="nf">onDestroy</span><span class="o">()</span> <span class="o">{</span>
  <span class="o">...</span>
  <span class="c1">// Unsubscribe from ILRD on app terminations, e.g. in onDestroy()</span>
  <span class="nc">HeliumSdk</span><span class="o">.</span><span class="na">unsubscribeIlrd</span><span class="o">(</span><span class="n">ilrdObserver</span><span class="o">);</span>
  <span class="o">...</span>
<span class="o">}</span>
</code></pre></div></div>
</li>
  
</ul>





