blob: 466dfef99573d89e642b5712f70adc52926ef8c9 [file] [log] [blame]
Dirk Doughertyf04c9b82013-10-20 22:54:04 -07001page.title=Advertising ID
2page.tags="Ads","Advertising ID", "ID"
3header.hide=1
4
5@jd:body
6
7<div class="landing-banner">
8
9<div class="col-8">
10
11 <h1 itemprop="name" style="margin-bottom:0;">Advertising ID</h1>
Dirk Doughertyeb768482013-10-29 22:25:12 -070012 <p itemprop="description">The advertising ID is a user-specific, unique,
13 resettable ID for advertising, provided by Google Play services. It gives
14 users better controls and provides developers with a simple, standard system
15 to continue to monetize your apps. It is an anonymous identifier for advertising
16 purposes and enables users to reset their identifier or opt out of interest-based
17 ads within Google Play apps. </p>
Dirk Doughertyf04c9b82013-10-20 22:54:04 -070018
19<p>The advertising ID is accessible through a straightforward API that you can implement in your apps. For details,
20take a look at the
21<a href="#get_started">overview</a> and the <a
22href="{@docRoot}reference/com/google/android/gms/ads/identifier/package-summary.html">advertising ID API reference</a>.
23
24</div>
25</div>
26
27<div class="landing-docs">
28 <div class="col-6 normal-links">
29 <h3 style="clear:left">Key Developer Features</h3>
30
31 <h4>Standard, simple ID</h4>
32 <p>The advertising ID is a part of a standard, simple system for serving ads and performing analytics.</p>
33
34 <h4>Giving users control</h4>
35 <p>Users can reset their advertising ID or opt out of interest-based ads at any time, right from the Google Settings app.
36 Their preferences apply across all ad companies that use the advertising ID.</p>
37
38 </div>
39
40 <div class="col-6 normal-links">
41 <h3 style="clear:left">Getting Started</h3>
42 <h4>1. Get the Google Play services SDK</h4>
43 <p>The advertising ID APIs are part of the Google Play services platform.</p>
Scott Mainf12b3fd2013-12-06 12:57:13 -080044 <p>To get started, <a href="{@docRoot}google/play-services/setup.html">set up
45 the Google Play services SDK</a>. </p>
Dirk Doughertyf04c9b82013-10-20 22:54:04 -070046
47 <h4>2. Read the docs and example code</h4>
48 <p>Once you've installed the Google Play services package, review the <a href="#get_started">overview</a>
49 below, as well as the <a href="#example">example</a>.</p>
50 <p>
51 For detailed documentation, take a look at the <a href=
52 "{@docRoot}reference/com/google/android/gms/ads/identifier/package-summary.html">
53 advertising ID API reference documentation</a>.
54 </p>
55 </div>
56</div>
57
58
59<h2 id="get_started">Using the Advertising ID</h2>
60
61<p>
62 The <strong>advertising ID</strong> is a unique but
63 user-resettable string identifier that lets ad networks and other apps anonymously
64 identify a user. The user's advertising ID is made available to apps through APIs
65 provided in Google Play services.
66</p>
67<p>
68 Users can reset their advertising ID at any time, right from the Ads section of the
69 Google Settings app on their devices. From the same app, users can also
70 opt-out of targeted advertising based on the advertising ID by setting the appropriate
71 <strong style="white-space:nowrap">ad tracking preference</strong>. When the
72 user opts-out of targeted ads, this ad tracking preference is made available
73 to apps through a Google Play services API.
74</p>
75<p>
76 Apps making use of the advertising ID <strong>must check for and respect</strong> the
77 user's ad tracking preference. Also please note that any use of the advertising ID
Dirk Doughertyeb768482013-10-29 22:25:12 -070078 must abide by the terms of the <a class="external-link"
79 href="http://play.google.com/about/developer-content-policy.html#ADID">Google Play
80 Developer Content Policies</a>.
Dirk Doughertyf04c9b82013-10-20 22:54:04 -070081</p>
82
83<h3 id="format">Format of the Advertising ID</h3>
84
85<p>
86 Google Play services APIs expose the user's advertising ID as a string format of UUID,
87 with values similar to this:
88</p>
89<p style="margin-left:1.5em;"><code>“38400000-8cf0-11bd-b23e-10b96e40000d”</code></p>
90
91<h3 id="requirements">Requirements</h3>
92
93<ul>
94 <li>The advertising ID APIs are supported in Google Play services 4.0+</li>
95 <li>Support for the advertising ID on specific devices is based on their installed versions
96 of Google Play services</li>
97</ul>
98
99<h3 id="obtaining">Obtaining the user's advertising ID and ad tracking preference</h3>
100
101<p>
102 If you want to use the advertising ID in your app, you must first install the Google
103 Play services SDK. As noted in the requirements above, you should install the
104 SDK for Google Play services 4.0 or higher if you will develop using the advertising ID
105 APIs. For information about how to get started, see <a href=
106 "{@docRoot}google/play-services/setup.html">Set Up Google Play services</a>.
107</p>
108<p>
109 The advertising ID APIs are available in the <a href=
110 "{@docRoot}reference/com/google/android/gms/ads/identifier/package-summary.html">
111 <code>com.google.android.gms.ads.identifier</code></a> package in the Google
112 Play Services library. To obtain the user's advertising ID and tracking preference,
113 call the method
114 <a href=
115 "{@docRoot}reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.html#getAdvertisingIdInfo(android.content.Context)">
116 <code>getAdvertisingIdInfo()</code></a>, which returns an <a href=
117 "{@docRoot}reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.Info.html">
118 <code>AdvertisingIdClient.Info</code></a> encapsulating the user's current Advertising ID
119 and tracking preference.
120</p>
121
122<p class="note">
123 <strong>Note:</strong> The <code>getAdvertisingIdInfo()</code> method is a
124 blocking call, so you must not call it on the main (UI) thread. If called on
125 the main thread, the method throws <code>IllegalStateException</code>.
126</p>
127
128<p>
129 Once you've retrieved the <code>AdvertisingIdClient.Info</code> object, you
130 can use it's <a href=
131 "{@docRoot}reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.Info.html#getId()">
132 <code>getId()</code></a> and <a href=
133 "{@docRoot}reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.Info.html#isLimitAdTrackingEnabled()">
134 <code>isLimitAdTrackingEnabled()</code></a> methods to access the advertising ID and
135 ad tracking preference.
136</p>
137
138<table>
139<tr>
140<th>Method</th>
141<th>Description</th>
142</tr>
143<tr>
144<td><code>public String getId()</code></td>
145<td style="white-space:nowrap;">Retrieves the advertising ID.</td>
146</tr>
147<tr>
148<td style="white-space:nowrap;"><code>public boolean isLimitAdTrackingEnabled()</code></td>
149<td>Retrieves whether the user has limit ad tracking enabled or not.</td>
150</tr>
151</table>
152
153<p>
154 The advertising ID APIs do not include a "reset" method. Only users can initiate a
155 reset of their own advertising IDs, through the Google Settings application.
156</p>
157<p>
158 For more information about the advertising ID APIs, see the <a href=
159 "{@docRoot}reference/com/google/android/gms/ads/identifier/package-summary.html">
160 reference documentation</a>.
161</p>
162
163<h3 id="example">Example implementation</h3>
164
165<p>
166 Here's a basic illustration of how you can retrieve the user's advertising ID and ad
167 tracking preference in your app:
168</p>
169
170<pre>
171import com.google.android.gms.ads.identifier.AdvertisingIdClient;
172import com.google.android.gms.ads.identifier.AdvertisingIdClient.Info;
173import com.google.android.gms.common.GooglePlayServicesAvailabilityException;
174import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
175import java.io.IOException;
176...
177
178// Do not call this function from the main thread. Otherwise,
179// an IllegalStateException will be thrown.
180public void getIdThread() {
181
182 Info adInfo = null;
183 try {
184 adInfo = AdvertisingIdClient.getAdvertisingIdInfo(mContext);
185
186 } catch (IOException e) {
187 // Unrecoverable error connecting to Google Play services (e.g.,
188 // the old version of the service doesn't support getting AdvertisingId).
189
190 } catch (GooglePlayServicesAvailabilityException e) {
191 // Encountered a recoverable error connecting to Google Play services.
192
193 } catch (GooglePlayServicesNotAvailableException e) {
194 // Google Play services is not available entirely.
195 }
196 final String id = adInfo.getId();
197 final boolean isLAT = adInfo.isLimitAdTrackingEnabled();
198}</pre>