Key Developer Features
Standard, simple ID
The advertising ID is a part of a standard, simple system for serving ads and performing analytics.
Giving users control
Users can reset their advertising ID or opt out of interest-based ads at any time, right from the Google Settings app. Their preferences apply across all ad companies that use the advertising ID.
Getting Started
1. Get the Google Play services SDK
The advertising ID APIs are part of the Google Play services platform.
To get started, set up the Google Play services SDK.
2. Read the docs and example code
Once you've installed the Google Play services package, review the overview below, as well as the example.
For detailed documentation, take a look at the advertising ID API reference documentation.
Using the Advertising ID
The advertising ID is a unique but user-resettable string identifier that lets ad networks and other apps anonymously identify a user. The user's advertising ID is made available to apps through APIs provided in Google Play services.
Users can reset their advertising ID at any time, right from the Ads section of the Google Settings app on their devices. From the same app, users can also opt-out of targeted advertising based on the advertising ID by setting the appropriate ad tracking preference. When the user opts-out of targeted ads, this ad tracking preference is made available to apps through a Google Play services API.
Apps making use of the advertising ID must check for and respect the user's ad tracking preference. Also please note that any use of the advertising ID must abide by the terms of the Google Play Developer Content Policies.
Format of the Advertising ID
Google Play services APIs expose the user's advertising ID as a string format of UUID, with values similar to this:
“38400000-8cf0-11bd-b23e-10b96e40000d”
Requirements
- The advertising ID APIs are supported in Google Play services 4.0+
- Support for the advertising ID on specific devices is based on their installed versions of Google Play services
Obtaining the user's advertising ID and ad tracking preference
If you want to use the advertising ID in your app, you must first install the Google Play services SDK. As noted in the requirements above, you should install the SDK for Google Play services 4.0 or higher if you will develop using the advertising ID APIs. For information about how to get started, see Set Up Google Play services.
The advertising ID APIs are available in the
com.google.android.gms.ads.identifier
package in the Google
Play Services library. To obtain the user's advertising ID and tracking preference,
call the method
getAdvertisingIdInfo()
, which returns an
AdvertisingIdClient.Info
encapsulating the user's current Advertising ID
and tracking preference.
Note: The getAdvertisingIdInfo()
method is a
blocking call, so you must not call it on the main (UI) thread. If called on
the main thread, the method throws IllegalStateException
.
Once you've retrieved the AdvertisingIdClient.Info
object, you
can use it's
getId()
and
isLimitAdTrackingEnabled()
methods to access the advertising ID and
ad tracking preference.
Method | Description |
---|---|
public String getId() |
Retrieves the advertising ID. |
public boolean isLimitAdTrackingEnabled() |
Retrieves whether the user has limit ad tracking enabled or not. |
The advertising ID APIs do not include a "reset" method. Only users can initiate a reset of their own advertising IDs, through the Google Settings application.
For more information about the advertising ID APIs, see the reference documentation.
Example implementation
Here's a basic illustration of how you can retrieve the user's advertising ID and ad tracking preference in your app:
import com.google.android.gms.ads.identifier.AdvertisingIdClient; import com.google.android.gms.ads.identifier.AdvertisingIdClient.Info; import com.google.android.gms.common.GooglePlayServicesAvailabilityException; import com.google.android.gms.common.GooglePlayServicesNotAvailableException; import java.io.IOException; ... // Do not call this function from the main thread. Otherwise, // an IllegalStateException will be thrown. public void getIdThread() { Info adInfo = null; try { adInfo = AdvertisingIdClient.getAdvertisingIdInfo(mContext); } catch (IOException e) { // Unrecoverable error connecting to Google Play services (e.g., // the old version of the service doesn't support getting AdvertisingId). } catch (GooglePlayServicesAvailabilityException e) { // Encountered a recoverable error connecting to Google Play services. } catch (GooglePlayServicesNotAvailableException e) { // Google Play services is not available entirely. } final String id = adInfo.getId(); final boolean isLAT = adInfo.isLimitAdTrackingEnabled(); }