Mixpanel is a great analitics platform, but unfortunetally there is no official integration library for .NET. So if you are writing code on .NET and want to use Mixpanel, then mixpanel-csharp
can be an excellent choice. mixpanel-csharp
main idea is to hide most api details (you don't need to remember what time formatting to use, or in which cases you should prefix properties with $
) and concentrate on data that you want to analyze.
- Supports the following Mixpanel Ingestion API's:
- Send messages simultaneously or just create a message instance and send it later
- Pass the message data in form that you prefer: predefined contract,
IDictionary<string, object>
, anonymous type or dynamic - Add properties globally to all messages with super properties. Usable for properties such as
distinct_id
- Great configurability. For example you can provide your own JSON serializer or function that will make HTTP requests
- No dependencies. Keeps your project clean
- Runs on .NET 4.6.1 and .NET Standard 2.0
- Detailed documentation
var mc = new MixpanelClient("e3bc4100330c35722740fb8c6f5abddc");
await mc.TrackAsync("Level Complete", new {
DistinctId = "12345",
LevelNumber = 5,
Duration = TimeSpan.FromMinutes(1)
});
This will send the following JSON to https://api.mixpanel.com/track/
:
{
"event": "Level Complete",
"properties": {
"token": "e3bc4100330c35722740fb8c6f5abddc",
"distinct_id": "12345",
"LevelNumber": 5,
"$duration": 60
}
}
var mc = new MixpanelClient("e3bc4100330c35722740fb8c6f5abddc");
await mc.PeopleSetAsync(new {
DistinctId = "12345",
Name = "Darth Vader",
Kills = 215
});
This will send the following JSON to https://api.mixpanel.com/engage/
:
{
"$token": "e3bc4100330c35722740fb8c6f5abddc",
"$distinct_id": "12345",
"$set": {
"$name": "Darth Vader",
"Kills": 215
}
}
Copyright © 2022 Aleksandr Ivanov
mixpanel-csharp
is licensed under MIT. Refer to LICENSE for more information.