# C\#

The Evntaly C# SDK offers a robust and flexible solution to integrate event tracking, user identification, and analytics into your .NET applications.&#x20;

{% embed url="<https://github.com/Evntaly/evntaly-csharp>" %}

## Installation

Install the Evntaly C# SDK using NuGet Package Manager:

```bash
 dotnet add package EvntalySDK
```

## Initialization

Initialize the SDK with your **Developer Secret** and **Project Token -** Chech [Here](https://evntaly.gitbook.io/evntaly/getting-started#create-pat-for-your-project)

```csharp
using System;
using EvntalySDK;

class Program
{
    static void Main()
    {
        var evntaly = new SDK("YOUR_DEVELOPER_SECRET", "YOUR_PROJECT_TOKEN");
        Console.WriteLine("Evntaly SDK initialized!");
    }
}
```

## Tracking Events

For custom event tracking, use the **Track** method.

```csharp
var eventData = new Event
{
    Title = "Payment Received",
    Description = "User completed a purchase",
    Message = "Order #12345",
    Data = new EventData
    {
        UserId = "67890",
        Timestamp = "2025-01-08T09:30:00Z",
        Referrer = "social_media",
        EmailVerified = true,
    },
    Tags = new string[] {"purchase", "payment", "ecommerce"},
    Notify = true,
    Icon = "💰",
    ApplyRuleOnly = false,
    User = new EventUser { ID = "12345" },
    Type = "Transaction",
    SessionID = "20750ebc-dabf-4fd4-9498-443bf30d6095_bsd",
    Feature = "Checkout",
    Topic = "@Sales"
};

await evntaly.TrackEventAsync(eventData);
```

## User Identification

Identify a user to associate events with a specific profile.

```csharp
var userData = new UserProfile
{
    ID = "12345",
    Email = "user@example.com",
    FullName = "John Doe",
    Organization = "ExampleCorp",
    Data = new UserProfileData
    {
        Id = "JohnD",
        Email = "user@example.com",
        Location = "USA",
        Salary = 75000,
        Timezone = "America/New_York",
        SubscriptionPlan = "Premium",
        LastLogin = "2025-02-24T15:30:00Z"
    }
};

await evntaly.IdentifyUserAsync(userData);
```

## Enabling and Disabling Tracking

You can enable or disable event tracking globally.

```csharp
// Disable tracking
evntaly.DisableTracking();

// Enable tracking
evntaly.EnableTracking();
```

## Methods

<table><thead><tr><th width="201.99609375">Method</th><th>Description</th><th width="226.67578125">Example Usage</th><th>Available Since</th></tr></thead><tbody><tr><td><code>Track</code></td><td>Tracks a custom event.</td><td><code>evntaly.Track(new Event { Title = "Event" })</code></td><td>v1.0.0</td></tr><tr><td><code>IdentifyUser</code></td><td>Identifies a user for analytics.</td><td><code>evntaly.IdentifyUser(new User { ID = "user-123" })</code></td><td>v1.0.0</td></tr><tr><td><code>DisableTracking</code></td><td>Disables all event tracking.</td><td><code>evntaly.DisableTracking()</code></td><td>v1.0.0</td></tr><tr><td><code>EnableTracking</code></td><td>Enables all event tracking.</td><td><code>evntaly.EnableTracking()</code></td><td>v1.0.0</td></tr></tbody></table>

## Best Practices

* **Initialize early:** Always initialize the SDK as early as possible.
* **Avoid sensitive data:** Do not pass sensitive personal data directly to the SDK.
* **Monitor API limits:** Regularly check API limits to avoid missing critical events.

## Troubleshooting

* **Events not appearing:** Check if the SDK is initialized correctly and the API tokens are valid.
* **Network errors:** Ensure your network allows requests to `https://evntaly.com`.

***

## Support

For additional help,contact support at **<support@evntaly.com>**.
