
---
## Set custom identifier for events
---
This method sets a custom identifier in the parameters of every event.

You can pass a custom identifier to match your customers in our database.
**Declared In:**  
lib/main/modules/TrackerModule.js
  
**Class:**  
[TrackerModule](/developers/mobile-sdk/class-reference/react-native/modules#tracker)
  
**Declaration:**  

<pre><code class="language-TypeScript">public setCustomIdentifier(identifier: string)</code></pre>


**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **identifier** | string | yes | - | Customer's custom identifier |
  
**Return Value:**  
No value is returned.
  
**Example:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1194">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1194-0" data-tab-group="tabgrp-1194" data-tab-active="true">JavaScript</button></div>

<div class="tab-panel" data-tab-id="tabgrp-1194-0" data-tab-group="tabgrp-1194" data-tab-active="true">

```JavaScript
Synerise.Tracker.setCustomIdentifier("CUSTOM_IDENTIFIER");
```

</div>
</div>


## Set custom email for events
---
This method sets a custom email in the parameters of every event.

You can pass a custom email to match your customers in our database.
**Declared In:**  
lib/main/modules/TrackerModule.js
  
**Class:**  
[TrackerModule](/developers/mobile-sdk/class-reference/react-native/modules#tracker)
  
**Declaration:**  

<pre><code class="language-TypeScript">public setCustomEmail(email: string)</code></pre>


**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **email** | string | yes | - | Customer's custom email |
  
**Return Value:**  
No value is returned.

**Example:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1195">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1195-0" data-tab-group="tabgrp-1195" data-tab-active="true">JavaScript</button></div>

<div class="tab-panel" data-tab-id="tabgrp-1195-0" data-tab-group="tabgrp-1195" data-tab-active="true">

```JavaScript
Synerise.Tracker.setCustomEmail("CUSTOM_EMAIL");
```

</div>
</div>


## Send event
---
This method sends an event.


<div class="admonition admonition-warning"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z" /></svg></div><div class="admonition-body"><div class="admonition-content">

DO NOT send `transaction.charge` events as custom events.<br>
Transactions must be tracked with these endpoints:
- [`/v4/transactions`](https://developers.synerise.com/DataManagement/DataManagement.html#operation/CreateATransaction) (single transaction)
- [`/v4/transactions/batch`](https://developers.synerise.com/DataManagement/DataManagement.html#operation/BatchAddOrUpdateTransactions) (multiple transactions)

  </div></div></div>

  

  <div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

- The tracker caches and enqueues all your events locally, so they all will be sent eventually.
- The API key must have the `API_BATCH_EVENTS_CREATE` permission from the **Events** group.

</div></div></div>

**Declared In:**  
lib/main/modules/TrackerModule.js

**Related To:**  
[Event](/developers/mobile-sdk/class-reference/react-native/events#event)  
[CustomEvent](/developers/mobile-sdk/class-reference/react-native/events#customevent)  
  
**Class:**  
[TrackerModule](/developers/mobile-sdk/class-reference/react-native/modules#tracker)
  
**Declaration:**  

<pre><code class="language-TypeScript">public send(event: Event)</code></pre>


**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **event** | **Event** | yes | - | Event object |
  
**Return Value:**  
No value is returned.

**Example:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1196">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1196-0" data-tab-group="tabgrp-1196" data-tab-active="true">JavaScript</button></div>

<div class="tab-panel" data-tab-id="tabgrp-1196-0" data-tab-group="tabgrp-1196" data-tab-active="true">

```JavaScript
let parameters = {
  "name": "John",
  "surname": "Rise",
  "company": "Synerise",
  "age": 25,
  "lastOrder": 380.50
};

let event = new CustomEvent("label", "my.action", parameters);
Synerise.Tracker.send(event);
```

</div>
</div>


## Flush events from Tracker
---
This method forces sending the events from the queue to the server.


<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

The API key must have the `API_BATCH_EVENTS_CREATE` permission from the **Events** group.

</div></div></div>

**Declared In:**  
lib/main/modules/TrackerModule.js
  
**Class:**  
[TrackerModule](/developers/mobile-sdk/class-reference/react-native/modules#tracker)
  
**Declaration:**  

<pre><code class="language-TypeScript">public flushEvents(onSuccess: () =&gt; void)</code></pre>


**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **onSuccess** | Function | no | - | Function to be executed when the operation is completed successfully |

**Return Value:**  
No value is returned.
  
**Example:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1197">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1197-0" data-tab-group="tabgrp-1197" data-tab-active="true">JavaScript</button></div>

<div class="tab-panel" data-tab-id="tabgrp-1197-0" data-tab-group="tabgrp-1197" data-tab-active="true">

```JavaScript
Synerise.Tracker.flushEvents(function() {
  // success
});
```

</div>
</div>
 
