Privacy

    Android advertising ID and App Set ID privacy

    A 2026 view contrasting the Android advertising ID, used for ads and user-resettable with the AD_ID permission, against the App Set ID used for analytics and fraud, scoped to one developer's apps

    Android gives you two device identifiers with very different purposes, and using the wrong one is both a privacy problem and a policy problem. The advertising ID is for advertising, is user-resettable, and now requires a permission, while the App Set ID is for non-advertising uses like analytics and fraud prevention and is scoped to your own apps. Mixing them up, using the advertising ID for analytics, or ignoring a user's reset, breaks Google Play's rules and user expectations. Here is what each identifier is for, the AD_ID permission and user controls, and how to use them respectfully.

    Short answer

    Android has two main app-facing identifiers: the advertising ID, a user-resettable, deletable identifier for advertising that users can opt out of, and the App Set ID, scoped to your own set of apps and intended for non-advertising uses like analytics and fraud prevention. Per Google's documentation, apps targeting Android 13 or higher that use the advertising ID must declare the AD_ID permission, or the ID is replaced with zeros, and you must respect user resets and opt-outs. Use the advertising ID only for advertising, the App Set ID for non-ad use cases, never reconnect a reset advertising ID, and declare your use in your Data safety form. The two identifiers are not interchangeable.

    What you should know

    • Advertising ID is for ads: user-resettable and opt-out-able.
    • App Set ID is for non-ads: analytics and fraud, scoped to your apps.
    • AD_ID permission is required: for advertising ID on Android 13+, or it is zeroed.
    • Respect user controls: do not reconnect a reset advertising ID.
    • Declare your use: in the Data safety form.

    What is the difference between the advertising ID and App Set ID?

    They serve different purposes and have different scopes. The table contrasts them.

    AspectAdvertising IDApp Set ID
    PurposeAdvertising and ad measurementNon-advertising: analytics, fraud prevention
    ScopeDevice-wide, shared across appsScoped to your own set of apps
    User controlResettable, deletable, opt-outNot user-facing in the same way; resets over time
    Cross-developer trackingPossible, governed by policyNot for tracking across developers
    PermissionAD_ID required on Android 13+No special permission

    The advertising ID is the device-wide identifier for advertising that the user controls, and is the one to use only for ad-related purposes. The App Set ID is per-developer, intended for use cases like analytics and fraud prevention that need a stable identifier without being for advertising, and is explicitly not meant to track users across different developers. Choosing the right one for the purpose is the first rule: do not reach for the advertising ID just because it is familiar if your use is analytics or fraud, where the App Set ID is appropriate.

    What about the AD_ID permission and user controls?

    Both reflect that the advertising ID is privacy-sensitive. Apps targeting Android 13 or higher that use the Google advertising ID must declare the AD_ID normal permission in the manifest; without it, the advertising ID your app receives is replaced with a string of zeros, breaking ad attribution. On the user side, the advertising ID is resettable and deletable: a user can reset it to break the link to past activity, opt out of personalized ads, or delete it entirely, after which the app receives zeros. You must respect these controls, which means not attempting to reconnect a reset advertising ID to its previous value or to other identifiers, sometimes called bridging, since that defeats the user's choice and violates policy. So using the advertising ID comes with both a declaration requirement and an obligation to honor the user's resets and opt-outs.

    How do you use these identifiers respectfully?

    Match the identifier to the purpose, declare it, and honor user choices. Use the advertising ID only for advertising and ad measurement, declare the AD_ID permission if you target Android 13 or higher, and never reconnect a reset advertising ID to past data. For non-advertising needs like analytics or fraud prevention, use the App Set ID rather than the advertising ID, since that is what it is for and it is not for cross-developer tracking. Avoid building your own persistent device identifier from device characteristics to work around these, since that is fingerprinting, which is restricted. Declare your use of these identifiers accurately in your Data safety form, since they are part of your data practices. The principle mirrors the iOS approach: identifiers the user controls, used for their intended purpose, with consent and disclosure, not covert persistent tracking.

    What to watch out for

    The first trap is using the advertising ID for non-advertising purposes like analytics, when the App Set ID is the right identifier; match the identifier to the use. The second is omitting the AD_ID permission on Android 13 or higher, which zeros out the advertising ID. The third is reconnecting or bridging a reset advertising ID, which violates the user's choice and policy. A pre-submission scan such as PTKD.com (https://ptkd.com) reads the compiled APK or AAB against OWASP MASVS and surfaces the SDKs and identifiers your app uses, which helps you see whether an SDK is using the advertising ID, so your declarations and usage match. The identifier choices you make in the app.

    What to take away

    • Android's advertising ID is for advertising and is user-resettable and opt-out-able, while the App Set ID is for non-advertising uses like analytics and fraud, scoped to your own apps.
    • Apps targeting Android 13 or higher must declare the AD_ID permission to use the advertising ID, or it is replaced with zeros, and you must respect user resets and opt-outs.
    • Use each identifier for its intended purpose, never reconnect a reset advertising ID, avoid fingerprinting as a workaround, and declare your use in the Data safety form.
    • Use a pre-submission scan such as PTKD.com to see which identifiers and SDKs your app uses so your usage and disclosures align.
    • #android
    • #advertising-id
    • #app-set-id
    • #privacy
    • #ad-id-permission
    • #data-safety
    • #tracking

    Frequently asked questions

    What is the difference between the advertising ID and App Set ID?
    The advertising ID is a device-wide identifier for advertising and ad measurement that the user can reset, delete, and opt out of, and that apps targeting Android 13 or higher need the AD_ID permission to use. The App Set ID is scoped to your own set of apps and is intended for non-advertising use cases like analytics and fraud prevention, and is not meant to track users across different developers. Use each for its intended purpose; they are not interchangeable.
    Do I need the AD_ID permission?
    Yes, if your app targets Android 13 or higher and uses the Google advertising ID, you must declare the AD_ID normal permission in your manifest. Without it, the advertising ID your app receives is replaced with a string of zeros, which breaks ad attribution. SDKs that use the advertising ID can also require it. So declare AD_ID if you genuinely use the advertising ID for advertising, and do not request it if your app does not use the advertising ID at all.
    What user controls apply to the advertising ID?
    The advertising ID is resettable and deletable, and the user can opt out of personalized ads. A user can reset it to break the link to past activity, or delete it entirely, after which your app receives zeros. You must respect these controls, which means not reconnecting or bridging a reset advertising ID to its previous value or to other identifiers, since that defeats the user's choice and violates policy. Honoring resets and opt-outs is part of using the advertising ID.
    Can I use the advertising ID for analytics?
    No, use the App Set ID for non-advertising purposes like analytics and fraud prevention. The advertising ID is for advertising and ad measurement, and using it for analytics misuses an identifier the user controls for ad purposes. The App Set ID is purpose-built for stable, non-ad use cases scoped to your own apps. And do not build your own persistent device identifier from device characteristics to work around the rules, since that is fingerprinting, which is restricted.
    How do I confirm which identifiers my app uses?
    Scan the build. A pre-submission scan such as PTKD.com reads the compiled APK or AAB against OWASP MASVS and surfaces the SDKs and identifiers your app uses, which helps you see whether an SDK is using the advertising ID and whether you need the AD_ID permission, so your declarations and usage match. With that visibility, you can use the right identifier for each purpose, declare AD_ID only when needed, and keep your Data safety form accurate.

    Keep reading

    Scan your app in minutes

    Upload an APK, AAB, or IPA. PTKD returns an OWASP-aligned report with copy-paste fixes.

    Try PTKD free