Respectlytics Respect lytics
Menu
React Native No AAID collection

How to add React Native analytics with no AAID collection

Google's AAID (Android Advertising ID) is the Android counterpart to Apple's IDFA. Most analytics SDKs read it via AdvertisingIdClient — and silently add com.google.android.gms.permission.AD_ID to the merged manifest. Respectlytics's React Native SDK does neither: no AdvertisingIdClient call, no AD_ID permission contributed to the merged manifest, no AAID stored in events. Below: how to verify the manifest, what changes for Google Play Data Safety, and the FAQ.

Install the React Native SDK

bash Respectlytics
npm install @respectlytics/react-native
# or
yarn add @respectlytics/react-native

JavaScript-only — no native modules, no auto-linking, no New Architecture migration concerns. Bundle size: ~14KB minified+gzipped. Works in any Expo project (managed or bare) without expo prebuild.

Initialize Respectlytics in React Native

js Respectlytics
// App.tsx (or App.js)
import { useEffect } from 'react';
import Respectlytics from '@respectlytics/react-native';

export default function App() {
  useEffect(() => {
    Respectlytics.configure({ appKey: '<YOUR_APP_KEY>' });
  }, []);
  return <YourApp />;
}

Initialize once in your top-level component. No native config; no Info.plist or AndroidManifest changes. The SDK is Hermes- and JSC-compatible.

Privacy & implementation notes

Google's recent policy auto-declares the AD_ID permission in your merged manifest if any dependency uses the Ads SDK or AdvertisingIdClient. Many teams discover the permission only when Google Play flags it — usually from a transitive dependency they didn't realize was pulling Ads SDK. Respectlytics's Android SDK has zero Google Play Services dependencies, so it cannot contribute to that merge.

The Google Play Data Safety form's "Advertising or marketing IDs" category is one of the most-flagged categories in audits. Apps that declare it correctly because of an embedded Ads SDK get fine; apps that declare "No" without realizing a transitive dependency does collect AAID get rejected. Respectlytics's no-Ads-SDK posture means you can answer "No" honestly for our SDK's contribution.

The React Native SDK is JavaScript-only — no Objective-C/Swift bridging on iOS, no Java/Kotlin bridging on Android. Side effects: no react-native link, no auto-linking, no New Architecture migration concerns, no platform-channel exception surfaces. Trade-off: no access to platform-only metadata (which we don't want to collect anyway).

Works in Expo managed workflow without expo prebuild. No config plugin is required. EAS Build users: nothing to configure. This is the smoothest integration path on RN — most analytics SDKs require ejecting from managed.

How this compares to other analytics SDKs

AAID handlingFirebase AnalyticsMixpanelAppsFlyerRespectlytics
Reads AAID via AdvertisingIdClientYesYes (optional)Yes (mandatory)No
Adds AD_ID permission to manifestYes (auto-merged)ConditionalYesNo
Stores AAID in eventsYesOptionalYesNever
Effect on Google Play Data SafetyTriggers ad-ID categoryTriggers ad-ID categoryTriggers ad-ID categoryNo ad-ID category from us
Cross-app tracking surfaceAAID-linkedAAID-linkedAAID-linkedNone

Frequently asked questions

How do we tell if AAID is being collected by another SDK in our app?

Check the merged manifest at app/build/intermediates/merged_manifests/release/AndroidManifest.xml — if it contains <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>, some dependency is contributing it. Often it's Firebase Analytics, AdMob, or an attribution SDK pulled by your build. Removing those dependencies removes the permission.

Will Google Play reject my app for not declaring AD_ID?

No. Apps that don't use AAID don't need to declare the permission — and Google's Data Safety form lets you tick "No, this app does not collect advertising ID". Confirm with your legal team based on what other SDKs in your app do.

Does Respectlytics use any device-level identifier on Android?

Only the rotating session_id (RAM-only, regenerated every 2 hours and on app restart). No Settings.Secure.ANDROID_ID, no Build.SERIAL, no MAC address, no IMEI.

What happens on devices without Google Play Services?

Same as on devices with Google Play Services: no AAID, just the session_id. Respectlytics has no Google Play Services dependency at all, so the SDK's behaviour is identical on non-GMS devices (Huawei AppGallery, F-Droid, etc.).

Related guides

Track what matters. Collect nothing you don't.

Five-field event schema, RAM-only event queue, no IDFA, no AAID, no persistent user IDs. Helps developers avoid collecting personal data in the first place.