react-native-amplitude-analytics
Dependencies
react-native
version >0.40
Installation
npm i react-native-amplitude-analytics --save
For react-native > 0.60 the installation should be automated, for older versions expand and read the Manual installation section below.
Manual installation steps
Manual iOS installation
react-native link react-native-amplitude-analytics
After you do that make sure that:
- RNAmplitudeSDK.xcodeproj from
node_modules/react-native-amplitude-analytics/ios
is found within your Xcode Project as a subproject (if it's not add it manually with drag and drop). - libRNAmplitudeSDK.a is found within Linked Frameworks and Libraries under General tab (if it's not add it with the plus button) - (you don't need to add libAmplitude-iOS.a as that will be dealt with by Cocoapods in the next step).
- Either
-
add the following line to your "Podfile": pod 'Amplitude-iOS', '~> 4.3.1'
and run pod install
or
-
download the Amplitude-iOS sdk from here and add it to your project manually. Make sure the Amplitude-iOS
directory of the SDK is included in the root of your app's ios folder.
- Run your project (
Cmd+R
)
Android Manual installation
- Open up
android/app/src/main/java/[...]/MainApplication.java
-
Add
import com.sudoplz.reactnativeamplitudeanalytics.RNAmplitudeSDKPackage;
to the imports at the top of the file.
-
Add
new RNAmplitudeSDKPackage(MainApplication.this),
to the list returned by the getPackages()
method
-
Append the following lines to android/settings.gradle
:
include ':react-native-amplitude-analytics'
project(':react-native-amplitude-analytics').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-amplitude-analytics/android')
-
Insert the following lines inside the dependencies block in android/app/build.gradle
:
compile 'com.amplitude:android-sdk:2.19.1' // native sdk of amplitude
compile project(':react-native-amplitude-analytics') // our react-native module
-
Add permissions. If you haven't already, add the INTERNET permission to your manifest file:
<uses-permission android:name="android.permission.INTERNET" />
Usage
import RNAmplitude from 'react-native-amplitude-analytics';
Example
class testApp extends Component {
constructor() {
super();
const amplitude = new RNAmplitude('Your Amplitude key');
amplitude.logEvent(eventName);
amplitude.logEvent(eventName, { foo: bar });
amplitude.logEventWithTimestamp(eventName, timestamp, { foo: bar });
amplitude.setUserId('1D32FS45');
amplitude.setUserProperties({ hairColor: 'brown' });
amplitude.setOptOut(true);
amplitude.logRevenue(productIdentifier, quantity, amount)
amplitude.logRevenueV2(revenueProperties)
amplitude.addToUserProperty(property, amount)
amplitude.setUserPropertyOnce(property, value)
amplitude.getDeviceId().then(deviceId => ...)
}
...
}
there's also an example project here.