# Track User Events

Start sending your users' **events** on your app or platform to **Referd**, along with any **metadata** that describes the event. Depending on your **Referd** programs configuration, the user can be rewarded based on the sent events.

Every `Track Event` call records a single user action. We call these “**events**”. We recommend that you make your event names human-readable, so that everyone can know what they mean instantly.

**Event metadata** are extra pieces of information you can tie to events you track. They can be anything that will be useful while designing your program.

Tracked **events** can be app events or server side events depending on how you would like to design your programs. App events can be sent to **Referd** via the methods available in the SDK below. For server side events you can use [Track Events API](https://developer.tryreferd.com/api-reference/api-reference/event).

To send User events from your app to Referd, you can use the **`sendEvents`** that takes array of **`Event`** which takes **`eventName`**&#x6F;f type string and **`parameters`**&#x6F;f type dictionary to be sent with the event.

### **Send Events example**

```swift
let events: [Event] = [
    Event(eventName: "coin_purchase", params: ["price": "100", "currency": "USD"]),
    Event(eventName: "click_X_screen", params: ["screen_name": "X_Y_Z", "source": "A_B_C"]),
]
gameball?.sendEvents(
    playerUniqueId: "UNIQUE_PLAYER_ID",
    events: events
)
```
