react-native-converted-in-sdk
v1.1.0
Published
Converted In SDK for React Native
Maintainers
Readme
react-native-converted-in-sdk
A React Native SDK for ConvertedIn, providing easy integration of ConvertedIn's tracking and analytics features into your React Native application.
📹 Demo
| iOS | Android |
| -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| |
|
🛠️ Requirements
- iOS 13.0 or higher
- Android 5.0 (API level 21) or higher
📦 Installation
Install the package using npm:
npm install react-native-converted-in-sdkOr with yarn:
yarn add react-native-converted-in-sdkFollow these steps to complete the installation:
iOS
Add
ConvertedinMobileSDKto yourPodfile:pod 'react-native-converted-in-sdk', :path => '../node_modules/react-native-converted-in-sdk'Run
pod installinside theiosdirectory.
Android
Add the following line to the
android/settings.gradlefile:include ':react-native-converted-in-sdk' project(':react-native-converted-in-sdk').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-converted-in-sdk/android')Add the following line to the
android/app/build.gradlefile:implementation project(':react-native-converted-in-sdk')Sync your project with Gradle files by running:
./gradlew sync
🚀 Usage
Manual Module Usage
Import the module and initialize it in the root of your app:
import { initializeSDK } from 'react-native-converted-in-sdk'; initializeSDK({ pixelId: 'your_pixel_id', storeUrl: 'your_store_url', });Use the SDK methods in your components:
import { identifyUser } from 'react-native-converted-in-sdk'; const Component = () => { React.useEffect(() => { // Example usage of SDK functions identifyUser("[email protected]", "+91", "9876543210"); }, []); // Your component logic here };
Usage with Hook
Wrap your app with
RNConvertInSDKProvider:export default function App() { return ( <RNConvertInSDKProvider pixelId="your_pixel_id" storeUrl="your_store_url" > <AppContent /> </RNConvertInSDKProvider> ); }Use the
useConvertedInSdkhook in your components:import { useConvertedInSdk } from 'react-native-converted-in-sdk'; const Component = () => { const { identifyUser } = useConvertedInSdk(); React.useEffect(() => { // Example usage of SDK functions identifyUser("[email protected]", "+91", "9876543210"); }, []); // Your component logic here };
📚 API Reference
RNConvertInSDKProvider
| Prop | Type | Required | Description |
| ---------- | ------ | -------- | ------------------------- |
| pixelId | string | Yes | Your ConvertedIn pixel ID |
| storeUrl | string | Yes | Your store URL |
useConvertedInSdk
Returns an object with the following methods:
| Method | Parameters | Return Type | Description |
| ----------------------- | ------------------------------------------------------------------------- | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| isInitialized | None | boolean | Returns whether the SDK has been initialized. |
| initializeSDK | config: { pixelId: string, storeUrl: string } | Promise<void> | Initializes the SDK with the provided configuration. Call this as early as possible in your app's lifecycle. |
| identifyUser | email: string, countryCode: string, phoneNumber: string | void | Identifies a user with their email, country code, and phone number. This helps in tracking user-specific events and improving personalization. |
| addEvent | eventName: string, currency: string, total: number, products: Product[] | void | Adds a custom event with the specified name, currency, total, and products. This allows tracking specific actions or milestones in your app. |
| viewContentEvent | currency: string, total: number, products: Product[] | void | Tracks a view content event when a user views a product or content page. Includes details like currency, total value, and viewed products. |
| addToCartEvent | currency: string, total: number, products: Product[] | void | Tracks an add-to-cart event when a user adds items to their shopping cart. Includes details about the added products, total value, and currency. |
| initiateCheckoutEvent | currency: string, total: number, products: Product[] | void | Tracks the initiation of the checkout process. This event should be called when a user starts the purchasing process. |
| purchaseEvent | currency: string, total: number, products: Product[] | void | Tracks a completed purchase event. This should be called when a user successfully completes a transaction, including details of purchased products. |
| registerEvent | None | void | Tracks a user registration event. This should be called when a new user creates an account in your app. |
Product Interface
| Property | Type | Description |
| ---------- | ------ | ------------------------------------- |
| id | number | The unique identifier of the product. |
| quantity | number | The quantity of the product. |
| name | string | The name of the product. |
🧪 Sample App
Check the example folder for a complete implementation example.
[!NOTE] If you encounter an error while installing pods in
example/ios, please refer to this solution: https://stackoverflow.com/a/78874710/12355129
🛠️ Development
To develop the SDK locally:
Clone the repository.
Ensure you have the following environment set up:
- Node.js version 18 or higher.
- Yarn version 3 or higher (project version: 3.6.1).
- Java 17 or higher.
- For iOS development: Xcode 12.0 or higher. iOS deployment target 13.0 or higher.
- For Android development: Android Studio 4.0 or higher.
Install dependencies:
yarn installRun the example app:
iOS:
cd example/ios && pod install && cd ../.. yarn example iosAndroid:
yarn example android
🧪 Testing
Run tests with:
yarn test🚨 Error Handling
If any SDK method is called before initialization, an error will be thrown with the message:
SDK must be initialized before calling this method.Make sure to initialize the SDK using the initializeSDK method before invoking any other SDK methods.
🤝 Contributing
See the contributing guide to learn how to contribute to the repository and the development workflow.
📚 Official Documentation
For detailed information and advanced usage, refer to the official ConvertedIn SDK documentation:
📜 License
MIT
