MixpanelCppCX is a client for the Mixpanel analytics service. It has been built to handle the common situations of uploading events to the service. It supports batching, persisting-to-storage-before-uploading, and super properties. It's intended to be consumed by any UWP app — but the original motivation was to support JavaScript applications.
MixpanelCppCX is published as a NuGET package
(Codevoid.Utilities.Mixpanel
)
to the NuGET.org feed — just add it to your UWP Project in Visual Studio, and
it'll be available for use in your code.
- Items awaiting to upload are stored in a folder in your applications private
data folder with in local settings. (
%LOCALAPPDATA%\Packages\<PackageIdentity>\LocalState\MixpanelUploadQueue
) - Items awaiting upload are written to disk after 500ms of idle time, or when there are 10 or more items in the queue — whichever comes first.
- Items are uploaded in batches of 50, unless one item in the batch fails, then they're uploaded 1 at a time.
- The queue is paused automatically when being suspended, and resumed when... resumed.
- This library does automatic session tracking — it starts tracking the session duration on start, and will automatically end/resume the session based on suspend/resume events.
- Create an instance of
Codevoid.Utilities.Mixpanel
, and hold on to it.
var mixpanelClient = new Codevoid.Utilities.Mixpanel(<Mixpanel API Token>)
- Call, and wait for,
.InitializeAsync()
- Call
.Start()
on that instance to start processing the queue. - Call
.Track("MyEvent", null)
to log a single event
If you need to send properties with your event you can use Windows.Foundation.Collections.PropertySet
,
and insert your properties as needed, passing it as the second parameter to
Track
:
var properties = new Windows.Foundation.Colllections.PropertySet();
properties.add("MyProperty", "MyValue");
properties.add("MyOtherProperty", 9);
mixpanelClient.Track("MyOtherEvent", properties);
For more detailed usage, see the README.md in the package, or here
Fixed issue due to bugs with Co-routines in VS 2017 15.7 (would crash randomly)
Fixed issue with handling corrupt JSON queue files (E.g. owning process was killed mid-write) Publish PDBs
Fixing issue with projection of overloaded methods into javascript. This is a breaking change, where all SetXXProperty
Methods as now typed in their name.
Fixing issue with automatic session events not being uploaded until the host app was completely restarted.
Support for automatic sessions & session properties
Fixed Crashing issue when attaching duration events
Fixed issue not correctly accounting for time in the background
Added support for automatic duration events (StartTimedEvent
)
Initial Release