Source: https://developers.woosmap.com/products/geofencing-sdk/tracking-profiles/tracking-properties/

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

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

# Concept - Tracking Properties



## Tracking profile properties

When you want to use a preset tracking profile, some default values are set as tracking properties:

| Property                         | liveTracking | passiveTracking | visitsTracking |
| -------------------------------- | ------------ | --------------- | -------------- |
| trackingEnable                   | true         | true            | true           |
| foregroundLocationServiceEnable  | true         | false           | false          |
| modeHighFrequencyLocation        | true         | false           | false          |
| visitEnable                      | false        | false           | true           |
| classificationEnable             | false        | false           | true           |
| creationOfZOIEnable              | false        | false           | true           |
| searchAPI/searchAPIEnable        | false        | true           | false          |
| searchAPI/searchAPICreationRegionEnable    | false        | true           | false          |
| searchAPI/searchAPITimeFilter    | 20            | 20               | 20              |
| searchAPI/searchAPIDistanceFilter  | 100            | 100               | 100              |
| searchAPI/distanceAPIEnable      | false        | false           | false          |
| distance/distanceProvider        | woosmapDistance | woosmapDistance | woosmapDistance |
| distance/distanceMode            | driving      | driving         | driving        |
| distance/distanceRouting         | fastest      | fastest         | fastest        |
| distance/distanceUnits           | metric       | metric          | metric         |
| distance/distanceLanguage        | fr           | fr              | fr             |
| distance/distanceMaxAirDistanceFilter            | 1000000      | 1000000         | 1000000        |
| distance/distanceTimeFilter      | 30           | 30              | 30             |

## Custom tracking profiles - Json Schema

The json schema below must be respected when you create your own custom tracking profile, the SDK uses this schema to validate your Json file.
```json
{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "title": "Woosmap Geofencing SDK - Tracking profile Json schema",
    "description": "Configuration file ",
    "properties": {
        "woosmapKey": {
            "description": "Define the Woosmap private key use to perform request to Woosmap API.",
            "type": "string",
            "minimum": 0
        },
        "trackingProfileRefreshDelay": {
            "description": "Minimum number of day to wait before refresh the custom profile. A value of 0 indicates that no refresh is performed by the SDK.",
            "type": "integer",
            "minimum": 0
        },
        "trackingEnable": {
            "description": "Enable this parameter to start collecting location",
            "type": "boolean"
        },
        "foregroundLocationServiceEnable": {
            "description": "ANDROID ONLY - Enable this parameter to use the foreground service to collect location when the app is in background.",
            "type": "boolean"
        },
        "modeHighFrequencyLocation": {
            "description": "Enable this parameter to have a higher frequency of location updates.",
            "type": "boolean"
        },
        "visitEnable": {
            "description": "Enable this parameter to detect user's stops",
            "type": "boolean"
        },
        "classificationEnable": {
            "description": "Enable this parameter to classify the all zone of interest",
            "type": "boolean"
        },
        "creationOfZOIEnable": {
            "description": "Enable this parameter to automically create zone of interest from collected visits",
            "type": "boolean"
        },
        "searchAPI": {
            "description": "In this object, find all parameters related to the Woosmap Search API.",
            "type": "object",
            "properties": {
                "searchAPIEnable": {
                    "description": "Enable this parameters to request the Woosmap Search API regularly to retrieve nearest POIs",
                    "type": "boolean"
                },
                "searchAPICreationRegionEnable": {
                    "description": "Enable this parameters to automatically create a circle geofence around each POIs retrieved from the request to the Woosmap Search API",
                    "type": "boolean"
                },
                "searchAPITimeFilter": {
                    "description": "Minimum number of seconds to wait before send a new request to the Woosmap Search API.",
                    "type": "integer",
                    "minimum": 0
                },
                "searchAPIDistanceFilter": {
                    "description": "Minimum number of meters to wait before send a new request to the Woosmap Search API.",
                    "type": "integer",
                    "minimum": 0
                },
                "searchAPIRefreshDelayDay": {
                    "description": "Number of day to wait before force to send a new request to the Woosmap Search API.",
                    "type": "integer",
                    "minimum": 1
                },
                "searchAPIParameters": {
                    "description": "Set parameter to narrow your results or filters it with the query parameter. More details in the Woosmap Search API documentation.",
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "key": {
                                "description": "Search API parameter name",
                                "type": "string"
                            },
                            "value": {
                                "description": "Search API parameter value",
                                "type": "string"
                            }
                        },
                        "required": [
                            "key",
                            "value"
                        ]
                    }
                }
            },
            "required": [
                "searchAPIEnable",
                "searchAPICreationRegionEnable"
            ]
        },
        "distance": {
            "description": "In this object, find all parameters related to the Distance provider.",
            "type": "object",
            "properties": {
                "distanceProvider": {
                    "description": "Use this parameter to define which Distance provider will be used to retrieve distance and duration data.",
                    "type": "string",
                    "enum": ["woosmapDistance", "woosmapTraffic"]
                },
                "distanceMode": {
                    "description": "Use this parameter to define the travel mode related to the request to the Distance provider.",
                    "type": "string",
                    "enum": ["driving", "walking", "cycling"]
                },
                "distanceRouting": {
                    "description": "Use this parameter to define the Woosmap Traffic API routing parameter",
                    "type": "string"
                },
                "distanceUnits": {
                    "description": "Use this parameter to define the distance unit related to the request to the Distance provider.",
                    "type": "string",
                    "enum": ["metric", "imperial"]
                },
                "distanceLanguage": {
                    "description": "Use this parameter to define the language related to the request to the Distance provider.",
                    "type": "string"
                },
                "distanceMaxAirDistanceFilter": {
                    "description": "Maximum air distance between the user location and the isochrone geofence center to justify the ETA has to be calculated.",
                    "type": "integer",
                    "maximum": 1000000,
                    "minimum": 0
                },
                "distanceTimeFilter": {
                    "description": "Minimum number of seconds to wait before send a new request to the Distance provider.",
                    "type": "integer"
                }
            },
            "required": ["distanceProvider"]
        },
        "sfmcCredentials": {
            "description": "Some input and credentials to perform the API call to Salesforce Marketing Cloud API.",
            "type": "object",
            "properties": {
                "authenticationBaseURI": {
                    "description": "Authentication Base URI.",
                    "type": "string"
                },
                "restBaseURI": {
                    "description": "REST Base URI.",
                    "type": "string"
                },
                "client_id": {
                    "description": "client_id (journey_read and list_and_subscribers_read rights are required).",
                    "type": "string"
                },
                "client_secret": {
                    "description": "client_secret (journey_read and list_and_subscribers_read rights are required).",
                    "type": "string"
                },
                "regionEnteredEventDefinitionKey": {
                    "description": "EventDefinitionKey for the Woosmap event woos_geofence_entered_event.",
                    "type": "string"
                },
                "regionExitedEventDefinitionKey": {
                    "description": "EventDefinitionKey for the Woosmap event woos_geofence_exited_event.",
                    "type": "string"
                },
                "poiEventDefinitionKey": {
                    "description": "EventDefinitionKey for the Woosmap event woos_POI_event.",
                    "type": "string"
                },
                "zoiClassifiedEnteredEventDefinitionKey": {
                    "description": "EventDefinitionKey for the Woosmap event woos_zoi_classified_entered_event.",
                    "type": "string"
                },
                "zoiClassifiedExitedEventDefinitionKey": {
                    "description": "EventDefinitionKey for the Woosmap event woos_zoi_classified_exited_event.",
                    "type": "string"
                },
                "visitEventDefinitionKey": {
                    "description": "EventDefinitionKey for the Woosmap event woos_Visit_event.",
                    "type": "string"
                }
            },
            "required": [
                "authenticationBaseURI",
                "restBaseURI",
                "client_id",
                "client_secret"
            ]
        }
    },
    "required": [
        "trackingEnable",
        "foregroundLocationServiceEnable",
        "modeHighFrequencyLocation",
        "visitEnable"
    ]
}
```
