# clickzin_tracking_react_native

Clickzin React Native module to track installs & events

### Demo app : https://github.com/pradeep1806/clickzin-sdk-demo-apps/tree/main/clickzin_react_native_android%20 


### Steps to integrate in android code

```bash

#1. Download ClickzinInstallReferrerModule.java and place it in android/app/src/main/java/com/clickzin_react_native_android

Link to download : https://github.com/pradeep1806/clickzin-sdk-demo-apps/blob/main/clickzin_react_native_android%20/android/app/src/main/java/com/clickzin_react_native_android/ClickzinInstallReferrerModule.java

#2. Download ClickzinInstallReferrerPackage.java  and place it in android/app/src/main/java/com/clickzin_react_native_android

Link to download : https://github.com/pradeep1806/clickzin-sdk-demo-apps/blob/main/clickzin_react_native_android%20/android/app/src/main/java/com/clickzin_react_native_android/ClickzinInstallReferrerPackage.java


#3. In android/app/build.grade under dependencies add install referrer dependencies 

Refer here : https://raw.githubusercontent.com/pradeep1806/clickzin-sdk-demo-apps/main/clickzin_react_native_android%20/android/app/build.gradle

implementation 'com.android.installreferrer:installreferrer:2.2' //Add the Google Play Install Referrer library 
    

#4. In MainApplication.kt, add the module to link the package.

import com.clickzin_react_native_android.ClickzinInstallReferrerPackage;

override fun getPackages(): List<ReactPackage> =
            PackageList(this).packages.apply {
              add(ClickzinInstallReferrerPackage())
            }

Refer here: https://raw.githubusercontent.com/pradeep1806/clickzin-sdk-demo-apps/main/clickzin_react_native_android%20/android/app/src/main/java/com/clickzin_react_native_android/MainApplication.kt 

```

### Steps to integrate 

```bash
#1. Install the packages
npm install clickzin_tracking_react_native 
npm install @react-native-async-storage/async-storage


#2 To Track install, make below changes in App.tsx or app.jsx to capture the initial event.
  import ClickzinTrackingSdk from 'clickzin_tracking_react_native';

  Inside the class, add below useEffect to capture the initial event

  useEffect(() => {
    async function trackInstall() {
      try {
        const response = await ClickzinTrackingSdk.trackInstall(
          'api key',
          () => {
            console.log('Clickzin On Conversion tracked : ');
          },
        );
        console.log('Clickzin Response : ', response);
      } catch (error) {
        console.error('Clickzin error :', error);
      }
    }

    trackInstall();
  }, []);

#3 To Track event, make below changes in respective class to capture the respective events. register is used as example event id.

    try {
      const response = await ClickzinTracking.trackEvent(
        'api key',
        'register', 
         () => {
            console.log('Clickzin On Conversion tracked : ');
          },
      );
      console.log('Clickzin event response : ', response);
    } catch (error) {
      console.error('Clickzin event error :', error);
    }
```