Source: https://developers.woosmap.com/products/geofencing-sdk/react-native-plugin/guides/start-tracking-profiles/

> For clean Markdown of any page, append `.md` to the page URL.

> For a complete documentation index, see https://developers.woosmap.com/llms.txt

# Tracking Profiles



Tracking profiles aim to simplify the Woosmap Geofencing SDK integration.

The concept of Tracking profile and the difference between each profile is explained in
the [Tracking profiles documentation](/products/geofencing-sdk/tracking-profiles/tracking-profiles/)

## Start/Stop a tracking profile

Once you have initialized the plugin and the user has authorized location permissions, you can start tracking the user’s
location.

To start tracking, call:

```js
WoosmapGeofencing.startTracking('liveTracking')
    .then((result: string) => {
        console.log(value);
    })
    .catch((error: any) => {
        alert('message: ' + error.message);
    });

```

To stop tracking, call:

```js
WoosmapGeofencing.stopTracking()
    .then((value: any) => {
        console.log(value);
    })
    .catch((error: any) => {
        alert('message: ' + error.message);
    });
```

Method `startTracking` accepts only following tracking profiles:
- **liveTracking**
- **passiveTracking**
- **optimalPassiveTracking**
- **visitsTracking**
- **beaconTracking**

## **passiveTracking** on iOS

If you enable passive tracking on the iOS App, it will use all **20 region slots** (`CLRegion`) assigned by the system to the application.  
If you plan to add another plugin that also relies on `CLRegion` geofencing, the SDK allows you to free up to **3 slots** for use by a third-party plugin.  
This can be configured as shown below.

### While initializing the plugin:

```js
var woosmapSettings: WoosmapGeofencingOptions = {
  privateKeyWoosmapAPI: "<<WOOSMAP_KEY>>",
  trackingProfile: "liveTracking",
  protectedRegionSlot: 2
};

WoosmapGeofencing.initialize(woosmapSettings)
  .then((value: string) => {
    console.log(value);
  })
  .catch((error: any) => {
    alert('message: ' + error.message);
  });
```

### Or via a function call later:

```js
WoosmapGeofencing .setProtectedRegionSlot(3)
```
