/react-native-advertising-id

React Native bridge for fetching advertising info on iOS and Android

Primary LanguageJavaMIT LicenseMIT

Consistent access to Advertising Id (AAID/GAID and IDFA) for Android and iOS on React Native.

Getting started

$ npm install react-native-advertising-id --save

$ react-native link react-native-advertising-id // If you are under RN 0.60.0 below where auto-linking not born yet.

Manual installation (If auto-linking not available)

iOS

  1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
  2. Go to node_modulesreact-native-advertising-id and add RNAdvertisingId.xcodeproj
  3. In XCode, in the project navigator, select your project. Add libRNAdvertisingId.a to your project's Build PhasesLink Binary With Libraries
  4. Run your project (Cmd+R)<

Android

  1. Open up android/app/src/main/java/[...]/MainActivity.java
  • Add import info.applike.advertisingid.RNAdvertisingIdPackage; to the imports at the top of the file
  • Add new RNAdvertisingIdPackage() to the list returned by the getPackages() method
  1. Append the following lines to android/settings.gradle:
    include ':react-native-advertising-id'
    project(':react-native-advertising-id').projectDir = new File(rootProject.projectDir, 	'../node_modules/react-native-advertising-id/android')
  2. Insert the following lines inside the dependencies block in android/app/build.gradle:
      implementation project(':react-native-advertising-id')

Post Installation

Update your mainfest.xml and add in your Admob app id (Yes, for later version, you need admob app id):

<manifest>
    <application>
    <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-3940256099942544~3347511713"/> // This is sample-id for testing only, don't use it in PRODUCTION!!! You will get banned for life!
    </application>
</manifest>

Usage

react-native-advertising-id module provides a method getAdvertisingId() that returns a Promise. This resolves in an object containing advertisingId as a string representing the GAID/AAID or IDFA depending on the platform, and isLimitAdTrackingEnabled indicating wether the user opted to restrict the usage of his AdvertisingId or not. (Note: If enabled on iOS, advertisingId will result in an empty string).

import RNAdvertisingId from 'react-native-advertising-id';

  RNAdvertisingId.getAdvertisingId()
    .then(response => {
      this.setState({
        advertisingId: response.advertisingId,
        isLimitAdTrackingEnabled: response.isLimitAdTrackingEnabled,
      });
    })
    .catch(error => console.error(error));

OTHERS ISSUES

Android 12 - On launch crashing, see this thread for solution: https://groups.google.com/g/google-admob-ads-sdk/c/fmbPnkUCIe8