Developer Console

Advertising ID Policy

The Advertising ID is a user-resettable, unique identifier that helps protect the privacy of the user. If you collect information about a user’s behavior to display interest-based ads, or to generate analytics, you must use the Advertising ID; no other identifier or tracking method may be used. Users can reset the Advertising ID or opt out of interest-based ads altogether.

The Advertising ID and opt-out are currently available for tablet devices running Fire OS 5.1 or later and TV devices running Fire OS 5.2.1.1 or later.

On Amazon Fire TV, users can manage the Advertising ID by going to Settings > Preferences > Privacy Settings > Your Advertising ID. On Fire tablets, users can manage the Advertising ID by going to Settings > Security & Privacy > Advertising ID.

When to Use the Advertising ID

You must use the Advertising ID (when supported by the device) and verify a user’s opt-out choice via API, if your app does the following:

  • Displays interest-based ads
  • Collects data for user analytics
  • Collects data to build user profiles for advertising purposes or for targeting users with interest-based advertising

Contextual advertising does not depend on the Advertising ID and is not controlled by the interest-based ad opt-out.

When available, you must use the Advertising ID over any other ID. Do not use other unique identifiers (e.g. Android ID, MAC address, IMEI, IP address) or analysis techniques such as “fingerprinting” to build user profiles for advertising purposes or to show users interest-based ads.

If the Advertising ID isn’t available on the device, your app may use a different unique identifier for interest-based ads but only in accordance with your privacy policy, the Amazon Developer Services Agreement, and our Privacy and Security Policy.

Ensure that if you use a third-party ad service in your app, the service follows this Advertising ID policy.

How to Use the Advertising ID

When you use the Advertising ID, follow these requirements:

  • Only use the Advertising ID for interest-based ads and analytics.
  • In your code, precede any call to retrieve the Advertising ID with a call that verifies the user's opt-out choice. When the user opts out of interest-based ads, the Advertising ID is still available but the developer must honor the user's opt-out choice. Do not collect information about the user's behavior to build user profiles for advertising purposes or show them interest-based ads. Allowed activities include contextual advertising, frequency capping, conversion tracking, reporting, and security and fraud detection.
  • Do not associate any persistent device identifier or personally-identifiable information (PII) with the Advertising ID unless the user has explicitly given consent to do so.
  • When a user resets the Advertising ID, do not fold earlier data into the new Advertising ID or associate the new ID with the old one unless the user has explicitly given consent for you to do so.

For more information, see the Amazon Developer Services Agreement.

Verifying and Responding to the User's Advertising ID Choices

The Android Settings.Secure class exposes the user's Advertising ID choices through the getInt and getString methods. The following Java example shows the logic for verifying the user setting and retrieving an Advertising ID (if available).

import android.content.ContentResolver;
import android.provider.Settings.Secure;
import android.provider.Settings.SettingNotFoundException;

String advertisingID = "";
boolean limitAdTracking = false;

try {
    ContentResolver cr = getContentResolver();

    // get user's tracking preference
    limitAdTracking = (Secure.getInt(cr, "limit_ad_tracking") == 0) ? false : true;

    // get advertising ID
    advertisingID = Secure.getString(cr, "advertising_id");
} catch (SettingNotFoundException ex) {
    // not supported

}

The code first gets the user's ad tracking preference. Then depending on the ad tracking value, the following happens:

  • If the user has allowed ad tracking, the value for limit_ad_tracking will be false.
  • If the user has disabled ad tracking, the value for limit_ad_tracking will be true
  • The Advertising ID gets stored in the advertisingID variable. A sample Advertising ID value might be df07c7dc-cea7-4a89-b328-810ff5acb15d. (For child profiles, the advertisingID will be 00000000-0000-0000-0000-00000000000.)
  • If the system doesn't return any value for limit_ad_tracking (such as for non-Fire-OS devices or Fire Devices running older versions of Fire OS), a SettingNotFoundException gets thrown. You can handle this exception as desired.

Last updated: Aug 30, 2023