`dnt` param always `true` in APS response regardless of FireTV tracking settings

:warning: Before you continue


Before submitting a bug report, please review our troubleshooting documentation at Troubleshoot Issues | Vega Troubleshooting

If you still want to file a bug report, please make sure to fill in all the details below and provide the necessary information.

NOTE: PLEASE ONLY REPORT A SINGLE BUG USING THIS TEMPLATE.
If you’re experiencing multiple issues, please file a separate report for each.


:backhand_index_pointing_right: Bug Description


1. Summary

ApsClientLibraryAPI.getDeviceParams(ApsIntegrationType.C2S) returns dnt: true even when the user has enabled ad tracking in FireTV Settings → Privacy → Advertising ID (i.e., tracking is opted in)

Screenshot of privacy settings of vega stick -


Response from APS library for the same settings -

{
  dnt: true,
  height: '2160',
  ifa: 'XXXXXXX_XXXXXX_XXXXXX', //PLACEHOLDER_IFA
  language: 'en-US',
  make: 'Amazon',
  model: 'AFTCA002',
  os: '',
  osv: '',
  ua: 'Kepler/1.2(Linux; AFTCA002)',
  width: '3840',
};

Bug Severity
Select one that applies

  • Impacts operation of app
  • Blocks current development
  • Improvement suggestion
  • Issue with documentation (If selected, please share the doc link and describe the issue)
  • Other

2. Steps to Reproduce

  1. On FireTV, go to Settings → Preferences → Privacy Settings → Interest-based Ads and enable ad tracking.
  2. Launch the TWC app.
  3. Observe the APS response from ApsClientLibraryAPI.getDeviceParams(ApsIntegrationType.C2S).
  4. dnt is true despite tracking being allowed.

3. Observed Behavior

Explain what actually happened, noting any discrepancies or malfunctions.

dnt is always true regardless of the FireTV privacy setting.

4. Expected Behavior

Describe what you expected the SDK to do under normal operation.

dnt should reflect the device’s actual privacy setting:

  • Tracking alloweddnt: false
  • Tracking disableddnt: true

4.a Possible Root Cause & Temporary Workaround

Fill out anything you have tried. If you don’t know, N/A is acceptable

NA

5. Logs or crash report

NA

6. Environment

Please fill out the fields related to your bug below:

  • SDK Version:
    Active SDK Version: 0.23.8128
    Vega CLI Version: 1.2.22

  • App State: Foreground

  • OS Information: Please ssh into the device via vega exec vda shell (or kepler exec vda shell for v0.21 and earlier) and copy the output from cat /etc/os-release into the answer section below. Note, if you don’t have a simulator running or device attached, the command will respond with vda: no devices/emulators found

NAME="OS"
OE_VERSION="4.0.0"
OS_MAJOR_VERSION="1"
OS_MINOR_VERSION="2"
RELEASE_ID="21"
OS_VERSION="1.2"
BRANCH_CODE="TV Ship"
BUILD_DESC="OS 1.2 (TV Ship/547)"
BUILD_FINGERPRINT="4.0.378951.0(3072cab629675a74)/547N:user/release-keys"
BUILD_VARIANT="user"
BUILD_TAGS="release-keys"
BUILD_DATE="Tue Jul 14 08:13:13 UTC 2026"
BUILD_TIMESTAMP="1784016793"
VERSION_NUMBER="2101020054720"

7. Example Code Snippet / Screenshots / Screengrabs

Include any relevant code or component setup in React Native that can help reproduce the bug.

manifest.toml

[wants]
[[wants.module]]
id = "/com.amazon.kepler.apslib@IApsDeviceParametersMap"

Getting params for C2S

import { ApsClientLibraryAPI, ApsIntegrationType } from '@amazon-devices/kepler-aps-client';

// somewhere in code
const deviceParams = await ApsClientLibraryAPI.getDeviceParams(ApsIntegrationType.C2S);

:backhand_index_pointing_right: Playback Issues

NA


:backhand_index_pointing_right: Additional Context


Followed this doc - @amazon-devices/kepler-aps-client | Vega API

Hello @Chandraprakash_Sutha

Thank you for the detailed bug report. I’ve reviewed your findings and am trying to reproducing this internally.

In the meantime, you can use the @amazon-devices/kepler-adid-retriever API to read the actual tracking preference directly from the system, and override the dnt value in your bid request.
Note: You’ll need to add @amazon-devices/kepler-adid-retriever to your package.json dependencies if you haven’t already.

 import { ApsClientLibraryAPI, ApsIntegrationType } from
  '@amazon-devices/kepler-aps-client';
  import { AdIdRetriever } from '@amazon-devices/kepler-adid-retriever';
  
  const deviceParams = await
  ApsClientLibraryAPI.getDeviceParams(ApsIntegrationType.C2S);
  
  // Workaround: Read actual tracking preference from system
  const isTrackingEnabled = AdIdRetriever.isAdvertisingTrackingEnabled();
  
  // Override the broken dnt value
  const correctedDnt = !isTrackingEnabled; // true = opted out, false = tracking allowed
  
  const bidRequestParams = {
    ...deviceParams,
    dnt: correctedDnt,
  };

Reference doc here.

I’ll update you with more details on the issue ASAP.

Warm Regards,
Ivy

Thanks Ivy for the quick response. I will check kepler-adid-retriever and let you know if i face any issue.

Thanks,
Chandra

Hi @Chandraprakash_Sutha

We have analyzed the issue.

This happens because the following is missing in 3P app’s manifest.toml:

[wants]
[[wants.service]]
id = "com.amazon.admanager.service.main"

This is mentioned in @amazon-devices/kepler-adid-retriever | Vega API

Can you please add the [[wants.service]] com.amazon.admanager.service.main in the app’s “manifest.toml” file?

Warm regards,
Ivy