[PERS SDK - v2.3.26](/sdk-reference/readme) / [Exports](/sdk-reference/modules) / TrackingManager

# Class: TrackingManager

Manages data source and platform tracking state

## Table of contents

### Constructors

- [constructor](/sdk-reference/classes/trackingmanager#constructor)


### Methods

- [setDataSource](/sdk-reference/classes/trackingmanager#setdatasource)
- [updateDataSource](/sdk-reference/classes/trackingmanager#updatedatasource)
- [setPlatform](/sdk-reference/classes/trackingmanager#setplatform)
- [getDataSource](/sdk-reference/classes/trackingmanager#getdatasource)
- [getPlatform](/sdk-reference/classes/trackingmanager#getplatform)
- [validate](/sdk-reference/classes/trackingmanager#validate)
- [buildHeaders](/sdk-reference/classes/trackingmanager#buildheaders)


## Constructors

### constructor

• **new TrackingManager**(`options?`): [`TrackingManager`](/sdk-reference/classes/trackingmanager)

#### Parameters

| Name | Type |
|  --- | --- |
| `options?` | `Object` |
| `options.dataSource?` | `DataSource` |
| `options.platform?` | `Platform` |


#### Returns

[`TrackingManager`](/sdk-reference/classes/trackingmanager)

#### Defined in

[core/tracking/tracking-manager.ts:21](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/core/tracking/tracking-manager.ts#L21)

## Methods

### setDataSource

▸ **setDataSource**(`dataSource`): `void`

Set data source tracking info (replaces existing)

#### Parameters

| Name | Type |
|  --- | --- |
| `dataSource` | `DataSource` |


#### Returns

`void`

**`Example`**

```typescript
tracking.setDataSource({
  channel: 'mobile',
  medium: 'push',
  campaign: 'summer_2026',
});
```

#### Defined in

[core/tracking/tracking-manager.ts:38](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/core/tracking/tracking-manager.ts#L38)

### updateDataSource

▸ **updateDataSource**(`dataSource`): `void`

Update data source tracking info (merges with existing)

#### Parameters

| Name | Type |
|  --- | --- |
| `dataSource` | `Partial`<`DataSource`> |


#### Returns

`void`

**`Example`**

```typescript
tracking.updateDataSource({
  campaign: 'new_campaign',
});
```

#### Defined in

[core/tracking/tracking-manager.ts:52](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/core/tracking/tracking-manager.ts#L52)

### setPlatform

▸ **setPlatform**(`platform`): `void`

Set platform info for analytics

#### Parameters

| Name | Type |
|  --- | --- |
| `platform` | `Platform` |


#### Returns

`void`

**`Example`**

```typescript
tracking.setPlatform({
  os: 'iOS',
  osVersion: '17.4',
  app: 'MyApp',
  appVersion: '2.3.1',
  deviceType: 'phone',
});
```

#### Defined in

[core/tracking/tracking-manager.ts:71](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/core/tracking/tracking-manager.ts#L71)

### getDataSource

▸ **getDataSource**(): `undefined` | `DataSource`

Get current data source config

#### Returns

`undefined` | `DataSource`

#### Defined in

[core/tracking/tracking-manager.ts:78](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/core/tracking/tracking-manager.ts#L78)

### getPlatform

▸ **getPlatform**(): `undefined` | `Platform`

Get current platform info

#### Returns

`undefined` | `Platform`

#### Defined in

[core/tracking/tracking-manager.ts:85](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/core/tracking/tracking-manager.ts#L85)

### validate

▸ **validate**(): `Object`

Check if tracking is properly configured

Returns warnings for missing recommended tracking data.
Useful for development/debugging to ensure proper attribution.

#### Returns

`Object`

| Name | Type |
|  --- | --- |
| `isValid` | `boolean` |
| `warnings` | `string`[] |


#### Defined in

[core/tracking/tracking-manager.ts:95](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/core/tracking/tracking-manager.ts#L95)

### buildHeaders

▸ **buildHeaders**(): `Record`<`string`, `string`>

Build HTTP headers for data source tracking

- Used by PersApiClient


#### Returns

`Record`<`string`, `string`>

#### Defined in

[core/tracking/tracking-manager.ts:121](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/core/tracking/tracking-manager.ts#L121)